sqlalchemy-cratedb 0.38.0__tar.gz → 0.38.0.dev0__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 (157) hide show
  1. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/CHANGES.md +0 -6
  2. {sqlalchemy_cratedb-0.38.0/src/sqlalchemy_cratedb.egg-info → sqlalchemy_cratedb-0.38.0.dev0}/PKG-INFO +1 -1
  3. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/pyproject.toml +5 -4
  4. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/compiler.py +6 -16
  5. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/dialect.py +13 -8
  6. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/support/polyfill.py +4 -1
  7. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/support/util.py +4 -11
  8. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0/src/sqlalchemy_cratedb.egg-info}/PKG-INFO +1 -1
  9. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/tests/test_support_pandas.py +7 -33
  10. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/CODE_OF_CONDUCT.md +0 -0
  11. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/CONTRIBUTING.md +0 -0
  12. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/DEVELOP.md +0 -0
  13. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/LICENSE +0 -0
  14. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/MANIFEST.in +0 -0
  15. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/NOTICE +0 -0
  16. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/README.md +0 -0
  17. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/backlog.md +0 -0
  18. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.build/_sources/advanced-querying.rst.txt +0 -0
  19. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.build/_sources/crud.rst.txt +0 -0
  20. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.build/_sources/data-types.rst.txt +0 -0
  21. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.build/_sources/dataframe.rst.txt +0 -0
  22. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.build/_sources/getting-started.rst.txt +0 -0
  23. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.build/_sources/index-all.rst.txt +0 -0
  24. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.build/_sources/index.rst.txt +0 -0
  25. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.build/_sources/inspection-reflection.rst.txt +0 -0
  26. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.build/_sources/install.rst.txt +0 -0
  27. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.build/_sources/migrate-from-crate-client.md.txt +0 -0
  28. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.build/_sources/overview.rst.txt +0 -0
  29. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.build/_sources/support.md.txt +0 -0
  30. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.build/_sources/working-with-types.rst.txt +0 -0
  31. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.build/_static/bundle/main.js.LICENSE.txt +0 -0
  32. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.build/output.txt +0 -0
  33. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.build/robots.txt +0 -0
  34. {sqlalchemy_cratedb-0.38.0 → 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 -0
  35. {sqlalchemy_cratedb-0.38.0 → 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 -0
  36. {sqlalchemy_cratedb-0.38.0 → 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 -0
  37. {sqlalchemy_cratedb-0.38.0 → 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 -0
  38. {sqlalchemy_cratedb-0.38.0 → 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 -0
  39. {sqlalchemy_cratedb-0.38.0 → 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 -0
  40. {sqlalchemy_cratedb-0.38.0 → 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 -0
  41. {sqlalchemy_cratedb-0.38.0 → 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 -0
  42. {sqlalchemy_cratedb-0.38.0 → 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 -0
  43. {sqlalchemy_cratedb-0.38.0 → 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 -0
  44. {sqlalchemy_cratedb-0.38.0 → 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 -0
  45. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/README.txt +0 -0
  46. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamsa.txt +0 -0
  47. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamsb.txt +0 -0
  48. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamsc.txt +0 -0
  49. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamsn.txt +0 -0
  50. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamso.txt +0 -0
  51. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isoamsr.txt +0 -0
  52. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isobox.txt +0 -0
  53. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isocyr1.txt +0 -0
  54. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isocyr2.txt +0 -0
  55. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isodia.txt +0 -0
  56. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isogrk1.txt +0 -0
  57. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isogrk2.txt +0 -0
  58. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isogrk3.txt +0 -0
  59. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isogrk4-wide.txt +0 -0
  60. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isogrk4.txt +0 -0
  61. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isolat1.txt +0 -0
  62. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isolat2.txt +0 -0
  63. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomfrk-wide.txt +0 -0
  64. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomfrk.txt +0 -0
  65. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomopf-wide.txt +0 -0
  66. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomopf.txt +0 -0
  67. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomscr-wide.txt +0 -0
  68. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isomscr.txt +0 -0
  69. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isonum.txt +0 -0
  70. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isopub.txt +0 -0
  71. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/isotech.txt +0 -0
  72. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/mmlalias.txt +0 -0
  73. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/mmlextra-wide.txt +0 -0
  74. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/mmlextra.txt +0 -0
  75. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/s5defs.txt +0 -0
  76. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/xhtml1-lat1.txt +0 -0
  77. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/xhtml1-special.txt +0 -0
  78. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/parsers/rst/include/xhtml1-symbol.txt +0 -0
  79. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/writers/html4css1/template.txt +0 -0
  80. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/writers/html5_polyglot/template.txt +0 -0
  81. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/writers/pep_html/template.txt +0 -0
  82. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils/writers/s5_html/themes/README.txt +0 -0
  83. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils-0.16.dist-info/COPYING.txt +0 -0
  84. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/docutils-0.16.dist-info/top_level.txt +0 -0
  85. {sqlalchemy_cratedb-0.38.0 → 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 -0
  86. {sqlalchemy_cratedb-0.38.0 → 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 -0
  87. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/jinja2-3.1.4.dist-info/LICENSE.txt +0 -0
  88. {sqlalchemy_cratedb-0.38.0 → 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 -0
  89. {sqlalchemy_cratedb-0.38.0 → 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 -0
  90. {sqlalchemy_cratedb-0.38.0 → 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 -0
  91. {sqlalchemy_cratedb-0.38.0 → 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 -0
  92. {sqlalchemy_cratedb-0.38.0 → 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 -0
  93. {sqlalchemy_cratedb-0.38.0 → 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 -0
  94. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/pip/_vendor/vendor.txt +0 -0
  95. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/pip-24.0.dist-info/AUTHORS.txt +0 -0
  96. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/pip-24.0.dist-info/LICENSE.txt +0 -0
  97. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/pip-24.0.dist-info/entry_points.txt +0 -0
  98. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/pip-24.0.dist-info/top_level.txt +0 -0
  99. {sqlalchemy_cratedb-0.38.0 → 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 -0
  100. {sqlalchemy_cratedb-0.38.0 → 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 -0
  101. {sqlalchemy_cratedb-0.38.0 → 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 -0
  102. {sqlalchemy_cratedb-0.38.0 → 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 -0
  103. {sqlalchemy_cratedb-0.38.0 → 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 -0
  104. {sqlalchemy_cratedb-0.38.0 → 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 -0
  105. {sqlalchemy_cratedb-0.38.0 → 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 -0
  106. {sqlalchemy_cratedb-0.38.0 → 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 -0
  107. {sqlalchemy_cratedb-0.38.0 → 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 -0
  108. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/sphinx_design/compiled/material-icons_VERSION.txt +0 -0
  109. {sqlalchemy_cratedb-0.38.0 → 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 -0
  110. {sqlalchemy_cratedb-0.38.0 → 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 -0
  111. {sqlalchemy_cratedb-0.38.0 → 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 -0
  112. {sqlalchemy_cratedb-0.38.0 → 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 -0
  113. {sqlalchemy_cratedb-0.38.0 → 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 -0
  114. {sqlalchemy_cratedb-0.38.0 → 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 -0
  115. {sqlalchemy_cratedb-0.38.0 → 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 -0
  116. {sqlalchemy_cratedb-0.38.0 → 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 -0
  117. {sqlalchemy_cratedb-0.38.0 → 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 -0
  118. {sqlalchemy_cratedb-0.38.0 → 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 -0
  119. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/tornado/test/static/robots.txt +0 -0
  120. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/tornado/test/static_foo.txt +0 -0
  121. {sqlalchemy_cratedb-0.38.0 → 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 -0
  122. {sqlalchemy_cratedb-0.38.0 → 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 -0
  123. {sqlalchemy_cratedb-0.38.0 → 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 -0
  124. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/wheel/vendored/vendor.txt +0 -0
  125. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/.venv/lib/python3.9/site-packages/wheel-0.43.0.dist-info/LICENSE.txt +0 -0
  126. {sqlalchemy_cratedb-0.38.0 → 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 -0
  127. {sqlalchemy_cratedb-0.38.0 → 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 -0
  128. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/common-build/requirements.txt +0 -0
  129. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/docs/_extra/robots.txt +0 -0
  130. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/docs/requirements.txt +0 -0
  131. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/.crate-docs/helpers/preview/etc/requirements.txt +0 -0
  132. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/_extra/robots.txt +0 -0
  133. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/docs/requirements.txt +0 -0
  134. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/setup.cfg +0 -0
  135. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/setup.py +0 -0
  136. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/__init__.py +0 -0
  137. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/compat/__init__.py +0 -0
  138. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/compat/api13.py +0 -0
  139. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/compat/core10.py +0 -0
  140. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/compat/core14.py +0 -0
  141. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/compat/core20.py +0 -0
  142. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/predicate.py +0 -0
  143. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/sa_version.py +0 -0
  144. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/support/__init__.py +0 -0
  145. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/support/pandas.py +0 -0
  146. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/type/__init__.py +0 -0
  147. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/type/array.py +0 -0
  148. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/type/geo.py +0 -0
  149. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/type/object.py +0 -0
  150. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb/type/vector.py +0 -0
  151. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb.egg-info/SOURCES.txt +0 -0
  152. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb.egg-info/dependency_links.txt +0 -0
  153. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb.egg-info/entry_points.txt +0 -0
  154. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb.egg-info/requires.txt +0 -0
  155. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/src/sqlalchemy_cratedb.egg-info/top_level.txt +0 -0
  156. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/tests/test_schema.py +0 -0
  157. {sqlalchemy_cratedb-0.38.0 → sqlalchemy_cratedb-0.38.0.dev0}/tests/test_support_polyfill.py +0 -0
@@ -2,8 +2,6 @@
2
2
 
3
3
 
4
4
  ## Unreleased
5
-
6
- ## 2024/06/25 0.38.0
7
5
  - Added/reactivated documentation as `sqlalchemy-cratedb`
8
6
  - Added `CrateIdentifierPreparer`, in order to quote reserved words
9
7
  like `object` properly, for example when used as column names.
@@ -13,10 +11,6 @@
13
11
  `check_uniqueness_factory`
14
12
  - Added `table_kwargs` context manager to enable pandas/Dask to support
15
13
  CrateDB dialect table options.
16
- - Fixed SQL rendering of special DDL table options in `CrateDDLCompiler`.
17
- Before, configuring `crate_"translog.durability"` was not possible.
18
- - Unlocked supporting timezone-aware `DateTime` fields
19
- - Added support for marshalling Python `datetime.date` values on `sa.DateTime` fields
20
14
 
21
15
  ## 2024/06/13 0.37.0
22
16
  - 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.38.0
3
+ Version: 0.38.0.dev0
4
4
  Summary: SQLAlchemy dialect for CrateDB.
5
5
  Author-email: "Crate.io" <office@crate.io>
6
6
  License: Apache License 2.0
@@ -80,9 +80,10 @@ classifiers = [
80
80
  "Topic :: Text Processing",
81
81
  "Topic :: Utilities",
82
82
  ]
83
- dynamic = [
84
- "version",
85
- ]
83
+ #dynamic = [
84
+ # "version",
85
+ #]
86
+ version = "0.38.0.dev0"
86
87
  dependencies = [
87
88
  'backports.zoneinfo<1; python_version < "3.9"',
88
89
  "crate==1.0.0dev0",
@@ -277,7 +278,7 @@ lint = [
277
278
 
278
279
  release = [
279
280
  { cmd = "python -m build" },
280
- { cmd = "twine upload --skip-existing dist/*" },
281
+ { cmd = "twine upload dist/*" },
281
282
  ]
282
283
 
283
284
  test = [
@@ -100,13 +100,13 @@ def crate_before_execute(conn, clauseelement, multiparams, params, *args, **kwar
100
100
  class CrateDDLCompiler(compiler.DDLCompiler):
101
101
 
102
102
  __special_opts_tmpl = {
103
- 'partitioned_by': ' PARTITIONED BY ({0})'
103
+ 'PARTITIONED_BY': ' PARTITIONED BY ({0})'
104
104
  }
105
105
  __clustered_opts_tmpl = {
106
- 'number_of_shards': ' INTO {0} SHARDS',
107
- 'clustered_by': ' BY ({0})',
106
+ 'NUMBER_OF_SHARDS': ' INTO {0} SHARDS',
107
+ 'CLUSTERED_BY': ' BY ({0})',
108
108
  }
109
- __clustered_opt_tmpl = ' CLUSTERED{clustered_by}{number_of_shards}'
109
+ __clustered_opt_tmpl = ' CLUSTERED{CLUSTERED_BY}{NUMBER_OF_SHARDS}'
110
110
 
111
111
  def get_column_specification(self, column, **kwargs):
112
112
  colspec = self.preparer.format_column(column) + " " + \
@@ -162,7 +162,7 @@ class CrateDDLCompiler(compiler.DDLCompiler):
162
162
  table_opts = []
163
163
 
164
164
  opts = dict(
165
- (k[len(self.dialect.name) + 1:], v)
165
+ (k[len(self.dialect.name) + 1:].upper(), v)
166
166
  for k, v, in table.kwargs.items()
167
167
  if k.startswith('%s_' % self.dialect.name)
168
168
  )
@@ -225,7 +225,7 @@ class CrateTypeCompiler(compiler.GenericTypeCompiler):
225
225
  return 'SHORT'
226
226
 
227
227
  def visit_datetime(self, type_, **kw):
228
- return self.visit_TIMESTAMP(type_, **kw)
228
+ return 'TIMESTAMP'
229
229
 
230
230
  def visit_date(self, type_, **kw):
231
231
  return 'TIMESTAMP'
@@ -245,16 +245,6 @@ class CrateTypeCompiler(compiler.GenericTypeCompiler):
245
245
  raise ValueError("FloatVector must be initialized with dimension size")
246
246
  return f"FLOAT_VECTOR({dimensions})"
247
247
 
248
- def visit_TIMESTAMP(self, type_, **kw):
249
- """
250
- Support for `TIMESTAMP WITH|WITHOUT TIME ZONE`.
251
-
252
- From `sqlalchemy.dialects.postgresql.base.PGTypeCompiler`.
253
- """
254
- return "TIMESTAMP %s" % (
255
- (type_.timezone and "WITH" or "WITHOUT") + " TIME ZONE",
256
- )
257
-
258
248
 
259
249
  class CrateCompiler(compiler.SQLCompiler):
260
250
 
@@ -32,6 +32,7 @@ from .compiler import (
32
32
  CrateDDLCompiler,
33
33
  CrateIdentifierPreparer,
34
34
  )
35
+ from crate.client.exceptions import TimezoneUnawareException
35
36
  from .sa_version import SA_VERSION, SA_1_4, SA_2_0
36
37
  from .type import FloatVector, ObjectArray, ObjectType
37
38
 
@@ -39,8 +40,8 @@ TYPES_MAP = {
39
40
  "boolean": sqltypes.Boolean,
40
41
  "short": sqltypes.SmallInteger,
41
42
  "smallint": sqltypes.SmallInteger,
42
- "timestamp": sqltypes.TIMESTAMP(timezone=False),
43
- "timestamp with time zone": sqltypes.TIMESTAMP(timezone=True),
43
+ "timestamp": sqltypes.TIMESTAMP,
44
+ "timestamp with time zone": sqltypes.TIMESTAMP,
44
45
  "object": ObjectType,
45
46
  "integer": sqltypes.Integer,
46
47
  "long": sqltypes.NUMERIC,
@@ -61,8 +62,8 @@ try:
61
62
  TYPES_MAP["boolean_array"] = ARRAY(sqltypes.Boolean)
62
63
  TYPES_MAP["short_array"] = ARRAY(sqltypes.SmallInteger)
63
64
  TYPES_MAP["smallint_array"] = ARRAY(sqltypes.SmallInteger)
64
- TYPES_MAP["timestamp_array"] = ARRAY(sqltypes.TIMESTAMP(timezone=False))
65
- TYPES_MAP["timestamp with time zone_array"] = ARRAY(sqltypes.TIMESTAMP(timezone=True))
65
+ TYPES_MAP["timestamp_array"] = ARRAY(sqltypes.TIMESTAMP)
66
+ TYPES_MAP["timestamp with time zone_array"] = ARRAY(sqltypes.TIMESTAMP)
66
67
  TYPES_MAP["long_array"] = ARRAY(sqltypes.NUMERIC)
67
68
  TYPES_MAP["bigint_array"] = ARRAY(sqltypes.NUMERIC)
68
69
  TYPES_MAP["double_array"] = ARRAY(sqltypes.DECIMAL)
@@ -113,10 +114,15 @@ class Date(sqltypes.Date):
113
114
 
114
115
  class DateTime(sqltypes.DateTime):
115
116
 
117
+ TZ_ERROR_MSG = "Timezone aware datetime objects are not supported"
118
+
116
119
  def bind_processor(self, dialect):
117
120
  def process(value):
118
- if isinstance(value, (datetime, date)):
119
- return value.strftime('%Y-%m-%dT%H:%M:%S.%f%z')
121
+ if value is not None:
122
+ assert isinstance(value, datetime)
123
+ if value.tzinfo is not None:
124
+ raise TimezoneUnawareException(DateTime.TZ_ERROR_MSG)
125
+ return value.strftime('%Y-%m-%dT%H:%M:%S.%fZ')
120
126
  return value
121
127
  return process
122
128
 
@@ -146,9 +152,8 @@ class DateTime(sqltypes.DateTime):
146
152
 
147
153
 
148
154
  colspecs = {
149
- sqltypes.Date: Date,
150
155
  sqltypes.DateTime: DateTime,
151
- sqltypes.TIMESTAMP: DateTime,
156
+ sqltypes.Date: Date
152
157
  }
153
158
 
154
159
 
@@ -108,7 +108,10 @@ def refresh_after_dml_engine(engine: sa.engine.Engine):
108
108
  ):
109
109
  if isinstance(clauseelement, (sa.sql.Insert, sa.sql.Update, sa.sql.Delete)):
110
110
  if not isinstance(clauseelement.table, sa.sql.Join):
111
- refresh_table(conn, clauseelement.table)
111
+ full_table_name = f'"{clauseelement.table.name}"'
112
+ if clauseelement.table.schema is not None:
113
+ full_table_name = f'"{clauseelement.table.schema}".' + full_table_name
114
+ refresh_table(conn, full_table_name)
112
115
 
113
116
  sa.event.listen(engine, "after_execute", receive_after_execute)
114
117
 
@@ -10,21 +10,14 @@ if t.TYPE_CHECKING:
10
10
  pass
11
11
 
12
12
 
13
- def refresh_table(connection, target: t.Union[str, "DeclarativeBase", "sa.sql.selectable.TableClause"]):
13
+ def refresh_table(connection, target: t.Union[str, "DeclarativeBase"]):
14
14
  """
15
15
  Invoke a `REFRESH TABLE` statement.
16
16
  """
17
-
18
- if isinstance(target, sa.sql.selectable.TableClause):
19
- full_table_name = f'"{target.name}"'
20
- if target.schema is not None:
21
- full_table_name = f'"{target.schema}".' + full_table_name
22
- elif hasattr(target, "__tablename__"):
23
- full_table_name = target.__tablename__
17
+ if hasattr(target, "__tablename__"):
18
+ sql = f"REFRESH TABLE {target.__tablename__}"
24
19
  else:
25
- full_table_name = target
26
-
27
- sql = f"REFRESH TABLE {full_table_name}"
20
+ sql = f"REFRESH TABLE {target}"
28
21
  connection.execute(sa.text(sql))
29
22
 
30
23
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sqlalchemy-cratedb
3
- Version: 0.38.0
3
+ Version: 0.38.0.dev0
4
4
  Summary: SQLAlchemy dialect for CrateDB.
5
5
  Author-email: "Crate.io" <office@crate.io>
6
6
  License: Apache License 2.0
@@ -2,7 +2,9 @@ import re
2
2
  import sys
3
3
 
4
4
  import pytest
5
+ import sqlalchemy as sa
5
6
  from sqlalchemy.exc import ProgrammingError
7
+ from sqlalchemy.orm import sessionmaker
6
8
 
7
9
  from pueblo.testing.pandas import makeTimeDataFrame
8
10
 
@@ -25,6 +27,7 @@ def test_table_kwargs_partitioned_by(cratedb_service):
25
27
  """
26
28
 
27
29
  engine = cratedb_service.database.engine
30
+ session = sessionmaker(bind=engine)()
28
31
 
29
32
  # Insert records from pandas dataframe.
30
33
  with table_kwargs(crate_partitioned_by="time"):
@@ -39,7 +42,10 @@ def test_table_kwargs_partitioned_by(cratedb_service):
39
42
  cratedb_service.database.refresh_table(TABLE_NAME)
40
43
 
41
44
  # Inquire table cardinality.
42
- count = cratedb_service.database.count_records(TABLE_NAME)
45
+ metadata = sa.MetaData()
46
+ query = sa.select(sa.func.count()).select_from(sa.Table(TABLE_NAME, metadata))
47
+ results = session.execute(query)
48
+ count = results.scalar()
43
49
 
44
50
  # Compare outcome.
45
51
  assert count == INSERT_RECORDS
@@ -49,38 +55,6 @@ def test_table_kwargs_partitioned_by(cratedb_service):
49
55
  assert 'PARTITIONED BY ("time")' in ddl[0][0]
50
56
 
51
57
 
52
- @pytest.mark.skipif(sys.version_info < (3, 8), reason="Feature not supported on Python 3.7 and earlier")
53
- @pytest.mark.skipif(SA_VERSION < SA_2_0, reason="Feature not supported on SQLAlchemy 1.4 and earlier")
54
- def test_table_kwargs_translog_durability(cratedb_service):
55
- """
56
- Validate adding CrateDB dialect table option `translog.durability` at runtime.
57
- """
58
-
59
- engine = cratedb_service.database.engine
60
-
61
- # Insert records from pandas dataframe.
62
- with table_kwargs(**{'crate_"translog.durability"': "'async'"}):
63
- df.to_sql(
64
- TABLE_NAME,
65
- engine,
66
- if_exists="replace",
67
- index=False,
68
- )
69
-
70
- # Synchronize writes.
71
- cratedb_service.database.refresh_table(TABLE_NAME)
72
-
73
- # Inquire table cardinality.
74
- count = cratedb_service.database.count_records(TABLE_NAME)
75
-
76
- # Compare outcome.
77
- assert count == INSERT_RECORDS
78
-
79
- # Validate SQL DDL.
80
- ddl = cratedb_service.database.run_sql(f"SHOW CREATE TABLE {TABLE_NAME}")
81
- assert """"translog.durability" = 'ASYNC'""" in ddl[0][0]
82
-
83
-
84
58
  @pytest.mark.skipif(sys.version_info < (3, 8), reason="Feature not supported on Python 3.7 and earlier")
85
59
  @pytest.mark.skipif(SA_VERSION < SA_2_0, reason="Feature not supported on SQLAlchemy 1.4 and earlier")
86
60
  def test_table_kwargs_unknown(cratedb_service):