1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 flask,
6 mock,
7 flit-core,
8 pytestCheckHook,
9 pythonAtLeast,
10 pythonOlder,
11 sqlalchemy,
12}:
13
14buildPythonPackage rec {
15 pname = "flask-sqlalchemy";
16 version = "3.1.1";
17 format = "pyproject";
18
19 disabled = pythonOlder "3.9";
20
21 src = fetchPypi {
22 pname = "flask_sqlalchemy";
23 inherit version;
24 hash = "sha256-5LaLuIGALdoafYeLL8hMBtHuV/tAuHTT3Jfav6NrgxI=";
25 };
26
27 nativeBuildInputs = [ flit-core ];
28
29 propagatedBuildInputs = [
30 flask
31 sqlalchemy
32 ];
33
34 nativeCheckInputs = [
35 mock
36 pytestCheckHook
37 ];
38
39 disabledTests = [
40 # flaky
41 "test_session_scoping_changing"
42 # https://github.com/pallets-eco/flask-sqlalchemy/issues/1084
43 "test_persist_selectable"
44 ];
45
46 pytestFlagsArray = lib.optionals (pythonAtLeast "3.12") [
47 # datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version.
48 "-W"
49 "ignore::DeprecationWarning"
50 ];
51
52 pythonImportsCheck = [ "flask_sqlalchemy" ];
53
54 meta = with lib; {
55 description = "SQLAlchemy extension for Flask";
56 homepage = "http://flask-sqlalchemy.pocoo.org/";
57 changelog = "https://github.com/pallets-eco/flask-sqlalchemy/blob/${version}/CHANGES.rst";
58 license = licenses.bsd3;
59 maintainers = with maintainers; [ gerschtli ];
60 };
61}