PORTNAME= wandb DISTVERSIONPREFIX= v DISTVERSION= 0.26.1 PORTREVISION= 2 CATEGORIES= misc # machine-learning #MASTER_SITES= PYPI # no tests PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= CLI and library for interacting with the Weights and Biases API WWW= https://wandb.ai/ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE BROKEN_armv7= compilation fails: Go fails: cannot use math.MaxInt64 (untyped int constant 9223372036854775807) as int value in argument to strconv.Itoa (overflows) BROKEN_i386= compilation fails: Go fails: cannot use math.MaxInt64 (untyped int constant 9223372036854775807) as int value in argument to strconv.Itoa (overflows) BUILD_DEPENDS= ${PY_SETUPTOOLS} \ ${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}typing-extensions>0:devel/py-typing-extensions@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}appdirs>=1.4.3:devel/py-appdirs@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}click>=7.1:devel/py-click@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}docker-pycreds>=0.4.0:security/py-docker-pycreds@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}gitpython>=1.0.0:devel/py-gitpython@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pathtools>0:devel/py-pathtools@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}platformdirs>0:devel/py-platformdirs@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}protobuf>=3.19.0:devel/py-protobuf@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}psutil>=5.0.0:sysutils/py-psutil@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}requests>=2.0.0,<3:www/py-requests@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sentry-sdk>=1.0.0:devel/py-sentry-sdk@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}setproctitle>0:devel/py-setproctitle@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyyaml>0:devel/py-pyyaml@${PY_FLAVOR} RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}boto3>0:www/py-boto3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}plotly>0:graphics/py-plotly@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pydantic2>=2.0:devel/py-pydantic2@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}scikit-learn>0:science/py-scikit-learn@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}tqdm>0:misc/py-tqdm@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}bokeh>0:www/py-bokeh@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}hypothesis>0:devel/py-hypothesis@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}httpx>0:www/py-httpx@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}matplotlib>0:math/py-matplotlib@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}nbclient>0:devel/py-nbclient@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}nbformat>0:devel/py-nbformat@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}numpy>=1.16:math/py-numpy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pandas>0:math/py-pandas@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}parameterized>0:devel/py-parameterized@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyfakefs>0:filesystems/py-pyfakefs@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytest-asyncio>0:devel/py-pytest-asyncio@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytest-cov>0:devel/py-pytest-cov@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytest-flask>0:devel/py-pytest-flask@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytest-mock>=1.10.4:devel/py-pytest-mock@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytest-timeout>0:devel/py-pytest-timeout@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytest-xdist>0:devel/py-pytest-xdist@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyte>0:devel/py-pyte@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}responses>0:devel/py-responses@${PY_FLAVOR} USES= cargo go:1.26+,no_targets python shebangfix USE_PYTHON= pep517 concurrent autoplist pytest USE_GITHUB= yes CARGO_BUILD= no CARGO_INSTALL= no CARGO_TEST= no CARGO_CONFIGURE= no CARGO_VENDOR_DIR= ${WRKSRC}/cargo-crates MAKE_ENV+= CARGO_HOME=${WRKDIR}/cargo-home TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} # Skip tests requiring optional integrations not available as FreeBSD ports: # system_tests: require a live W&B server # test_data_types.py, test_media_logging.py: require rdkit, torch # test_kfp.py: requires kubeflow kfp # test_kaniko.py: requires kubernetes_asyncio, google.cloud # test_azure.py, test_acr.py: require azure SDK # test_gcp.py, test_gcp_artifact_registry.py: require google.api_core # test_launch/test_runner: requires kubernetes_asyncio # test_sentry.py: requires sentry-sdk>=2.0 (installed version lacks get_current_scope) TEST_ARGS= --ignore=tests/system_tests \ --ignore=tests/unit_tests/test_analytics/test_sentry.py \ --ignore=tests/unit_tests/test_data_types.py \ --ignore=tests/unit_tests/test_kfp.py \ --ignore=tests/unit_tests/test_launch/test_builder/test_kaniko.py \ --ignore=tests/unit_tests/test_launch/test_environment/test_azure.py \ --ignore=tests/unit_tests/test_launch/test_environment/test_gcp.py \ --ignore=tests/unit_tests/test_launch/test_registry/test_acr.py \ --ignore=tests/unit_tests/test_launch/test_registry/test_gcp_artifact_registry.py \ --ignore=tests/unit_tests/test_launch/test_runner \ --ignore=tests/unit_tests/test_media/test_media_logging.py # Tests broken due to library version mismatches or environment differences: # TestProgressCallback: responses library now returns bytes, not file-like for request.body # TestAzure: azure SDK not available; some tests fail even without explicit azure import # test_registry_from_uri: references azure_container_registry module not loaded without azure # test_get_entrypoint: expects python3 entrypoint but gets python3.11 (sys.executable) # test_convert_plots: matplotlib test times out (>60s) on this platform # test_launch_browser: fails when DISPLAY is set in the build environment PYTEST_BROKEN_TESTS= TestProgressCallback \ TestAzure \ test_registry_from_uri \ test_get_entrypoint \ test_convert_plots \ test_launch_browser SHEBANG_GLOB= *.py # tests SEGV in ssl tests # Create .cargo/config.toml to redirect cargo to the vendored crates. # This is needed because hatch_build.py invokes cargo directly and # CARGO_CONFIGURE=no prevents cargo.mk from creating this file. post-configure: @${MKDIR} ${WRKSRC}/.cargo @${ECHO_CMD} "[source.cargo]" > ${WRKSRC}/.cargo/config.toml @${ECHO_CMD} "directory = '${CARGO_VENDOR_DIR}'" >> ${WRKSRC}/.cargo/config.toml @${ECHO_CMD} "[source.crates-io]" >> ${WRKSRC}/.cargo/config.toml @${ECHO_CMD} "replace-with = 'cargo'" >> ${WRKSRC}/.cargo/config.toml .include