diff options
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/sqlalchemy/1_4.nix')
-rw-r--r-- | nixpkgs/pkgs/development/python-modules/sqlalchemy/1_4.nix | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/sqlalchemy/1_4.nix b/nixpkgs/pkgs/development/python-modules/sqlalchemy/1_4.nix new file mode 100644 index 000000000000..a630b110314d --- /dev/null +++ b/nixpkgs/pkgs/development/python-modules/sqlalchemy/1_4.nix @@ -0,0 +1,144 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub + +# build-system +, setuptools + +# dependencies +, greenlet + +# optionals +, aiomysql +, aiosqlite +, asyncmy +, asyncpg +, cx-oracle +, mariadb +, mypy +, mysql-connector +, mysqlclient +, pg8000 +, psycopg2 +, psycopg2cffi +# TODO: pymssql +, pymysql +, pyodbc +# TODO: sqlcipher3 +, typing-extensions + +# tests +, mock +, pytest-xdist +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "sqlalchemy"; + version = "1.4.52"; + pyproject = true; + + src = fetchFromGitHub { + owner = "sqlalchemy"; + repo = "sqlalchemy"; + rev = "rel_${lib.replaceStrings [ "." ] [ "_" ] version}"; + hash = "sha256-3JiPDOI6KDQwtBtISvHi3d+Rdm0pz1d9cnZu3+f4jYE="; + }; + + postPatch = '' + sed -i '/tag_build = dev/d' setup.cfg + ''; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + greenlet + ]; + + passthru.optional-dependencies = lib.fix (self: { + asyncio = [ + greenlet + ]; + mypy = [ + mypy + ]; + mssql = [ + pyodbc + ]; + mssql_pymysql = [ + # TODO: pymssql + ]; + mssql_pyodbc = [ + pyodbc + ]; + mysql = [ + mysqlclient + ]; + mysql_connector = [ + mysql-connector + ]; + mariadb_connector = [ + mariadb + ]; + oracle = [ + cx-oracle + ]; + postgresql = [ + psycopg2 + ]; + postgresql_pg8000 = [ + pg8000 + ]; + postgresql_asyncpg = [ + asyncpg + ] ++ self.asyncio; + postgresql_psycopg2binary = [ + psycopg2 + ]; + postgresql_psycopg2cffi = [ + psycopg2cffi + ]; + pymysql = [ + pymysql + ]; + aiomysql = [ + aiomysql + ] ++ self.asyncio; + asyncmy = [ + asyncmy + ] ++ self.asyncio; + aiosqlite = [ + aiosqlite + typing-extensions + ] ++ self.asyncio; + sqlcipher = [ + # TODO: sqlcipher3 + ]; + }); + + nativeCheckInputs = [ + pytest-xdist + pytestCheckHook + mock + ]; + + disabledTestPaths = [ + # typing correctness, not interesting + "test/ext/mypy" + # slow and high memory usage, not interesting + "test/aaa_profiling" + ]; + + pythonImportsCheck = [ + "sqlalchemy" + ]; + + meta = with lib; { + changelog = "https://github.com/sqlalchemy/sqlalchemy/releases/tag/rel_${builtins.replaceStrings [ "." ] [ "_" ] version}"; + description = "The Database Toolkit for Python"; + homepage = "https://github.com/sqlalchemy/sqlalchemy"; + license = licenses.mit; + }; +} |