{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook, pythonOlder, replaceVars, certifi, cython, mock, numpy, pandas, proj, shapely, xarray, }: buildPythonPackage rec { pname = "pyproj"; version = "3.7.1"; format = "setuptools"; disabled = pythonOlder "3.9"; src = fetchFromGitHub { owner = "pyproj4"; repo = "pyproj"; tag = version; hash = "sha256-tVzifc+Y5u9Try5FHt67rj/+zaok0JNn3M8plMqX90g="; }; # force pyproj to use ${proj} patches = [ (replaceVars ./001.proj.patch { proj = proj; projdev = proj.dev; }) ]; nativeBuildInputs = [ cython ]; buildInputs = [ proj ]; propagatedBuildInputs = [ certifi ]; nativeCheckInputs = [ mock numpy pandas pytestCheckHook shapely xarray ]; preCheck = '' # import from $out rm -r pyproj ''; disabledTestPaths = [ "test/test_doctest_wrapper.py" "test/test_datadir.py" ]; disabledTests = [ # The following tests try to access network and end up with a URLError "test__load_grid_geojson_old_file" "test_get_transform_grid_list" "test_get_transform_grid_list__area_of_use" "test_get_transform_grid_list__bbox__antimeridian" "test_get_transform_grid_list__bbox__out_of_bounds" "test_get_transform_grid_list__contains" "test_get_transform_grid_list__file" "test_get_transform_grid_list__source_id" "test_sync__area_of_use__list" "test_sync__bbox__list" "test_sync__bbox__list__exclude_world_coverage" "test_sync__download_grids" "test_sync__file__list" "test_sync__source_id__list" "test_sync_download" "test_sync_download__directory" "test_sync_download__system_directory" "test_transformer_group__download_grids" # proj-data grid required "test_azimuthal_equidistant" ]; pythonImportsCheck = [ "pyproj" "pyproj.crs" "pyproj.transformer" "pyproj.geod" "pyproj.proj" "pyproj.database" "pyproj.list" "pyproj.datadir" "pyproj.network" "pyproj.sync" "pyproj.enums" "pyproj.aoi" "pyproj.exceptions" ]; meta = with lib; { description = "Python interface to PROJ library"; mainProgram = "pyproj"; homepage = "https://github.com/pyproj4/pyproj"; changelog = "https://github.com/pyproj4/pyproj/blob/${src.rev}/docs/history.rst"; license = licenses.mit; maintainers = with maintainers; [ lsix dotlambda ]; teams = [ teams.geospatial ]; }; }