{ lib , buildPythonPackage , fetchFromGitHub , geojson , google-api-core , imagesize , nbconvert , nbformat , numpy , opencv4 , packaging , pillow , pydantic , pyproj , pytestCheckHook , python-dateutil , pythonOlder , pythonRelaxDepsHook , requests , setuptools , shapely , strenum , tqdm , typeguard , typing-extensions }: buildPythonPackage rec { pname = "labelbox"; version = "3.67.0"; pyproject = true; disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "Labelbox"; repo = "labelbox-python"; rev = "refs/tags/v.${version}"; hash = "sha256-JQTjmYxPBS8JC4HQTtbQ7hb80LPLYE4OEj1lFA6cZ1Y="; }; postPatch = '' substituteInPlace pytest.ini \ --replace-fail "--reruns 2 --reruns-delay 10 --durations=20 -n 10" "" # disable pytest_plugins which requires `pygeotile` substituteInPlace tests/conftest.py \ --replace-fail "pytest_plugins" "_pytest_plugins" ''; nativeBuildInputs = [ pythonRelaxDepsHook ]; pythonRelaxDeps = [ "python-dateutil" ]; build-system = [ setuptools ]; dependencies = [ google-api-core pydantic python-dateutil requests strenum tqdm ]; optional-dependencies = { data = [ shapely geojson numpy pillow opencv4 typeguard imagesize pyproj # pygeotile typing-extensions packaging ]; }; nativeCheckInputs = [ nbconvert nbformat pytestCheckHook ] ++ optional-dependencies.data; disabledTestPaths = [ # Requires network access "tests/integration" # Missing requirements "tests/data" ]; pythonImportsCheck = [ "labelbox" ]; meta = with lib; { description = "Platform API for LabelBox"; homepage = "https://github.com/Labelbox/labelbox-python"; changelog = "https://github.com/Labelbox/labelbox-python/blob/v.${version}/CHANGELOG.md"; license = licenses.asl20; maintainers = with maintainers; [ rakesh4g ]; }; }