Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at domenkozar-patch-1 145 lines 2.5 kB view raw
1{ stdenv 2, lib 3, isPyPy 4, pythonOlder 5, fetchPypi 6, buildPythonPackage 7 8# build 9, cython 10 11# propagates 12, greenlet 13, importlib-metadata 14, typing-extensions 15 16# optionals 17, aiosqlite 18, asyncmy 19, asyncpg 20, cx_oracle 21, mariadb 22, mypy 23, mysql-connector 24, mysqlclient 25# TODO: oracledb 26, pg8000 27, psycopg 28, psycopg2 29, psycopg2cffi 30# TODO: pymssql 31, pymysql 32, pyodbc 33# TODO: sqlcipher3 34 35# tests 36, mock 37, pytestCheckHook 38}: 39 40buildPythonPackage rec { 41 pname = "SQLAlchemy"; 42 version = "1.4.41"; # TODO: check python3Packages.fastapi when updating to >= 1.4.42 43 disabled = pythonOlder "3.7"; 44 45 src = fetchPypi { 46 inherit pname version; 47 hash = "sha256-ApL3DReX48VOhi5vMK5HQBRki8nHI+FKL9pzCtsKl5E="; 48 }; 49 50 nativeBuildInputs = lib.optionals (!isPyPy) [ 51 cython 52 ]; 53 54 propagatedBuildInputs = [ 55 greenlet 56 typing-extensions 57 ] ++ lib.optionals (pythonOlder "3.8") [ 58 importlib-metadata 59 ]; 60 61 passthru.optional-dependencies = rec { 62 asyncio = [ 63 greenlet 64 ]; 65 mypy = [ 66 #mypy 67 ]; 68 mssql = [ 69 pyodbc 70 ]; 71 mssql_pymysql = [ 72 # TODO: pymssql 73 ]; 74 mssql_pyodbc = [ 75 pyodbc 76 ]; 77 mysql = [ 78 mysqlclient 79 ]; 80 mysql_connector = [ 81 mysql-connector 82 ]; 83 mariadb_connector = [ 84 mariadb 85 ]; 86 oracle = [ 87 cx_oracle 88 ]; 89 oracle_oracledb = [ 90 # TODO: oracledb 91 ]; 92 postgresql = [ 93 psycopg2 94 ]; 95 postgresql_pg8000 = [ 96 pg8000 97 ]; 98 postgresql_asyncpg = [ 99 asyncpg 100 ] ++ asyncio; 101 postgresql_psycopg2binary = [ 102 psycopg2 103 ]; 104 postgresql_psycopg2cffi = [ 105 psycopg2cffi 106 ]; 107 postgresql_psycopg = [ 108 psycopg 109 ]; 110 pymysql = [ 111 pymysql 112 ]; 113 aiomysql = [ 114 aiomysql 115 ] ++ asyncio; 116 asyncmy = [ 117 asyncmy 118 ] ++ asyncio; 119 aiosqlite = [ 120 aiosqlite 121 typing-extensions 122 ] ++ asyncio; 123 sqlcipher = [ 124 # TODO: sqlcipher3 125 ]; 126 }; 127 128 checkInputs = [ 129 pytestCheckHook 130 mock 131 ]; 132 133 # disable mem-usage tests on mac, has trouble serializing pickle files 134 disabledTests = lib.optionals stdenv.isDarwin [ 135 "MemUsageWBackendTest" 136 "MemUsageTest" 137 ]; 138 139 meta = with lib; { 140 changelog = "https://github.com/sqlalchemy/sqlalchemy/releases/tag/rel_${builtins.replaceStrings [ "." ] [ "_" ] version}"; 141 description = "The Python SQL toolkit and Object Relational Mapper"; 142 homepage = "http://www.sqlalchemy.org/"; 143 license = licenses.mit; 144 }; 145}