1{ lib
2, buildPythonPackage
3, pythonOlder
4, fetchFromGitHub
5, cython
6, gdal
7, setuptools
8, attrs
9, certifi
10, click
11, click-plugins
12, cligj
13, munch
14, shapely
15, boto3
16, pytestCheckHook
17, pytz
18}:
19
20buildPythonPackage rec {
21 pname = "fiona";
22 version = "1.9.1";
23
24 disabled = pythonOlder "3.7";
25
26 format = "pyproject";
27
28 src = fetchFromGitHub {
29 owner = "Toblerity";
30 repo = "Fiona";
31 rev = "refs/tags/${version}";
32 hash = "sha256-2CGLkgnpCAh9G+ILol5tmRj9S6/XeKk8eLzGEODiyP8=";
33 };
34
35 nativeBuildInputs = [
36 cython
37 gdal # for gdal-config
38 setuptools
39 ];
40
41 buildInputs = [
42 gdal
43 ];
44
45 propagatedBuildInputs = [
46 attrs
47 certifi
48 click
49 cligj
50 click-plugins
51 munch
52 setuptools
53 ];
54
55 passthru.optional-dependencies = {
56 calc = [ shapely ];
57 s3 = [ boto3 ];
58 };
59
60 nativeCheckInputs = [
61 pytestCheckHook
62 pytz
63 ] ++ passthru.optional-dependencies.s3;
64
65 preCheck = ''
66 rm -r fiona # prevent importing local fiona
67 '';
68
69 disabledTests = [
70 # Some tests access network, others test packaging
71 "http" "https" "wheel"
72 ];
73
74 pythonImportsCheck = [ "fiona" ];
75
76 meta = with lib; {
77 changelog = "https://github.com/Toblerity/Fiona/blob/${src.rev}/CHANGES.txt";
78 description = "OGR's neat, nimble, no-nonsense API for Python";
79 homepage = "https://fiona.readthedocs.io/";
80 license = licenses.bsd3;
81 maintainers = with maintainers; [ knedlsepp ];
82 };
83}