1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 fetchFromGitHub,
6
7 lxml,
8 pyproj,
9 pytestCheckHook,
10 python-dateutil,
11 pythonOlder,
12 pytz,
13 pyyaml,
14 requests,
15}:
16
17buildPythonPackage rec {
18 pname = "owslib";
19 version = "0.31.0";
20 format = "setuptools";
21
22 disabled = pythonOlder "3.7";
23
24 src = fetchFromGitHub {
25 owner = "geopython";
26 repo = "OWSLib";
27 rev = version;
28 hash = "sha256-vjJsLavVOqTTrVtYbtA0G+nl0HanKeGtzNFFj92Frw8=";
29 };
30
31 postPatch = ''
32 substituteInPlace tox.ini \
33 --replace " --doctest-modules --doctest-glob 'tests/**/*.txt' --cov-report term-missing --cov owslib" ""
34 '';
35
36 propagatedBuildInputs = [
37 lxml
38 pyproj
39 python-dateutil
40 pytz
41 pyyaml
42 requests
43 ];
44
45 nativeCheckInputs = [ pytestCheckHook ];
46
47 pythonImportsCheck = [ "owslib" ];
48
49 preCheck = ''
50 # _pytest.pathlib.ImportPathMismatchError: ('owslib.swe.sensor.sml', '/build/source/build/...
51 export PY_IGNORE_IMPORTMISMATCH=1
52 '';
53
54 disabledTests =
55 [
56 # Tests require network access
57 "test_ows_interfaces_wcs"
58 "test_wfs_110_remotemd"
59 "test_wfs_200_remotemd"
60 "test_wms_130_remotemd"
61 "test_wmts_example_informatievlaanderen"
62 "test_opensearch_creodias"
63 ]
64 ++ lib.optionals stdenv.isDarwin [
65 "test_ogcapi_processes_pygeoapi"
66 "test_ogcapi_records_pycsw"
67 "test_ogcapi_records_pygeoapi"
68 "test_wms_getfeatureinfo_130"
69 ];
70
71 meta = with lib; {
72 description = "Client for Open Geospatial Consortium web service interface standards";
73 homepage = "https://www.osgeo.org/projects/owslib/";
74 changelog = "https://github.com/geopython/OWSLib/releases/tag/${version}";
75 license = licenses.bsd3;
76 maintainers = teams.geospatial.members;
77 };
78}