Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / python-modules / sqlalchemy-utils / default.nix
blob84b42ad27f2f28b3d9a2f9918921937365408ec9
1 { lib
2 , buildPythonPackage
3 , fetchPypi
4 , pythonOlder
6 # runtime
7 , importlib-metadata
8 , sqlalchemy
10 # optionals
11 , babel
12 , arrow
13 , pendulum
14 #, intervals
15 , phonenumbers
16 , passlib
17 , colour
18 , python-dateutil
19 , furl
20 , cryptography
22 # tests
23 , pytestCheckHook
24 , pygments
25 , jinja2
26 , docutils
27 , flexmock
28 , psycopg2
29 , psycopg2cffi
30 , pg8000
31 , pytz
32 , backports-zoneinfo
33 , pymysql
34 , pyodbc
38 buildPythonPackage rec {
39   pname = "sqlalchemy-utils";
40   version = "0.41.1";
41   format = "setuptools";
43   src = fetchPypi {
44     inherit version;
45     pname = "SQLAlchemy-Utils";
46     hash = "sha256-ohgb/wHuuER544Vx0sBxjrUgQvmv2MGU0NAod+hLfXQ=";
47   };
49   patches = [
50     ./skip-database-tests.patch
51   ];
53   propagatedBuildInputs = [
54     sqlalchemy
55   ] ++ lib.optionals (pythonOlder "3.8") [
56     importlib-metadata
57   ];
59   passthru.optional-dependencies = {
60     babel = [ babel ];
61     arrow = [ arrow ];
62     pendulum = [ pendulum ];
63     #intervals = [ intervals ];
64     phone = [ phonenumbers ];
65     password = [ passlib ];
66     color = [ colour ];
67     timezone = [ python-dateutil ];
68     url = [ furl ];
69     encrypted = [ cryptography ];
70   };
72   nativeCheckInputs = [
73     pytestCheckHook
74     pygments
75     jinja2
76     docutils
77     flexmock
78     psycopg2
79     psycopg2cffi
80     pg8000
81     pytz
82     python-dateutil
83     pymysql
84     pyodbc
85   ]
86   ++ lib.flatten (builtins.attrValues passthru.optional-dependencies)
87   ++ lib.optionals (pythonOlder "3.9") [
88     backports-zoneinfo
89   ];
91   pytestFlagsArray = [
92     "--deselect tests/functions/test_database.py::TestDatabasePostgresCreateDatabaseCloseConnection::test_create_database_twice"
93     "--deselect tests/functions/test_database.py::TestDatabasePostgresPg8000::test_create_and_drop"
94     "--deselect tests/functions/test_database.py::TestDatabasePostgresPsycoPG2CFFI::test_create_and_drop"
95     "--deselect tests/functions/test_database.py::TestDatabasePostgresPsycoPG3::test_create_and_drop"
96   ];
98   meta = with lib; {
99     changelog = "https://github.com/kvesteri/sqlalchemy-utils/releases/tag/${version}";
100     homepage = "https://github.com/kvesteri/sqlalchemy-utils";
101     description = "Various utility functions and datatypes for SQLAlchemy";
102     license = licenses.bsd3;
103     maintainers = with maintainers; [ eadwu ];
104   };