sqlalchemy-cratedb 0.40.0__tar.gz → 0.41.0__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.
Files changed (45) hide show
  1. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/CHANGES.md +8 -1
  2. {sqlalchemy_cratedb-0.40.0/src/sqlalchemy_cratedb.egg-info → sqlalchemy_cratedb-0.41.0}/PKG-INFO +12 -11
  3. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/pyproject.toml +10 -9
  4. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/compat/api13.py +2 -2
  5. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/compat/core20.py +2 -3
  6. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/compiler.py +1 -1
  7. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/dialect.py +1 -1
  8. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/type/array.py +2 -0
  9. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0/src/sqlalchemy_cratedb.egg-info}/PKG-INFO +12 -11
  10. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb.egg-info/requires.txt +11 -9
  11. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/tests/test_support_polyfill.py +3 -3
  12. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/CODE_OF_CONDUCT.md +0 -0
  13. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/CONTRIBUTING.md +0 -0
  14. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/DEVELOP.md +0 -0
  15. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/LICENSE +0 -0
  16. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/MANIFEST.in +0 -0
  17. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/NOTICE +0 -0
  18. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/README.md +0 -0
  19. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/backlog.md +0 -0
  20. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/docs/_extra/robots.txt +0 -0
  21. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/docs/requirements.txt +0 -0
  22. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/setup.cfg +0 -0
  23. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/setup.py +0 -0
  24. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/__init__.py +0 -0
  25. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/compat/__init__.py +0 -0
  26. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/compat/core10.py +0 -0
  27. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/compat/core14.py +0 -0
  28. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/predicate.py +0 -0
  29. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/sa_version.py +0 -0
  30. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/support/__init__.py +0 -0
  31. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/support/pandas.py +0 -0
  32. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/support/polyfill.py +0 -0
  33. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/support/util.py +0 -0
  34. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/type/__init__.py +0 -0
  35. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/type/geo.py +0 -0
  36. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/type/object.py +0 -0
  37. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb/type/vector.py +0 -0
  38. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb.egg-info/SOURCES.txt +0 -0
  39. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb.egg-info/dependency_links.txt +0 -0
  40. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb.egg-info/entry_points.txt +0 -0
  41. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/src/sqlalchemy_cratedb.egg-info/top_level.txt +0 -0
  42. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/tests/test_error_handling.py +0 -0
  43. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/tests/test_schema.py +0 -0
  44. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/tests/test_support_pandas.py +0 -0
  45. {sqlalchemy_cratedb-0.40.0 → sqlalchemy_cratedb-0.41.0}/tests/test_support_util.py +0 -0
@@ -2,9 +2,16 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 2025/01/30 0.41.0
6
+ - Dependencies: Updated to `crate-2.0.0`, which uses `orjson` for JSON marshalling
7
+
8
+ ## 2024/11/04 0.40.1
9
+ - CI: Verified support on Python 3.13
10
+ - Dependencies: Updated to `crate-1.0.0.dev2`
11
+
5
12
  ## 2024/10/07 0.40.0
6
13
  - Propagate error traces properly, using the `error_trace` `connect_args` option,
7
- by using `crate-1.0.0dev1`
14
+ by using `crate-1.0.0.dev1`
8
15
  - Use slightly amended `do_execute`, `do_execute_no_params`, `do_executemany`
9
16
  to store their responses into the request context instance
10
17
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: sqlalchemy-cratedb
3
- Version: 0.40.0
3
+ Version: 0.41.0
4
4
  Summary: SQLAlchemy dialect for CrateDB.
5
5
  Author-email: "Crate.io" <office@crate.io>
6
6
  License: Apache License 2.0
@@ -33,6 +33,7 @@ Classifier: Programming Language :: Python :: 3.9
33
33
  Classifier: Programming Language :: Python :: 3.10
34
34
  Classifier: Programming Language :: Python :: 3.11
35
35
  Classifier: Programming Language :: Python :: 3.12
36
+ Classifier: Programming Language :: Python :: 3.13
36
37
  Classifier: Programming Language :: Python :: Implementation :: CPython
37
38
  Classifier: Programming Language :: Python :: Implementation :: PyPy
38
39
  Classifier: Programming Language :: SQL
@@ -63,7 +64,7 @@ Description-Content-Type: text/markdown
63
64
  License-File: LICENSE
64
65
  License-File: NOTICE
65
66
  Requires-Dist: backports.zoneinfo<1; python_version < "3.9"
66
- Requires-Dist: crate==1.0.0.dev1
67
+ Requires-Dist: crate<3,>=2
67
68
  Requires-Dist: geojson<4,>=2.5
68
69
  Requires-Dist: importlib-resources; python_version < "3.9"
69
70
  Requires-Dist: sqlalchemy<2.1,>=1
@@ -71,24 +72,24 @@ Requires-Dist: verlib2==0.2
71
72
  Provides-Extra: all
72
73
  Requires-Dist: sqlalchemy-cratedb[vector]; extra == "all"
73
74
  Provides-Extra: develop
74
- Requires-Dist: mypy<1.12; extra == "develop"
75
- Requires-Dist: poethepoet<0.30; extra == "develop"
76
- Requires-Dist: pyproject-fmt<2.3; extra == "develop"
77
- Requires-Dist: ruff<0.7; extra == "develop"
78
- Requires-Dist: validate-pyproject<0.21; extra == "develop"
75
+ Requires-Dist: mypy<1.15; extra == "develop"
76
+ Requires-Dist: poethepoet<0.33; extra == "develop"
77
+ Requires-Dist: pyproject-fmt<2.6; extra == "develop"
78
+ Requires-Dist: ruff<0.10; extra == "develop"
79
+ Requires-Dist: validate-pyproject<0.24; extra == "develop"
79
80
  Provides-Extra: doc
80
81
  Requires-Dist: crate-docs-theme>=0.26.5; extra == "doc"
81
82
  Requires-Dist: sphinx<9,>=3.5; extra == "doc"
82
83
  Provides-Extra: release
83
84
  Requires-Dist: build<2; extra == "release"
84
- Requires-Dist: twine<6; extra == "release"
85
+ Requires-Dist: twine<7; extra == "release"
85
86
  Provides-Extra: test
86
87
  Requires-Dist: cratedb-toolkit[testing]; extra == "test"
87
- Requires-Dist: dask[dataframe]; extra == "test"
88
+ Requires-Dist: dask[dataframe]; python_version < "3.13" and extra == "test"
88
89
  Requires-Dist: pandas<2.3; extra == "test"
89
90
  Requires-Dist: pueblo>=0.0.7; extra == "test"
90
91
  Requires-Dist: pytest<9; extra == "test"
91
- Requires-Dist: pytest-cov<6; extra == "test"
92
+ Requires-Dist: pytest-cov<7; extra == "test"
92
93
  Requires-Dist: pytest-mock<4; extra == "test"
93
94
  Provides-Extra: vector
94
95
  Requires-Dist: numpy; extra == "vector"
@@ -50,6 +50,7 @@ classifiers = [
50
50
  "Programming Language :: Python :: 3.10",
51
51
  "Programming Language :: Python :: 3.11",
52
52
  "Programming Language :: Python :: 3.12",
53
+ "Programming Language :: Python :: 3.13",
53
54
  "Programming Language :: Python :: Implementation :: CPython",
54
55
  "Programming Language :: Python :: Implementation :: PyPy",
55
56
  "Programming Language :: SQL",
@@ -81,7 +82,7 @@ dynamic = [
81
82
  ]
82
83
  dependencies = [
83
84
  "backports.zoneinfo<1; python_version<'3.9'",
84
- "crate==1.0.0.dev1",
85
+ "crate>=2,<3",
85
86
  "geojson<4,>=2.5",
86
87
  "importlib-resources; python_version<'3.9'",
87
88
  "sqlalchemy<2.1,>=1",
@@ -91,11 +92,11 @@ optional-dependencies.all = [
91
92
  "sqlalchemy-cratedb[vector]",
92
93
  ]
93
94
  optional-dependencies.develop = [
94
- "mypy<1.12",
95
- "poethepoet<0.30",
96
- "pyproject-fmt<2.3",
97
- "ruff<0.7",
98
- "validate-pyproject<0.21",
95
+ "mypy<1.15",
96
+ "poethepoet<0.33",
97
+ "pyproject-fmt<2.6",
98
+ "ruff<0.10",
99
+ "validate-pyproject<0.24",
99
100
  ]
100
101
  optional-dependencies.doc = [
101
102
  "crate-docs-theme>=0.26.5",
@@ -103,15 +104,15 @@ optional-dependencies.doc = [
103
104
  ]
104
105
  optional-dependencies.release = [
105
106
  "build<2",
106
- "twine<6",
107
+ "twine<7",
107
108
  ]
108
109
  optional-dependencies.test = [
109
110
  "cratedb-toolkit[testing]",
110
- "dask[dataframe]",
111
+ "dask[dataframe]; python_version<'3.13'",
111
112
  "pandas<2.3",
112
113
  "pueblo>=0.0.7",
113
114
  "pytest<9",
114
- "pytest-cov<6",
115
+ "pytest-cov<7",
115
116
  "pytest-mock<4",
116
117
  ]
117
118
  optional-dependencies.vector = [
@@ -71,7 +71,7 @@ def exec_driver_sql(self, statement, parameters=None, execution_options=None):
71
71
  """
72
72
  if execution_options is not None:
73
73
  raise ValueError(
74
- "SA13 backward-compatibility: " "`exec_driver_sql` does not support `execution_options`"
74
+ "SA13 backward-compatibility: `exec_driver_sql` does not support `execution_options`"
75
75
  )
76
76
  args_10style, kwargs_10style = _distill_params_20(parameters)
77
77
  return self.execute(statement, *args_10style, **kwargs_10style)
@@ -106,7 +106,7 @@ def select_sa14(*columns, **kw) -> Select:
106
106
  if isinstance(columns, tuple) and isinstance(columns[0], list):
107
107
  if "whereclause" in kw:
108
108
  raise ValueError(
109
- "SA13 backward-compatibility: " "`whereclause` is both in kwargs and columns tuple"
109
+ "SA13 backward-compatibility: `whereclause` is both in kwargs and columns tuple"
110
110
  )
111
111
  columns, whereclause = columns
112
112
  kw["whereclause"] = whereclause
@@ -19,7 +19,7 @@
19
19
  # with Crate these terms will supersede the license and you may use the
20
20
  # software solely pursuant to the terms of the relevant commercial agreement.
21
21
 
22
- # ruff: noqa: S101 Use of `assert` detected
22
+ # ruff: noqa: S101 # Use of `assert` detected
23
23
 
24
24
  from typing import Any, Dict, List, MutableMapping, Optional, Tuple, Union
25
25
 
@@ -232,8 +232,7 @@ def _get_crud_params(
232
232
 
233
233
  if stmt._returning and stmt._return_defaults:
234
234
  raise exc.CompileError(
235
- "Can't compile statement that includes returning() and "
236
- "return_defaults() simultaneously"
235
+ "Can't compile statement that includes returning() and return_defaults() simultaneously"
237
236
  )
238
237
 
239
238
  if compile_state.isdelete:
@@ -146,7 +146,7 @@ class CrateDDLCompiler(compiler.DDLCompiler):
146
146
  def visit_computed_column(self, generated):
147
147
  if generated.persisted is False:
148
148
  raise sa.exc.CompileError(
149
- "Virtual computed columns are not supported, set " "'persisted' to None or True"
149
+ "Virtual computed columns are not supported, set 'persisted' to None or True"
150
150
  )
151
151
 
152
152
  return "GENERATED ALWAYS AS (%s)" % self.sql_compiler.process(
@@ -291,7 +291,7 @@ class CrateDialect(default.DefaultDialect):
291
291
  @reflection.cache
292
292
  def get_schema_names(self, connection, **kw):
293
293
  cursor = connection.exec_driver_sql(
294
- "select schema_name " "from information_schema.schemata " "order by schema_name asc"
294
+ "select schema_name from information_schema.schemata order by schema_name asc"
295
295
  )
296
296
  return [row[0] for row in cursor.fetchall()]
297
297
 
@@ -19,6 +19,8 @@
19
19
  # with Crate these terms will supersede the license and you may use the
20
20
  # software solely pursuant to the terms of the relevant commercial agreement.
21
21
 
22
+ # ruff: noqa: A005 # Module `array` shadows a Python standard-library module
23
+
22
24
  import sqlalchemy.types as sqltypes
23
25
  from sqlalchemy.ext.mutable import Mutable
24
26
  from sqlalchemy.sql import default_comparator, expression, operators
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: sqlalchemy-cratedb
3
- Version: 0.40.0
3
+ Version: 0.41.0
4
4
  Summary: SQLAlchemy dialect for CrateDB.
5
5
  Author-email: "Crate.io" <office@crate.io>
6
6
  License: Apache License 2.0
@@ -33,6 +33,7 @@ Classifier: Programming Language :: Python :: 3.9
33
33
  Classifier: Programming Language :: Python :: 3.10
34
34
  Classifier: Programming Language :: Python :: 3.11
35
35
  Classifier: Programming Language :: Python :: 3.12
36
+ Classifier: Programming Language :: Python :: 3.13
36
37
  Classifier: Programming Language :: Python :: Implementation :: CPython
37
38
  Classifier: Programming Language :: Python :: Implementation :: PyPy
38
39
  Classifier: Programming Language :: SQL
@@ -63,7 +64,7 @@ Description-Content-Type: text/markdown
63
64
  License-File: LICENSE
64
65
  License-File: NOTICE
65
66
  Requires-Dist: backports.zoneinfo<1; python_version < "3.9"
66
- Requires-Dist: crate==1.0.0.dev1
67
+ Requires-Dist: crate<3,>=2
67
68
  Requires-Dist: geojson<4,>=2.5
68
69
  Requires-Dist: importlib-resources; python_version < "3.9"
69
70
  Requires-Dist: sqlalchemy<2.1,>=1
@@ -71,24 +72,24 @@ Requires-Dist: verlib2==0.2
71
72
  Provides-Extra: all
72
73
  Requires-Dist: sqlalchemy-cratedb[vector]; extra == "all"
73
74
  Provides-Extra: develop
74
- Requires-Dist: mypy<1.12; extra == "develop"
75
- Requires-Dist: poethepoet<0.30; extra == "develop"
76
- Requires-Dist: pyproject-fmt<2.3; extra == "develop"
77
- Requires-Dist: ruff<0.7; extra == "develop"
78
- Requires-Dist: validate-pyproject<0.21; extra == "develop"
75
+ Requires-Dist: mypy<1.15; extra == "develop"
76
+ Requires-Dist: poethepoet<0.33; extra == "develop"
77
+ Requires-Dist: pyproject-fmt<2.6; extra == "develop"
78
+ Requires-Dist: ruff<0.10; extra == "develop"
79
+ Requires-Dist: validate-pyproject<0.24; extra == "develop"
79
80
  Provides-Extra: doc
80
81
  Requires-Dist: crate-docs-theme>=0.26.5; extra == "doc"
81
82
  Requires-Dist: sphinx<9,>=3.5; extra == "doc"
82
83
  Provides-Extra: release
83
84
  Requires-Dist: build<2; extra == "release"
84
- Requires-Dist: twine<6; extra == "release"
85
+ Requires-Dist: twine<7; extra == "release"
85
86
  Provides-Extra: test
86
87
  Requires-Dist: cratedb-toolkit[testing]; extra == "test"
87
- Requires-Dist: dask[dataframe]; extra == "test"
88
+ Requires-Dist: dask[dataframe]; python_version < "3.13" and extra == "test"
88
89
  Requires-Dist: pandas<2.3; extra == "test"
89
90
  Requires-Dist: pueblo>=0.0.7; extra == "test"
90
91
  Requires-Dist: pytest<9; extra == "test"
91
- Requires-Dist: pytest-cov<6; extra == "test"
92
+ Requires-Dist: pytest-cov<7; extra == "test"
92
93
  Requires-Dist: pytest-mock<4; extra == "test"
93
94
  Provides-Extra: vector
94
95
  Requires-Dist: numpy; extra == "vector"
@@ -1,4 +1,4 @@
1
- crate==1.0.0.dev1
1
+ crate<3,>=2
2
2
  geojson<4,>=2.5
3
3
  sqlalchemy<2.1,>=1
4
4
  verlib2==0.2
@@ -11,11 +11,11 @@ importlib-resources
11
11
  sqlalchemy-cratedb[vector]
12
12
 
13
13
  [develop]
14
- mypy<1.12
15
- poethepoet<0.30
16
- pyproject-fmt<2.3
17
- ruff<0.7
18
- validate-pyproject<0.21
14
+ mypy<1.15
15
+ poethepoet<0.33
16
+ pyproject-fmt<2.6
17
+ ruff<0.10
18
+ validate-pyproject<0.24
19
19
 
20
20
  [doc]
21
21
  crate-docs-theme>=0.26.5
@@ -23,16 +23,18 @@ sphinx<9,>=3.5
23
23
 
24
24
  [release]
25
25
  build<2
26
- twine<6
26
+ twine<7
27
27
 
28
28
  [test]
29
29
  cratedb-toolkit[testing]
30
- dask[dataframe]
31
30
  pandas<2.3
32
31
  pueblo>=0.0.7
33
32
  pytest<9
34
- pytest-cov<6
33
+ pytest-cov<7
35
34
  pytest-mock<4
36
35
 
36
+ [test:python_version < "3.13"]
37
+ dask[dataframe]
38
+
37
39
  [vector]
38
40
  numpy
@@ -143,9 +143,9 @@ def test_refresh_after_dml(cratedb_service, mode):
143
143
  result = query.first()
144
144
 
145
145
  # Sanity checks.
146
- assert (
147
- result is not None
148
- ), "Database result is empty. Most probably, `REFRESH TABLE` wasn't issued."
146
+ assert result is not None, (
147
+ "Database result is empty. Most probably, `REFRESH TABLE` wasn't issued."
148
+ )
149
149
 
150
150
  # Compare outcome.
151
151
  assert result[0] == "foo"