1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 setuptools,
6 flask,
7 flask-login,
8 flask-sqlalchemy,
9 psycopg2,
10 pymysql,
11 pytestCheckHook,
12 pythonOlder,
13 sqlalchemy,
14 sqlalchemy-i18n,
15 sqlalchemy-utils,
16}:
17
18buildPythonPackage rec {
19 pname = "sqlalchemy-continuum";
20 version = "1.4.2";
21 pyproject = true;
22
23 disabled = pythonOlder "3.7";
24
25 src = fetchPypi {
26 pname = "sqlalchemy_continuum";
27 inherit version;
28 hash = "sha256-D9K+efcY7aR8IgaHnZLsTr8YiTZGN7PK8+5dNL0ZyOM=";
29 };
30
31 build-system = [ setuptools ];
32
33 dependencies = [
34 sqlalchemy
35 sqlalchemy-utils
36 ];
37
38 optional-dependencies = {
39 flask = [ flask ];
40 flask-login = [ flask-login ];
41 flask-sqlalchemy = [ flask-sqlalchemy ];
42 i18n = [ sqlalchemy-i18n ];
43 };
44
45 nativeCheckInputs = [
46 psycopg2
47 pymysql
48 pytestCheckHook
49 ] ++ lib.flatten (lib.attrValues optional-dependencies);
50
51 preCheck = ''
52 # Indicate tests that we don't have a database server at hand
53 export DB=sqlite
54 '';
55
56 pythonImportsCheck = [ "sqlalchemy_continuum" ];
57
58 meta = with lib; {
59 description = "Versioning and auditing extension for SQLAlchemy";
60 homepage = "https://github.com/kvesteri/sqlalchemy-continuum/";
61 changelog = "https://github.com/kvesteri/sqlalchemy-continuum/blob/${version}/CHANGES.rst";
62 license = licenses.bsd3;
63 maintainers = [ ];
64 };
65}