1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, python
5, proj
6, pythonOlder
7, substituteAll
8, cython
9, pytestCheckHook
10, mock
11, certifi
12, numpy
13, shapely
14, pandas
15, xarray
16}:
17
18buildPythonPackage rec {
19 pname = "pyproj";
20 version = "3.4.0";
21 disabled = pythonOlder "3.7";
22
23 src = fetchFromGitHub {
24 owner = "pyproj4";
25 repo = "pyproj";
26 rev = "refs/tags/${version}";
27 hash = "sha256-EXPeDNGr6eAAsLXCkV9mmkNDO1KScjZYgmBPzt+A1OU=";
28 };
29
30 # force pyproj to use ${proj}
31 patches = [
32 (substituteAll {
33 src = ./001.proj.patch;
34 proj = proj;
35 projdev = proj.dev;
36 })
37 ];
38
39 nativeBuildInputs = [ cython ];
40 buildInputs = [ proj ];
41
42 propagatedBuildInputs = [
43 certifi
44 ];
45
46 checkInputs = [
47 pytestCheckHook
48 mock
49 numpy
50 shapely
51 pandas
52 xarray
53 ];
54
55 preCheck = ''
56 # import from $out
57 rm -r pyproj
58 '';
59
60 disabledTestPaths = [
61 "test/test_doctest_wrapper.py"
62 "test/test_datadir.py"
63 ];
64
65 disabledTests = [
66 # The following tests try to access network and end up with a URLError
67 "test__load_grid_geojson_old_file"
68 "test_get_transform_grid_list"
69 "test_get_transform_grid_list__area_of_use"
70 "test_get_transform_grid_list__bbox__antimeridian"
71 "test_get_transform_grid_list__bbox__out_of_bounds"
72 "test_get_transform_grid_list__contains"
73 "test_get_transform_grid_list__file"
74 "test_get_transform_grid_list__source_id"
75 "test_sync__area_of_use__list"
76 "test_sync__bbox__list"
77 "test_sync__bbox__list__exclude_world_coverage"
78 "test_sync__download_grids"
79 "test_sync__file__list"
80 "test_sync__source_id__list"
81 "test_sync_download"
82 "test_sync_download__directory"
83 "test_sync_download__system_directory"
84 "test_transformer_group__download_grids"
85 ];
86
87 meta = {
88 description = "Python interface to PROJ library";
89 homepage = "https://github.com/pyproj4/pyproj";
90 changelog = "https://github.com/pyproj4/pyproj/blob/${src.rev}/docs/history.rst";
91 license = lib.licenses.mit;
92 maintainers = with lib.maintainers; [ lsix dotlambda ];
93 };
94}