1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 lxml,
6 pytest-cov-stub,
7 pytestCheckHook,
8 python-dateutil,
9 pythonOlder,
10 pyyaml,
11 requests,
12 setuptools,
13}:
14
15buildPythonPackage rec {
16 pname = "owslib";
17 version = "0.32.0";
18 pyproject = true;
19
20 disabled = pythonOlder "3.10";
21
22 src = fetchFromGitHub {
23 owner = "geopython";
24 repo = "OWSLib";
25 rev = "refs/tags/${version}";
26 hash = "sha256-q2O9FNBszNWfL1ekcohSd1RbdLFu8c+zxi+UFeQ7/mk=";
27 };
28
29 postPatch = ''
30 substituteInPlace tox.ini \
31 --replace-fail " --doctest-modules --doctest-glob 'tests/**/*.txt'" ""
32 '';
33
34 build-system = [ setuptools ];
35
36 dependencies = [
37 lxml
38 python-dateutil
39 pyyaml
40 requests
41 ];
42
43 nativeCheckInputs = [
44 pytest-cov-stub
45 pytestCheckHook
46 ];
47
48 pythonImportsCheck = [ "owslib" ];
49
50 preCheck = ''
51 # _pytest.pathlib.ImportPathMismatchError: ('owslib.swe.sensor.sml', '/build/source/build/...
52 export PY_IGNORE_IMPORTMISMATCH=1
53 '';
54
55 pytestFlagsArray = [
56 # Disable tests which require network access
57 "-m 'not online'"
58 ];
59
60 disabledTestPaths = [
61 # Tests requires network access
62 "tests/test_ogcapi_connectedsystems_osh.py"
63 ];
64
65 meta = with lib; {
66 description = "Client for Open Geospatial Consortium web service interface standards";
67 homepage = "https://www.osgeo.org/projects/owslib/";
68 changelog = "https://github.com/geopython/OWSLib/releases/tag/${version}";
69 license = licenses.bsd3;
70 maintainers = teams.geospatial.members;
71 };
72}