sqlalchemy-cratedb 0.38.0.dev0__tar.gz → 0.40.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.
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/CHANGES.md +15 -1
- {sqlalchemy_cratedb-0.38.0.dev0/src/sqlalchemy_cratedb.egg-info → sqlalchemy_cratedb-0.40.0}/PKG-INFO +8 -9
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/pyproject.toml +122 -115
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/__init__.py +7 -4
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/compat/api13.py +5 -9
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/compat/core10.py +26 -37
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/compat/core14.py +30 -52
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/compat/core20.py +35 -58
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/compiler.py +80 -81
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/dialect.py +93 -65
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/predicate.py +14 -17
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/sa_version.py +2 -2
- sqlalchemy_cratedb-0.40.0/src/sqlalchemy_cratedb/support/__init__.py +18 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/support/pandas.py +4 -5
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/support/polyfill.py +10 -8
- sqlalchemy_cratedb-0.40.0/src/sqlalchemy_cratedb/support/util.py +82 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/type/__init__.py +9 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/type/array.py +5 -8
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/type/geo.py +5 -10
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/type/object.py +13 -11
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/type/vector.py +6 -3
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0/src/sqlalchemy_cratedb.egg-info}/PKG-INFO +8 -9
- sqlalchemy_cratedb-0.40.0/src/sqlalchemy_cratedb.egg-info/SOURCES.txt +44 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb.egg-info/requires.txt +7 -8
- sqlalchemy_cratedb-0.40.0/tests/test_error_handling.py +21 -0
- sqlalchemy_cratedb-0.40.0/tests/test_support_pandas.py +115 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/tests/test_support_polyfill.py +24 -10
- sqlalchemy_cratedb-0.40.0/tests/test_support_util.py +51 -0
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.build/_sources/advanced-querying.rst.txt +0 -335
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.build/_sources/crud.rst.txt +0 -301
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.build/_sources/data-types.rst.txt +0 -87
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.build/_sources/dataframe.rst.txt +0 -258
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.build/_sources/getting-started.rst.txt +0 -211
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.build/_sources/index-all.rst.txt +0 -21
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.build/_sources/index.rst.txt +0 -252
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.build/_sources/inspection-reflection.rst.txt +0 -126
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.build/_sources/install.rst.txt +0 -50
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.build/_sources/migrate-from-crate-client.md.txt +0 -54
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.build/_sources/overview.rst.txt +0 -761
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.build/_sources/support.md.txt +0 -243
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.build/_sources/working-with-types.rst.txt +0 -303
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.build/_static/bundle/main.js.LICENSE.txt +0 -19
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.build/output.txt +0 -13
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/Babel-2.15.0.dist-info/entry_points.txt +0 -20
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/Babel-2.15.0.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/MarkupSafe-2.1.5.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/PyYAML-6.0.1.dist-info/top_level.txt +0 -2
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/alabaster-0.7.16.dist-info/entry_points.txt +0 -3
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/certifi-2024.6.2.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/charset_normalizer-3.3.2.dist-info/entry_points.txt +0 -2
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/charset_normalizer-3.3.2.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/colorama-0.4.6.dist-info/licenses/LICENSE.txt +0 -27
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/crate/theme/rtd/crate/static/bundle/main.js.LICENSE.txt +0 -19
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/crate_docs_theme-0.32.4.dev1.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/README.txt +0 -17
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamsa.txt +0 -162
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamsb.txt +0 -126
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamsc.txt +0 -29
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamsn.txt +0 -96
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamso.txt +0 -62
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamsr.txt +0 -191
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isobox.txt +0 -46
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isocyr1.txt +0 -73
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isocyr2.txt +0 -32
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isodia.txt +0 -20
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isogrk1.txt +0 -55
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isogrk2.txt +0 -26
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isogrk3.txt +0 -52
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isogrk4-wide.txt +0 -49
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isogrk4.txt +0 -8
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isolat1.txt +0 -68
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isolat2.txt +0 -128
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomfrk-wide.txt +0 -58
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomfrk.txt +0 -11
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomopf-wide.txt +0 -32
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomopf.txt +0 -13
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomscr-wide.txt +0 -58
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomscr.txt +0 -17
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isonum.txt +0 -82
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isopub.txt +0 -90
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isotech.txt +0 -168
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/mmlalias.txt +0 -554
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/mmlextra-wide.txt +0 -113
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/mmlextra.txt +0 -87
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/s5defs.txt +0 -68
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/xhtml1-lat1.txt +0 -102
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/xhtml1-special.txt +0 -37
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/xhtml1-symbol.txt +0 -130
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/writers/html4css1/template.txt +0 -8
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/writers/html5_polyglot/template.txt +0 -8
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/writers/pep_html/template.txt +0 -29
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/writers/s5_html/themes/README.txt +0 -6
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils-0.16.dist-info/COPYING.txt +0 -137
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils-0.16.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/imagesize-1.4.1.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/importlib_metadata-7.1.0.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/jinja2-3.1.4.dist-info/LICENSE.txt +0 -28
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/jinja2-3.1.4.dist-info/entry_points.txt +0 -3
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/linkify_it_py-1.0.3.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/livereload-2.6.3.dist-info/entry_points.txt +0 -2
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/livereload-2.6.3.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/markdown_it_py-2.2.0.dist-info/entry_points.txt +0 -3
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/myst_parser-1.0.0.dist-info/entry_points.txt +0 -10
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/pip/_vendor/vendor.txt +0 -24
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/pip-24.0.dist-info/AUTHORS.txt +0 -760
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/pip-24.0.dist-info/LICENSE.txt +0 -20
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/pip-24.0.dist-info/entry_points.txt +0 -4
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/pip-24.0.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/pygments-2.18.0.dist-info/entry_points.txt +0 -2
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/requests-2.32.3.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/setuptools-58.1.0.dist-info/entry_points.txt +0 -56
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/setuptools-58.1.0.dist-info/top_level.txt +0 -3
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/six-1.16.0.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/snowballstemmer-2.2.0.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinx-5.3.0.dist-info/entry_points.txt +0 -9
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinx_autobuild-2021.3.14.dist-info/entry_points.txt +0 -3
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinx_copybutton-0.5.2.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinx_design/compiled/material-icons_VERSION.txt +0 -3
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinx_design_elements-0.3.2.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinx_sitemap-2.6.0.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinx_togglebutton-0.3.2.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinxcontrib_jsmath-1.0.1.dist-info/namespace_packages.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinxcontrib_jsmath-1.0.1.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinxcontrib_mermaid-0.9.2.dist-info/namespace_packages.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinxcontrib_mermaid-0.9.2.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinxcontrib_plantuml-0.30.dist-info/namespace_packages.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinxcontrib_plantuml-0.30.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinxext_opengraph-0.9.1.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/tornado/test/static/robots.txt +0 -2
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/tornado/test/static_foo.txt +0 -2
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/tornado-6.4.1.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/uc_micro_py-1.0.3.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/urllib3-2.2.1.dist-info/licenses/LICENSE.txt +0 -21
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/wheel/vendored/vendor.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/wheel-0.43.0.dist-info/LICENSE.txt +0 -21
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/wheel-0.43.0.dist-info/entry_points.txt +0 -6
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.venv/lib/python3.9/site-packages/zipp-3.19.2.dist-info/top_level.txt +0 -1
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/common-build/requirements.txt +0 -12
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/docs/_extra/robots.txt +0 -2
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/docs/requirements.txt +0 -2
- sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/helpers/preview/etc/requirements.txt +0 -3
- sqlalchemy_cratedb-0.38.0.dev0/docs/_extra/robots.txt +0 -4
- sqlalchemy_cratedb-0.38.0.dev0/src/sqlalchemy_cratedb/support/__init__.py +0 -14
- sqlalchemy_cratedb-0.38.0.dev0/src/sqlalchemy_cratedb/support/util.py +0 -34
- sqlalchemy_cratedb-0.38.0.dev0/src/sqlalchemy_cratedb.egg-info/SOURCES.txt +0 -156
- sqlalchemy_cratedb-0.38.0.dev0/tests/test_support_pandas.py +0 -74
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/CODE_OF_CONDUCT.md +0 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/CONTRIBUTING.md +0 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/DEVELOP.md +0 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/LICENSE +0 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/MANIFEST.in +0 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/NOTICE +0 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/README.md +0 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/backlog.md +0 -0
- {sqlalchemy_cratedb-0.38.0.dev0/docs/.crate-docs/.build → sqlalchemy_cratedb-0.40.0/docs/_extra}/robots.txt +0 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/docs/requirements.txt +0 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/setup.cfg +0 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/setup.py +0 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/compat/__init__.py +0 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb.egg-info/dependency_links.txt +0 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb.egg-info/entry_points.txt +0 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb.egg-info/top_level.txt +0 -0
- {sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/tests/test_schema.py +0 -0
@@ -1,7 +1,17 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
|
4
3
|
## Unreleased
|
4
|
+
|
5
|
+
## 2024/10/07 0.40.0
|
6
|
+
- Propagate error traces properly, using the `error_trace` `connect_args` option,
|
7
|
+
by using `crate-1.0.0dev1`
|
8
|
+
- Use slightly amended `do_execute`, `do_execute_no_params`, `do_executemany`
|
9
|
+
to store their responses into the request context instance
|
10
|
+
|
11
|
+
## 2024/08/29 0.39.0
|
12
|
+
- Added `quote_relation_name` support utility function
|
13
|
+
|
14
|
+
## 2024/06/25 0.38.0
|
5
15
|
- Added/reactivated documentation as `sqlalchemy-cratedb`
|
6
16
|
- Added `CrateIdentifierPreparer`, in order to quote reserved words
|
7
17
|
like `object` properly, for example when used as column names.
|
@@ -11,6 +21,10 @@
|
|
11
21
|
`check_uniqueness_factory`
|
12
22
|
- Added `table_kwargs` context manager to enable pandas/Dask to support
|
13
23
|
CrateDB dialect table options.
|
24
|
+
- Fixed SQL rendering of special DDL table options in `CrateDDLCompiler`.
|
25
|
+
Before, configuring `crate_"translog.durability"` was not possible.
|
26
|
+
- Unlocked supporting timezone-aware `DateTime` fields
|
27
|
+
- Added support for marshalling Python `datetime.date` values on `sa.DateTime` fields
|
14
28
|
|
15
29
|
## 2024/06/13 0.37.0
|
16
30
|
- Added support for CrateDB's [FLOAT_VECTOR] data type and its accompanying
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: sqlalchemy-cratedb
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.40.0
|
4
4
|
Summary: SQLAlchemy dialect for CrateDB.
|
5
5
|
Author-email: "Crate.io" <office@crate.io>
|
6
6
|
License: Apache License 2.0
|
@@ -63,7 +63,7 @@ Description-Content-Type: text/markdown
|
|
63
63
|
License-File: LICENSE
|
64
64
|
License-File: NOTICE
|
65
65
|
Requires-Dist: backports.zoneinfo<1; python_version < "3.9"
|
66
|
-
Requires-Dist: crate==1.0.
|
66
|
+
Requires-Dist: crate==1.0.0.dev1
|
67
67
|
Requires-Dist: geojson<4,>=2.5
|
68
68
|
Requires-Dist: importlib-resources; python_version < "3.9"
|
69
69
|
Requires-Dist: sqlalchemy<2.1,>=1
|
@@ -71,15 +71,14 @@ Requires-Dist: verlib2==0.2
|
|
71
71
|
Provides-Extra: all
|
72
72
|
Requires-Dist: sqlalchemy-cratedb[vector]; extra == "all"
|
73
73
|
Provides-Extra: develop
|
74
|
-
Requires-Dist:
|
75
|
-
Requires-Dist:
|
76
|
-
Requires-Dist:
|
77
|
-
Requires-Dist:
|
78
|
-
Requires-Dist:
|
79
|
-
Requires-Dist: validate-pyproject<0.19; 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"
|
80
79
|
Provides-Extra: doc
|
81
80
|
Requires-Dist: crate-docs-theme>=0.26.5; extra == "doc"
|
82
|
-
Requires-Dist: sphinx<
|
81
|
+
Requires-Dist: sphinx<9,>=3.5; extra == "doc"
|
83
82
|
Provides-Extra: release
|
84
83
|
Requires-Dist: build<2; extra == "release"
|
85
84
|
Requires-Dist: twine<6; extra == "release"
|
@@ -5,10 +5,6 @@ requires = [
|
|
5
5
|
"versioningit",
|
6
6
|
]
|
7
7
|
|
8
|
-
[tool.versioningit.vcs]
|
9
|
-
method = "git"
|
10
|
-
default-tag = "0.0.0"
|
11
|
-
|
12
8
|
[project]
|
13
9
|
name = "sqlalchemy-cratedb"
|
14
10
|
description = "SQLAlchemy dialect for CrateDB."
|
@@ -80,39 +76,36 @@ classifiers = [
|
|
80
76
|
"Topic :: Text Processing",
|
81
77
|
"Topic :: Utilities",
|
82
78
|
]
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
version = "0.38.0.dev0"
|
79
|
+
dynamic = [
|
80
|
+
"version",
|
81
|
+
]
|
87
82
|
dependencies = [
|
88
|
-
|
89
|
-
"crate==1.0.
|
83
|
+
"backports.zoneinfo<1; python_version<'3.9'",
|
84
|
+
"crate==1.0.0.dev1",
|
90
85
|
"geojson<4,>=2.5",
|
91
|
-
|
86
|
+
"importlib-resources; python_version<'3.9'",
|
92
87
|
"sqlalchemy<2.1,>=1",
|
93
88
|
"verlib2==0.2",
|
94
89
|
]
|
95
|
-
|
96
|
-
all = [
|
90
|
+
optional-dependencies.all = [
|
97
91
|
"sqlalchemy-cratedb[vector]",
|
98
92
|
]
|
99
|
-
develop = [
|
100
|
-
"
|
101
|
-
"
|
102
|
-
"
|
103
|
-
"
|
104
|
-
"
|
105
|
-
"validate-pyproject<0.19",
|
93
|
+
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",
|
106
99
|
]
|
107
|
-
doc = [
|
100
|
+
optional-dependencies.doc = [
|
108
101
|
"crate-docs-theme>=0.26.5",
|
109
|
-
"sphinx
|
102
|
+
"sphinx>=3.5,<9",
|
110
103
|
]
|
111
|
-
release = [
|
104
|
+
optional-dependencies.release = [
|
112
105
|
"build<2",
|
113
106
|
"twine<6",
|
114
107
|
]
|
115
|
-
test = [
|
108
|
+
optional-dependencies.test = [
|
116
109
|
"cratedb-toolkit[testing]",
|
117
110
|
"dask[dataframe]",
|
118
111
|
"pandas<2.3",
|
@@ -121,54 +114,81 @@ test = [
|
|
121
114
|
"pytest-cov<6",
|
122
115
|
"pytest-mock<4",
|
123
116
|
]
|
124
|
-
vector = [
|
117
|
+
optional-dependencies.vector = [
|
125
118
|
"numpy",
|
126
119
|
]
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
[project.entry-points."sqlalchemy.dialects"]
|
133
|
-
crate = "sqlalchemy_cratedb:dialect"
|
120
|
+
urls.changelog = "https://github.com/crate/sqlalchemy-cratedb/blob/main/CHANGES.md"
|
121
|
+
urls.documentation = "https://cratedb.com/docs/sqlalchemy-cratedb/"
|
122
|
+
urls.homepage = "https://cratedb.com/docs/sqlalchemy-cratedb/"
|
123
|
+
urls.repository = "https://github.com/crate/sqlalchemy-cratedb"
|
124
|
+
entry-points."sqlalchemy.dialects".crate = "sqlalchemy_cratedb:dialect"
|
134
125
|
|
135
126
|
[tool.black]
|
136
127
|
line-length = 100
|
137
128
|
|
138
|
-
[tool.
|
139
|
-
|
140
|
-
|
129
|
+
[tool.ruff]
|
130
|
+
line-length = 100
|
131
|
+
|
132
|
+
extend-exclude = [
|
141
133
|
]
|
142
134
|
|
143
|
-
[
|
144
|
-
|
145
|
-
|
146
|
-
|
135
|
+
lint.select = [
|
136
|
+
# Builtins
|
137
|
+
"A",
|
138
|
+
# Bugbear
|
139
|
+
"B",
|
140
|
+
# comprehensions
|
141
|
+
"C4",
|
142
|
+
# Pycodestyle
|
143
|
+
"E",
|
144
|
+
# eradicate
|
145
|
+
"ERA",
|
146
|
+
# Pyflakes
|
147
|
+
"F",
|
148
|
+
# isort
|
149
|
+
"I",
|
150
|
+
# pandas-vet
|
151
|
+
"PD",
|
152
|
+
# return
|
153
|
+
"RET",
|
154
|
+
# Bandit
|
155
|
+
"S",
|
156
|
+
# print
|
157
|
+
"T20",
|
158
|
+
"W",
|
159
|
+
# flake8-2020
|
160
|
+
"YTT",
|
147
161
|
]
|
148
162
|
|
149
|
-
[
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
"
|
154
|
-
|
163
|
+
lint.extend-ignore = [
|
164
|
+
# zip() without an explicit strict= parameter
|
165
|
+
"B905",
|
166
|
+
# Unnecessary generator (rewrite as a `dict` comprehension)
|
167
|
+
"C402",
|
168
|
+
# Unnecessary `map` usage (rewrite using a `set` comprehension)
|
169
|
+
"C417",
|
170
|
+
# df is a bad variable name. Be kinder to your future self.
|
171
|
+
"PD901",
|
172
|
+
# Unnecessary variable assignment before `return` statement
|
173
|
+
"RET504",
|
174
|
+
# Unnecessary `elif` after `return` statement
|
175
|
+
"RET505",
|
176
|
+
# Probable insecure usage of temporary file or directory
|
177
|
+
"S108",
|
178
|
+
# Possible SQL injection vector through string-based query construction
|
179
|
+
"S608",
|
155
180
|
]
|
156
181
|
|
157
|
-
[
|
158
|
-
|
159
|
-
|
160
|
-
|
182
|
+
lint.per-file-ignores."examples/*" = [
|
183
|
+
"T201", # Allow `print`
|
184
|
+
]
|
185
|
+
|
186
|
+
lint.per-file-ignores."tests/*" = [
|
187
|
+
"S101", # Allow use of `assert`, and `print`
|
188
|
+
"S608", # Possible SQL injection vector through string-based query construction
|
189
|
+
"W291", # Trailing whitespace
|
190
|
+
"W293", # Blank line contains whitespace
|
161
191
|
]
|
162
|
-
check_untyped_defs = true
|
163
|
-
explicit_package_bases = true
|
164
|
-
ignore_missing_imports = true
|
165
|
-
implicit_optional = true
|
166
|
-
install_types = true
|
167
|
-
namespace_packages = true
|
168
|
-
non_interactive = true
|
169
|
-
# Needed until `mypy-0.990` for `ConverterDefinition` in `converter.py`.
|
170
|
-
# https://github.com/python/mypy/issues/731#issuecomment-1260976955
|
171
|
-
# enable_recursive_aliases = true
|
172
192
|
|
173
193
|
[tool.pytest.ini_options]
|
174
194
|
addopts = """
|
@@ -180,7 +200,7 @@ log_level = "DEBUG"
|
|
180
200
|
log_cli_level = "DEBUG"
|
181
201
|
log_format = "%(asctime)-15s [%(name)-36s] %(levelname)-8s: %(message)s"
|
182
202
|
pythonpath = [
|
183
|
-
"src"
|
203
|
+
"src",
|
184
204
|
]
|
185
205
|
testpaths = [
|
186
206
|
"examples",
|
@@ -195,60 +215,44 @@ xfail_strict = true
|
|
195
215
|
markers = [
|
196
216
|
]
|
197
217
|
|
198
|
-
[tool.
|
199
|
-
|
200
|
-
|
201
|
-
select = [
|
202
|
-
# Bandit
|
203
|
-
"S",
|
204
|
-
# Bugbear
|
205
|
-
"B",
|
206
|
-
# Builtins
|
207
|
-
"A",
|
208
|
-
# comprehensions
|
209
|
-
"C4",
|
210
|
-
# eradicate
|
211
|
-
"ERA",
|
212
|
-
# flake8-2020
|
213
|
-
"YTT",
|
214
|
-
# isort
|
215
|
-
"I",
|
216
|
-
# pandas-vet
|
217
|
-
"PD",
|
218
|
-
# print
|
219
|
-
"T20",
|
220
|
-
# Pycodestyle
|
221
|
-
"E",
|
222
|
-
"W",
|
223
|
-
# Pyflakes
|
224
|
-
"F",
|
225
|
-
# return
|
226
|
-
"RET",
|
218
|
+
[tool.coverage.paths]
|
219
|
+
source = [
|
220
|
+
"src/",
|
227
221
|
]
|
228
222
|
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
"PD901",
|
234
|
-
# Unnecessary variable assignment before `return` statement
|
235
|
-
"RET504",
|
236
|
-
# Unnecessary `elif` after `return` statement
|
237
|
-
"RET505",
|
238
|
-
# Probable insecure usage of temporary file or directory
|
239
|
-
"S108",
|
223
|
+
[tool.coverage.run]
|
224
|
+
branch = false
|
225
|
+
omit = [
|
226
|
+
"tests/*",
|
240
227
|
]
|
241
228
|
|
242
|
-
|
229
|
+
[tool.coverage.report]
|
230
|
+
fail_under = 0
|
231
|
+
show_missing = true
|
232
|
+
exclude_lines = [
|
233
|
+
"# pragma: no cover",
|
234
|
+
"raise NotImplemented",
|
243
235
|
]
|
244
236
|
|
245
|
-
[tool.
|
246
|
-
|
247
|
-
|
248
|
-
|
237
|
+
[tool.mypy]
|
238
|
+
mypy_path = "src"
|
239
|
+
packages = [ "sqlalchemy_cratedb" ]
|
240
|
+
exclude = [
|
249
241
|
]
|
250
|
-
|
242
|
+
check_untyped_defs = true
|
243
|
+
explicit_package_bases = true
|
244
|
+
ignore_missing_imports = true
|
245
|
+
implicit_optional = true
|
246
|
+
install_types = true
|
247
|
+
namespace_packages = true
|
248
|
+
non_interactive = true
|
249
|
+
# Needed until `mypy-0.990` for `ConverterDefinition` in `converter.py`.
|
250
|
+
# https://github.com/python/mypy/issues/731#issuecomment-1260976955
|
251
|
+
# enable_recursive_aliases = true
|
251
252
|
|
253
|
+
[tool.versioningit.vcs]
|
254
|
+
method = "git"
|
255
|
+
default-tag = "0.0.0"
|
252
256
|
|
253
257
|
# ===================
|
254
258
|
# Tasks configuration
|
@@ -257,28 +261,31 @@ extend-exclude = [
|
|
257
261
|
[tool.poe.tasks]
|
258
262
|
|
259
263
|
check = [
|
260
|
-
|
264
|
+
"lint",
|
261
265
|
"test",
|
262
266
|
]
|
263
267
|
|
264
268
|
format = [
|
265
|
-
|
266
|
-
# Configure Ruff not to auto-fix (remove!):
|
267
|
-
# unused imports (F401), unused variables (F841), `print` statements (T201), and commented-out code (ERA001).
|
268
|
-
{ cmd = "ruff --fix --ignore=ERA --ignore=F401 --ignore=F841 --ignore=T20 --ignore=ERA001 ." },
|
269
|
+
# Format project metadata.
|
269
270
|
{ cmd = "pyproject-fmt --keep-full-version pyproject.toml" },
|
271
|
+
|
272
|
+
# Format code.
|
273
|
+
# Configure Ruff not to auto-fix a few items that are useful in workbench mode.
|
274
|
+
# e.g.: unused imports (F401), unused variables (F841), `print` statements (T201), commented-out code (ERA001)
|
275
|
+
{ cmd = "ruff format" },
|
276
|
+
{ cmd = "ruff check --fix --ignore=ERA --ignore=F401 --ignore=F841 --ignore=T20 --ignore=ERA001" },
|
270
277
|
]
|
271
278
|
|
272
279
|
lint = [
|
273
|
-
{ cmd = "ruff
|
274
|
-
{ cmd = "
|
280
|
+
{ cmd = "ruff format --check" },
|
281
|
+
{ cmd = "ruff check" },
|
275
282
|
{ cmd = "validate-pyproject pyproject.toml" },
|
276
|
-
{ cmd = "mypy" },
|
283
|
+
# { cmd = "mypy" },
|
277
284
|
]
|
278
285
|
|
279
286
|
release = [
|
280
287
|
{ cmd = "python -m build" },
|
281
|
-
{ cmd = "twine upload dist/*" },
|
288
|
+
{ cmd = "twine upload --skip-existing dist/*" },
|
282
289
|
]
|
283
290
|
|
284
291
|
test = [
|
{sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/__init__.py
RENAMED
@@ -22,7 +22,7 @@
|
|
22
22
|
from .compat.api13 import monkeypatch_add_exec_driver_sql
|
23
23
|
from .dialect import dialect
|
24
24
|
from .predicate import match
|
25
|
-
from .sa_version import SA_1_4,
|
25
|
+
from .sa_version import SA_1_4, SA_VERSION
|
26
26
|
from .support import insert_bulk
|
27
27
|
from .type.array import ObjectArray
|
28
28
|
from .type.geo import Geopoint, Geoshape
|
@@ -34,7 +34,8 @@ if SA_VERSION < SA_1_4:
|
|
34
34
|
import warnings
|
35
35
|
|
36
36
|
# SQLAlchemy 1.3 is effectively EOL.
|
37
|
-
SA13_DEPRECATION_WARNING = textwrap.dedent(
|
37
|
+
SA13_DEPRECATION_WARNING = textwrap.dedent(
|
38
|
+
"""
|
38
39
|
WARNING: SQLAlchemy 1.3 is effectively EOL.
|
39
40
|
|
40
41
|
SQLAlchemy 1.3 is EOL since 2023-01-27.
|
@@ -43,8 +44,9 @@ if SA_VERSION < SA_1_4:
|
|
43
44
|
|
44
45
|
- https://docs.sqlalchemy.org/en/14/changelog/migration_14.html
|
45
46
|
- https://docs.sqlalchemy.org/en/20/changelog/migration_20.html
|
46
|
-
""".lstrip("\n")
|
47
|
-
|
47
|
+
""".lstrip("\n")
|
48
|
+
)
|
49
|
+
warnings.warn(message=SA13_DEPRECATION_WARNING, category=DeprecationWarning, stacklevel=2)
|
48
50
|
|
49
51
|
# SQLAlchemy 1.3 does not have the `exec_driver_sql` method, so add it.
|
50
52
|
monkeypatch_add_exec_driver_sql()
|
@@ -59,4 +61,5 @@ __all__ = [
|
|
59
61
|
ObjectType,
|
60
62
|
match,
|
61
63
|
knn_match,
|
64
|
+
insert_bulk,
|
62
65
|
]
|
{sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/compat/api13.py
RENAMED
@@ -40,7 +40,6 @@ from sqlalchemy.sql import Select
|
|
40
40
|
from sqlalchemy.sql import select as original_select
|
41
41
|
from sqlalchemy.util import immutabledict
|
42
42
|
|
43
|
-
|
44
43
|
# `_distill_params_20` copied from SA14's `sqlalchemy.engine.{base,util}`.
|
45
44
|
_no_tuple = ()
|
46
45
|
_no_kw = immutabledict()
|
@@ -52,9 +51,7 @@ def _distill_params_20(params):
|
|
52
51
|
elif isinstance(params, list):
|
53
52
|
# collections_abc.MutableSequence): # avoid abc.__instancecheck__
|
54
53
|
if params and not isinstance(params[0], (collections_abc.Mapping, tuple)):
|
55
|
-
raise exc.ArgumentError(
|
56
|
-
"List argument must consist only of tuples or dictionaries"
|
57
|
-
)
|
54
|
+
raise exc.ArgumentError("List argument must consist only of tuples or dictionaries")
|
58
55
|
|
59
56
|
return (params,), _no_kw
|
60
57
|
elif isinstance(
|
@@ -74,8 +71,7 @@ def exec_driver_sql(self, statement, parameters=None, execution_options=None):
|
|
74
71
|
"""
|
75
72
|
if execution_options is not None:
|
76
73
|
raise ValueError(
|
77
|
-
"SA13 backward-compatibility: "
|
78
|
-
"`exec_driver_sql` does not support `execution_options`"
|
74
|
+
"SA13 backward-compatibility: " "`exec_driver_sql` does not support `execution_options`"
|
79
75
|
)
|
80
76
|
args_10style, kwargs_10style = _distill_params_20(parameters)
|
81
77
|
return self.execute(statement, *args_10style, **kwargs_10style)
|
@@ -106,12 +102,11 @@ def select_sa14(*columns, **kw) -> Select:
|
|
106
102
|
Derived from https://github.com/sqlalchemy/alembic/blob/b1fad6b6/alembic/util/sqla_compat.py#L557-L558
|
107
103
|
|
108
104
|
sqlalchemy.exc.ArgumentError: columns argument to select() must be a Python list or other iterable
|
109
|
-
"""
|
105
|
+
""" # noqa: E501
|
110
106
|
if isinstance(columns, tuple) and isinstance(columns[0], list):
|
111
107
|
if "whereclause" in kw:
|
112
108
|
raise ValueError(
|
113
|
-
"SA13 backward-compatibility: "
|
114
|
-
"`whereclause` is both in kwargs and columns tuple"
|
109
|
+
"SA13 backward-compatibility: " "`whereclause` is both in kwargs and columns tuple"
|
115
110
|
)
|
116
111
|
columns, whereclause = columns
|
117
112
|
kw["whereclause"] = whereclause
|
@@ -153,4 +148,5 @@ def connectionfairy_driver_connection_sa14(self):
|
|
153
148
|
|
154
149
|
def monkeypatch_add_connectionfairy_driver_connection():
|
155
150
|
import sqlalchemy.pool.base
|
151
|
+
|
156
152
|
sqlalchemy.pool.base._ConnectionFairy.driver_connection = connectionfairy_driver_connection_sa14
|
{sqlalchemy_cratedb-0.38.0.dev0 → sqlalchemy_cratedb-0.40.0}/src/sqlalchemy_cratedb/compat/core10.py
RENAMED
@@ -21,18 +21,21 @@
|
|
21
21
|
|
22
22
|
import sqlalchemy as sa
|
23
23
|
from sqlalchemy.dialects.postgresql.base import PGCompiler
|
24
|
-
from sqlalchemy.sql.crud import (
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
24
|
+
from sqlalchemy.sql.crud import (
|
25
|
+
REQUIRED,
|
26
|
+
_create_bind_param,
|
27
|
+
_extend_values_for_multiparams,
|
28
|
+
_get_multitable_params,
|
29
|
+
_get_stmt_parameters_params,
|
30
|
+
_key_getters_for_crud_column,
|
31
|
+
_scan_cols,
|
32
|
+
_scan_insert_from_select_cols,
|
33
|
+
)
|
30
34
|
|
31
35
|
from sqlalchemy_cratedb.compiler import CrateCompiler
|
32
36
|
|
33
37
|
|
34
38
|
class CrateCompilerSA10(CrateCompiler):
|
35
|
-
|
36
39
|
def returning_clause(self, stmt, returning_cols):
|
37
40
|
"""
|
38
41
|
Generate RETURNING clause, PostgreSQL-compatible.
|
@@ -46,70 +49,58 @@ class CrateCompilerSA10(CrateCompiler):
|
|
46
49
|
"""
|
47
50
|
|
48
51
|
# [10] CrateDB patch.
|
49
|
-
if not update_stmt.parameters and
|
50
|
-
not hasattr(update_stmt, '_crate_specific'):
|
52
|
+
if not update_stmt.parameters and not hasattr(update_stmt, "_crate_specific"):
|
51
53
|
return super().visit_update(update_stmt, **kw)
|
52
54
|
|
53
55
|
self.isupdate = True
|
54
56
|
|
55
57
|
extra_froms = update_stmt._extra_froms
|
56
58
|
|
57
|
-
text =
|
59
|
+
text = "UPDATE "
|
58
60
|
|
59
61
|
if update_stmt._prefixes:
|
60
|
-
text += self._generate_prefixes(update_stmt,
|
61
|
-
update_stmt._prefixes, **kw)
|
62
|
+
text += self._generate_prefixes(update_stmt, update_stmt._prefixes, **kw)
|
62
63
|
|
63
|
-
table_text = self.update_tables_clause(update_stmt, update_stmt.table,
|
64
|
-
extra_froms, **kw)
|
64
|
+
table_text = self.update_tables_clause(update_stmt, update_stmt.table, extra_froms, **kw)
|
65
65
|
|
66
66
|
dialect_hints = None
|
67
67
|
if update_stmt._hints:
|
68
|
-
dialect_hints, table_text = self._setup_crud_hints(
|
69
|
-
update_stmt, table_text
|
70
|
-
)
|
68
|
+
dialect_hints, table_text = self._setup_crud_hints(update_stmt, table_text)
|
71
69
|
|
72
70
|
# [10] CrateDB patch.
|
73
71
|
crud_params = _get_crud_params(self, update_stmt, **kw)
|
74
72
|
|
75
73
|
text += table_text
|
76
74
|
|
77
|
-
text +=
|
75
|
+
text += " SET "
|
78
76
|
|
79
77
|
# [10] CrateDB patch begin.
|
80
|
-
include_table =
|
81
|
-
extra_froms and self.render_table_with_column_in_update_from
|
78
|
+
include_table = extra_froms and self.render_table_with_column_in_update_from
|
82
79
|
|
83
80
|
set_clauses = []
|
84
81
|
|
85
82
|
for k, v in crud_params:
|
86
|
-
clause = k._compiler_dispatch(self,
|
87
|
-
include_table=include_table) + \
|
88
|
-
' = ' + v
|
83
|
+
clause = k._compiler_dispatch(self, include_table=include_table) + " = " + v
|
89
84
|
set_clauses.append(clause)
|
90
85
|
|
91
86
|
for k, v in update_stmt.parameters.items():
|
92
|
-
if isinstance(k, str) and
|
87
|
+
if isinstance(k, str) and "[" in k:
|
93
88
|
bindparam = sa.sql.bindparam(k, v)
|
94
|
-
set_clauses.append(k +
|
89
|
+
set_clauses.append(k + " = " + self.process(bindparam))
|
95
90
|
|
96
|
-
text +=
|
91
|
+
text += ", ".join(set_clauses)
|
97
92
|
# [10] CrateDB patch end.
|
98
93
|
|
99
94
|
if self.returning or update_stmt._returning:
|
100
95
|
if not self.returning:
|
101
96
|
self.returning = update_stmt._returning
|
102
97
|
if self.returning_precedes_values:
|
103
|
-
text += " " + self.returning_clause(
|
104
|
-
update_stmt, self.returning)
|
98
|
+
text += " " + self.returning_clause(update_stmt, self.returning)
|
105
99
|
|
106
100
|
if extra_froms:
|
107
101
|
extra_from_text = self.update_from_clause(
|
108
|
-
update_stmt,
|
109
|
-
|
110
|
-
extra_froms,
|
111
|
-
dialect_hints,
|
112
|
-
**kw)
|
102
|
+
update_stmt, update_stmt.table, extra_froms, dialect_hints, **kw
|
103
|
+
)
|
113
104
|
if extra_from_text:
|
114
105
|
text += " " + extra_from_text
|
115
106
|
|
@@ -123,8 +114,7 @@ class CrateCompilerSA10(CrateCompiler):
|
|
123
114
|
text += " " + limit_clause
|
124
115
|
|
125
116
|
if self.returning and not self.returning_precedes_values:
|
126
|
-
text += " " + self.returning_clause(
|
127
|
-
update_stmt, self.returning)
|
117
|
+
text += " " + self.returning_clause(update_stmt, self.returning)
|
128
118
|
|
129
119
|
return text
|
130
120
|
|
@@ -149,8 +139,7 @@ def _get_crud_params(compiler, stmt, **kw):
|
|
149
139
|
# compiled params - return binds for all columns
|
150
140
|
if compiler.column_keys is None and stmt.parameters is None:
|
151
141
|
return [
|
152
|
-
(c, _create_bind_param(compiler, c, None, required=True))
|
153
|
-
for c in stmt.table.columns
|
142
|
+
(c, _create_bind_param(compiler, c, None, required=True)) for c in stmt.table.columns
|
154
143
|
]
|
155
144
|
|
156
145
|
if stmt._has_multi_parameters:
|