biome: 1.9.2 -> 1.9.3 (#349335)
[NixPkgs.git] / pkgs / development / python-modules / sqlalchemy / default.nix
blob06ce40e7e3366b8a6506406e50834508c88c4771
2   lib,
3   isPyPy,
4   pythonOlder,
5   fetchFromGitHub,
6   buildPythonPackage,
8   # build
9   cython,
10   setuptools,
12   # propagates
13   greenlet,
14   typing-extensions,
16   # optionals
17   aiomysql,
18   aiosqlite,
19   asyncmy,
20   asyncpg,
21   cx-oracle,
22   mariadb,
23   mypy,
24   mysql-connector,
25   mysqlclient,
26   oracledb,
27   pg8000,
28   psycopg,
29   psycopg2,
30   psycopg2cffi,
31   # TODO: pymssql
32   pymysql,
33   pyodbc,
34   # TODO: sqlcipher3
36   # tests
37   mock,
38   pytest-xdist,
39   pytestCheckHook,
42 buildPythonPackage rec {
43   pname = "sqlalchemy";
44   version = "2.0.34";
45   pyproject = true;
47   disabled = pythonOlder "3.7";
49   src = fetchFromGitHub {
50     owner = "sqlalchemy";
51     repo = "sqlalchemy";
52     rev = "refs/tags/rel_${lib.replaceStrings [ "." ] [ "_" ] version}";
53     hash = "sha256-5nnMh8pEG6rXiy0nk9SKjIOY+htXNx9eHTEtNOkLrd8=";
54   };
56   postPatch = ''
57     sed -i '/tag_build = dev/d' setup.cfg
58   '';
60   nativeBuildInputs = [ setuptools ] ++ lib.optionals (!isPyPy) [ cython ];
62   propagatedBuildInputs = [
63     greenlet
64     typing-extensions
65   ];
67   optional-dependencies = lib.fix (self: {
68     asyncio = [ greenlet ];
69     mypy = [ mypy ];
70     mssql = [ pyodbc ];
71     mssql_pymysql = [
72       # TODO: pymssql
73     ];
74     mssql_pyodbc = [ pyodbc ];
75     mysql = [ mysqlclient ];
76     mysql_connector = [ mysql-connector ];
77     mariadb_connector = [ mariadb ];
78     oracle = [ cx-oracle ];
79     oracle_oracledb = [ oracledb ];
80     postgresql = [ psycopg2 ];
81     postgresql_pg8000 = [ pg8000 ];
82     postgresql_asyncpg = [ asyncpg ] ++ self.asyncio;
83     postgresql_psycopg2binary = [ psycopg2 ];
84     postgresql_psycopg2cffi = [ psycopg2cffi ];
85     postgresql_psycopg = [ psycopg ];
86     postgresql_psycopgbinary = [ psycopg ];
87     pymysql = [ pymysql ];
88     aiomysql = [ aiomysql ] ++ self.asyncio;
89     asyncmy = [ asyncmy ] ++ self.asyncio;
90     aiosqlite = [
91       aiosqlite
92       typing-extensions
93     ] ++ self.asyncio;
94     sqlcipher = [
95       # TODO: sqlcipher3
96     ];
97   });
99   nativeCheckInputs = [
100     pytest-xdist
101     pytestCheckHook
102     mock
103   ];
105   disabledTestPaths = [
106     # typing correctness, not interesting
107     "test/ext/mypy"
108     "test/typing"
109     # slow and high memory usage, not interesting
110     "test/aaa_profiling"
111   ];
113   meta = with lib; {
114     changelog = "https://github.com/sqlalchemy/sqlalchemy/releases/tag/rel_${
115       builtins.replaceStrings [ "." ] [ "_" ] version
116     }";
117     description = "Python SQL toolkit and Object Relational Mapper";
118     homepage = "http://www.sqlalchemy.org/";
119     license = licenses.mit;
120   };