From 3272efb2540eaefb9fcf776b95ad8a75e480ca49 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Wed, 25 Feb 2026 23:40:00 +0100 Subject: [PATCH 1/3] python3Packages.sqlalchemy_1_3: init at 1.3.24 Last version before the major API changes done in 1.4. --- .../python-modules/sqlalchemy/1_3.nix | 84 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 86 insertions(+) create mode 100644 pkgs/development/python-modules/sqlalchemy/1_3.nix diff --git a/pkgs/development/python-modules/sqlalchemy/1_3.nix b/pkgs/development/python-modules/sqlalchemy/1_3.nix new file mode 100644 index 000000000000..19f181bae1cb --- /dev/null +++ b/pkgs/development/python-modules/sqlalchemy/1_3.nix @@ -0,0 +1,84 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + greenlet, + + # optionals + cx-oracle, + mysqlclient, + pg8000, + psycopg2, + psycopg2cffi, + # TODO: pymssql + pymysql, + pyodbc, + + # tests + mock, + pytest-xdist, + pytestCheckHook, +}: + +buildPythonPackage (finalAttrs: { + pname = "sqlalchemy"; + version = "1.3.24"; + pyproject = true; + + src = fetchFromGitHub { + owner = "sqlalchemy"; + repo = "sqlalchemy"; + tag = "rel_${lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version}"; + hash = "sha256-6qAjyqMVrugABHssAQuql3z1YHTAOSm5hARJuJXJJvo="; + }; + + postPatch = '' + sed -i '/tag_build = dev/d' setup.cfg + ''; + + build-system = [ setuptools ]; + + dependencies = [ greenlet ]; + + optional-dependencies = lib.fix (self: { + mssql = [ pyodbc ]; + mssql_pymysql = [ + # TODO: pymssql + ]; + mssql_pyodbc = [ pyodbc ]; + mysql = [ mysqlclient ]; + oracle = [ cx-oracle ]; + postgresql = [ psycopg2 ]; + postgresql_pg8000 = [ pg8000 ]; + postgresql_psycopg2binary = [ psycopg2 ]; + postgresql_psycopg2cffi = [ psycopg2cffi ]; + pymysql = [ pymysql ]; + }); + + 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 = { + changelog = "https://github.com/sqlalchemy/sqlalchemy/releases/tag/${finalAttrs.src.tag})"; + description = "Database Toolkit for Python"; + homepage = "https://github.com/sqlalchemy/sqlalchemy"; + license = lib.licenses.mit; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 0cb24d1bfa9c..97aefdfc9a68 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -18156,6 +18156,8 @@ self: super: with self; { sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { }; + sqlalchemy_1_3 = callPackage ../development/python-modules/sqlalchemy/1_3.nix { }; + sqlalchemy_1_4 = callPackage ../development/python-modules/sqlalchemy/1_4.nix { }; sqlcipher3 = callPackage ../development/python-modules/sqlcipher3 { }; From c9f97f6697b0c32982891a51c6e2aaa8dbad1c8a Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Wed, 25 Feb 2026 23:43:07 +0100 Subject: [PATCH 2/3] szurubooru: reuse sqlalchemy_1_3 The override of sqlalchemy broke when it was moved to finalAttrs. Use a proper package instead. This is fine, since 1.3.x was a major tree before 1.4.x broke compat and still builds/tests fine. --- pkgs/servers/web-apps/szurubooru/server.nix | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/pkgs/servers/web-apps/szurubooru/server.nix b/pkgs/servers/web-apps/szurubooru/server.nix index 910b9fc6a538..575ccc977009 100644 --- a/pkgs/servers/web-apps/szurubooru/server.nix +++ b/pkgs/servers/web-apps/szurubooru/server.nix @@ -21,17 +21,6 @@ let }; doCheck = false; }); - - sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec { - version = "1.3.23"; - src = fetchPypi { - pname = "SQLAlchemy"; - inherit version; - sha256 = "sha256-b8ozZyV4Zm9lfBMVUsTviXnBYG5JT3jNUZl0LfsmkYs="; - }; - - doCheck = false; - }); }) ]; @@ -65,7 +54,7 @@ python.pkgs.buildPythonApplication { pyrfc3339 pytz pyyaml - sqlalchemy + sqlalchemy_1_3 yt-dlp ]; From 74c9b247ca864b5aa8bd401c2d290205a89bbb76 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Wed, 25 Feb 2026 23:11:38 +0100 Subject: [PATCH 3/3] python3Packages.sqlalchemy: 2.0.46 -> 2.0.47 https://github.com/sqlalchemy/sqlalchemy/releases/tag/rel_2_0_47 --- .../python-modules/sqlalchemy/default.nix | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/pkgs/development/python-modules/sqlalchemy/default.nix b/pkgs/development/python-modules/sqlalchemy/default.nix index f3f8e36d3e29..5a817d0d909f 100644 --- a/pkgs/development/python-modules/sqlalchemy/default.nix +++ b/pkgs/development/python-modules/sqlalchemy/default.nix @@ -41,16 +41,16 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "sqlalchemy"; - version = "2.0.46"; + version = "2.0.47"; pyproject = true; src = fetchFromGitHub { owner = "sqlalchemy"; repo = "sqlalchemy"; - tag = "rel_${lib.replaceStrings [ "." ] [ "_" ] version}"; - hash = "sha256-R0d8ipiaj7IL6mHV4c1Kyd6hV+kn5NhZexruRQsyL8c="; + tag = "rel_${lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version}"; + hash = "sha256-YtOun5R+4+NdEUacOCLFf3raFKTuTpu7kxywrfSG2s0="; }; postPatch = '' @@ -115,11 +115,9 @@ buildPythonPackage rec { }; meta = { - changelog = "https://github.com/sqlalchemy/sqlalchemy/releases/tag/rel_${ - builtins.replaceStrings [ "." ] [ "_" ] version - }"; + changelog = "https://github.com/sqlalchemy/sqlalchemy/releases/tag/${finalAttrs.src.tag}"; description = "Python SQL toolkit and Object Relational Mapper"; homepage = "http://www.sqlalchemy.org/"; license = lib.licenses.mit; }; -} +})