Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 packaging,
6 setuptools,
7 setuptools-scm,
8 shapely,
9 sqlalchemy,
10 alembic,
11 pytest-benchmark,
12 pytestCheckHook,
13}:
14
15buildPythonPackage rec {
16 pname = "geoalchemy2";
17 version = "0.18.1";
18 pyproject = true;
19
20 src = fetchFromGitHub {
21 owner = "geoalchemy";
22 repo = "geoalchemy2";
23 tag = version;
24 hash = "sha256-F/+POYOb7PoUwLnQpM00zAPpbSXNeWJF2TZ4y260Pzw=";
25 };
26
27 build-system = [
28 setuptools
29 setuptools-scm
30 ];
31
32 dependencies = [
33 sqlalchemy
34 packaging
35 ];
36
37 nativeCheckInputs = [
38 alembic
39 pytest-benchmark
40 pytestCheckHook
41 ]
42 ++ optional-dependencies.shapely;
43
44 pytestFlags = [ "--benchmark-disable" ];
45
46 disabledTestPaths = [
47 # tests require live databases
48 "tests/gallery/test_decipher_raster.py"
49 "tests/gallery/test_length_at_insert.py"
50 "tests/gallery/test_insert_raster.py"
51 "tests/gallery/test_orm_mapped_v2.py"
52 "tests/gallery/test_specific_compilation.py"
53 "tests/gallery/test_summarystatsagg.py"
54 "tests/gallery/test_type_decorator.py"
55 "tests/test_functional.py"
56 "tests/test_functional_postgresql.py"
57 "tests/test_functional_mysql.py"
58 "tests/test_alembic_migrations.py"
59 "tests/test_pickle.py"
60 ];
61
62 pythonImportsCheck = [ "geoalchemy2" ];
63
64 optional-dependencies = {
65 shapely = [ shapely ];
66 };
67
68 meta = {
69 description = "Toolkit for working with spatial databases";
70 homepage = "https://geoalchemy-2.readthedocs.io/";
71 changelog = "https://github.com/geoalchemy/geoalchemy2/releases/tag/${src.tag}";
72 license = lib.licenses.mit;
73 maintainers = with lib.maintainers; [ nickcao ];
74 };
75}