risclog.sqlalchemy 9.0__tar.gz → 9.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/CHANGES.rst +6 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/PKG-INFO +9 -11
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/pyproject.toml +10 -8
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/cache.py +9 -4
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog.sqlalchemy.egg-info/PKG-INFO +9 -11
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog.sqlalchemy.egg-info/SOURCES.txt +0 -2
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog.sqlalchemy.egg-info/requires.txt +1 -9
- risclog_sqlalchemy-9.1/uv.lock +881 -0
- risclog_sqlalchemy-9.0/.github/workflows/tests.yml +0 -41
- risclog_sqlalchemy-9.0/.gitignore +0 -24
- risclog_sqlalchemy-9.0/uv.lock +0 -2671
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/COPYRIGHT.rst +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/HACKING.rst +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/LICENSE.txt +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/README.rst +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/docs/about.txt +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/docs/api.txt +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/docs/changes.txt +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/docs/conf.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/docs/index.txt +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/setup.cfg +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/__init__.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/db.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/fixtures.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/functions.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/interfaces.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/model.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/serializer.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/testing.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/testlayer.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/tests/__init__.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/tests/conftest.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/tests/fixtures/alembic/env.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/tests/fixtures/alembic/script.py.mako +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/tests/fixtures/alembic/versions/3f735078d5a8_foo.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/tests/test_cache.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/tests/test_db.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/tests/test_fixtures.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/tests/test_model.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog/sqlalchemy/tests/test_serializer.py +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog.sqlalchemy.egg-info/dependency_links.txt +0 -0
- {risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog.sqlalchemy.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: risclog.sqlalchemy
|
|
3
|
-
Version: 9.
|
|
3
|
+
Version: 9.1
|
|
4
4
|
Summary: Encapsulate sqlalchemy modelling infrastructure.
|
|
5
5
|
Author-email: gocept <mail@gocept.com>
|
|
6
6
|
License: ZPL 2.1
|
|
@@ -15,34 +15,26 @@ Classifier: Natural Language :: English
|
|
|
15
15
|
Classifier: Operating System :: OS Independent
|
|
16
16
|
Classifier: Programming Language :: Python
|
|
17
17
|
Classifier: Programming Language :: Python :: 3
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
20
19
|
Classifier: Programming Language :: Python :: Implementation
|
|
21
20
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
22
21
|
Classifier: Topic :: Database
|
|
23
22
|
Classifier: Topic :: Software Development :: Libraries
|
|
24
23
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
25
|
-
Requires-Python: >=3.
|
|
24
|
+
Requires-Python: >=3.12
|
|
26
25
|
Description-Content-Type: text/x-rst
|
|
27
26
|
License-File: LICENSE.txt
|
|
28
27
|
Requires-Dist: SQLAlchemy>=1.4
|
|
29
28
|
Requires-Dist: alembic>=0.7
|
|
30
29
|
Requires-Dist: importlib_resources
|
|
31
30
|
Requires-Dist: pytz
|
|
32
|
-
Requires-Dist: setuptools
|
|
31
|
+
Requires-Dist: setuptools>=84.0.0
|
|
33
32
|
Requires-Dist: transaction
|
|
34
33
|
Requires-Dist: zope.component>=4.0.1
|
|
35
34
|
Requires-Dist: zope.interface
|
|
36
35
|
Requires-Dist: zope.sqlalchemy>=1.3
|
|
37
36
|
Provides-Extra: test
|
|
38
37
|
Requires-Dist: gocept.testdb; extra == "test"
|
|
39
|
-
Provides-Extra: self-test
|
|
40
|
-
Requires-Dist: mock; extra == "self-test"
|
|
41
|
-
Requires-Dist: pyramid; extra == "self-test"
|
|
42
|
-
Requires-Dist: pytest; extra == "self-test"
|
|
43
|
-
Requires-Dist: psycopg2-binary; extra == "self-test"
|
|
44
|
-
Requires-Dist: greenlet; extra == "self-test"
|
|
45
|
-
Requires-Dist: pytest-cov; extra == "self-test"
|
|
46
38
|
Provides-Extra: pyramid
|
|
47
39
|
Requires-Dist: pyramid; extra == "pyramid"
|
|
48
40
|
Dynamic: license-file
|
|
@@ -106,6 +98,12 @@ python, where ``sphinx-pypi-upload`` is installed::
|
|
|
106
98
|
Change log for risclog.sqlalchemy
|
|
107
99
|
=================================
|
|
108
100
|
|
|
101
|
+
9.1 (2026-10-09)
|
|
102
|
+
================
|
|
103
|
+
|
|
104
|
+
- deps: Drop support for Python 3.10 and 3.11.
|
|
105
|
+
|
|
106
|
+
|
|
109
107
|
9.0 (2026-08-24)
|
|
110
108
|
================
|
|
111
109
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
[build-system]
|
|
2
|
-
requires = ["setuptools>=
|
|
2
|
+
requires = ["setuptools>=84.0.0", "wheel"]
|
|
3
3
|
build-backend = "setuptools.build_meta"
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "risclog.sqlalchemy"
|
|
7
|
-
version = "9.
|
|
7
|
+
version = "9.1"
|
|
8
8
|
description = "Encapsulate sqlalchemy modelling infrastructure."
|
|
9
9
|
keywords = ["sqlalchemy", "alembic", "model", "infrastructure", "utility"]
|
|
10
|
-
requires-python = ">=3.
|
|
10
|
+
requires-python = ">=3.12"
|
|
11
11
|
authors = [{ name = "gocept", email = "mail@gocept.com" }]
|
|
12
12
|
license = { text = "ZPL 2.1" }
|
|
13
13
|
urls = { Homepage = "https://github.com/gocept/risclog.sqlalchemy" }
|
|
@@ -22,7 +22,6 @@ classifiers = [
|
|
|
22
22
|
"Operating System :: OS Independent",
|
|
23
23
|
"Programming Language :: Python",
|
|
24
24
|
"Programming Language :: Python :: 3",
|
|
25
|
-
"Programming Language :: Python :: 3.10",
|
|
26
25
|
"Programming Language :: Python :: 3.12",
|
|
27
26
|
"Programming Language :: Python :: Implementation",
|
|
28
27
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
@@ -35,7 +34,7 @@ dependencies = [
|
|
|
35
34
|
"alembic >= 0.7",
|
|
36
35
|
"importlib_resources",
|
|
37
36
|
"pytz",
|
|
38
|
-
"setuptools",
|
|
37
|
+
"setuptools>=84.0.0",
|
|
39
38
|
"transaction",
|
|
40
39
|
"zope.component >= 4.0.1",
|
|
41
40
|
"zope.interface",
|
|
@@ -44,15 +43,18 @@ dependencies = [
|
|
|
44
43
|
|
|
45
44
|
[project.optional-dependencies]
|
|
46
45
|
test = ["gocept.testdb"]
|
|
47
|
-
|
|
46
|
+
pyramid = ["pyramid"]
|
|
47
|
+
|
|
48
|
+
[dependency-groups]
|
|
49
|
+
dev = [
|
|
50
|
+
"risclog.sqlalchemy[test]",
|
|
48
51
|
"mock",
|
|
49
52
|
"pyramid",
|
|
50
53
|
"pytest",
|
|
51
|
-
"
|
|
54
|
+
"psycopg[binary]",
|
|
52
55
|
"greenlet",
|
|
53
56
|
"pytest-cov",
|
|
54
57
|
]
|
|
55
|
-
pyramid = ["pyramid"]
|
|
56
58
|
|
|
57
59
|
[tool.setuptools]
|
|
58
60
|
include-package-data = true
|
|
@@ -249,7 +249,7 @@ class ModelCache:
|
|
|
249
249
|
See: https://www.postgresql.org/docs/current/sql-copy.html
|
|
250
250
|
|
|
251
251
|
Args:
|
|
252
|
-
cursor: A
|
|
252
|
+
cursor: A psycopg2 or psycopg 3 cursor
|
|
253
253
|
objects: SQLAlchemy ORM instances to save
|
|
254
254
|
"""
|
|
255
255
|
if len(objects) == 0:
|
|
@@ -284,11 +284,16 @@ class ModelCache:
|
|
|
284
284
|
columns_string = ",".join(
|
|
285
285
|
[f'"{column}"' for column in table.columns.keys()]
|
|
286
286
|
)
|
|
287
|
-
|
|
287
|
+
statement = (
|
|
288
288
|
f"COPY {table} ({columns_string}) "
|
|
289
|
-
"FROM STDIN WITH CSV DELIMITER ',' NULL '\\N'"
|
|
290
|
-
file,
|
|
289
|
+
"FROM STDIN WITH CSV DELIMITER ',' NULL '\\N'"
|
|
291
290
|
)
|
|
291
|
+
if hasattr(cursor, "copy_expert"): # psycopg2
|
|
292
|
+
cursor.copy_expert(statement, file)
|
|
293
|
+
else: # psycopg 3
|
|
294
|
+
with cursor.copy(statement) as copy:
|
|
295
|
+
while data := file.read(8192):
|
|
296
|
+
copy.write(data)
|
|
292
297
|
cursor.connection.commit()
|
|
293
298
|
|
|
294
299
|
def clear(self, session=None):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: risclog.sqlalchemy
|
|
3
|
-
Version: 9.
|
|
3
|
+
Version: 9.1
|
|
4
4
|
Summary: Encapsulate sqlalchemy modelling infrastructure.
|
|
5
5
|
Author-email: gocept <mail@gocept.com>
|
|
6
6
|
License: ZPL 2.1
|
|
@@ -15,34 +15,26 @@ Classifier: Natural Language :: English
|
|
|
15
15
|
Classifier: Operating System :: OS Independent
|
|
16
16
|
Classifier: Programming Language :: Python
|
|
17
17
|
Classifier: Programming Language :: Python :: 3
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
20
19
|
Classifier: Programming Language :: Python :: Implementation
|
|
21
20
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
22
21
|
Classifier: Topic :: Database
|
|
23
22
|
Classifier: Topic :: Software Development :: Libraries
|
|
24
23
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
25
|
-
Requires-Python: >=3.
|
|
24
|
+
Requires-Python: >=3.12
|
|
26
25
|
Description-Content-Type: text/x-rst
|
|
27
26
|
License-File: LICENSE.txt
|
|
28
27
|
Requires-Dist: SQLAlchemy>=1.4
|
|
29
28
|
Requires-Dist: alembic>=0.7
|
|
30
29
|
Requires-Dist: importlib_resources
|
|
31
30
|
Requires-Dist: pytz
|
|
32
|
-
Requires-Dist: setuptools
|
|
31
|
+
Requires-Dist: setuptools>=84.0.0
|
|
33
32
|
Requires-Dist: transaction
|
|
34
33
|
Requires-Dist: zope.component>=4.0.1
|
|
35
34
|
Requires-Dist: zope.interface
|
|
36
35
|
Requires-Dist: zope.sqlalchemy>=1.3
|
|
37
36
|
Provides-Extra: test
|
|
38
37
|
Requires-Dist: gocept.testdb; extra == "test"
|
|
39
|
-
Provides-Extra: self-test
|
|
40
|
-
Requires-Dist: mock; extra == "self-test"
|
|
41
|
-
Requires-Dist: pyramid; extra == "self-test"
|
|
42
|
-
Requires-Dist: pytest; extra == "self-test"
|
|
43
|
-
Requires-Dist: psycopg2-binary; extra == "self-test"
|
|
44
|
-
Requires-Dist: greenlet; extra == "self-test"
|
|
45
|
-
Requires-Dist: pytest-cov; extra == "self-test"
|
|
46
38
|
Provides-Extra: pyramid
|
|
47
39
|
Requires-Dist: pyramid; extra == "pyramid"
|
|
48
40
|
Dynamic: license-file
|
|
@@ -106,6 +98,12 @@ python, where ``sphinx-pypi-upload`` is installed::
|
|
|
106
98
|
Change log for risclog.sqlalchemy
|
|
107
99
|
=================================
|
|
108
100
|
|
|
101
|
+
9.1 (2026-10-09)
|
|
102
|
+
================
|
|
103
|
+
|
|
104
|
+
- deps: Drop support for Python 3.10 and 3.11.
|
|
105
|
+
|
|
106
|
+
|
|
109
107
|
9.0 (2026-08-24)
|
|
110
108
|
================
|
|
111
109
|
|
{risclog_sqlalchemy-9.0 → risclog_sqlalchemy-9.1}/src/risclog.sqlalchemy.egg-info/requires.txt
RENAMED
|
@@ -2,7 +2,7 @@ SQLAlchemy>=1.4
|
|
|
2
2
|
alembic>=0.7
|
|
3
3
|
importlib_resources
|
|
4
4
|
pytz
|
|
5
|
-
setuptools
|
|
5
|
+
setuptools>=84.0.0
|
|
6
6
|
transaction
|
|
7
7
|
zope.component>=4.0.1
|
|
8
8
|
zope.interface
|
|
@@ -11,13 +11,5 @@ zope.sqlalchemy>=1.3
|
|
|
11
11
|
[pyramid]
|
|
12
12
|
pyramid
|
|
13
13
|
|
|
14
|
-
[self-test]
|
|
15
|
-
mock
|
|
16
|
-
pyramid
|
|
17
|
-
pytest
|
|
18
|
-
psycopg2-binary
|
|
19
|
-
greenlet
|
|
20
|
-
pytest-cov
|
|
21
|
-
|
|
22
14
|
[test]
|
|
23
15
|
gocept.testdb
|