GeoAlchemy2 0.17.0__tar.gz → 0.18.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 (147) hide show
  1. geoalchemy2-0.18.0/.github/FUNDING.yml +3 -0
  2. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/.github/ISSUE_TEMPLATE/bug_report.yaml +4 -0
  3. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/.github/ISSUE_TEMPLATE/feature_request.yaml +4 -0
  4. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/.github/ISSUE_TEMPLATE/how_to_use.yaml +1 -1
  5. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/.github/workflows/test_and_publish.yml +6 -8
  6. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/.gitignore +7 -0
  7. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/.pre-commit-config.yaml +4 -4
  8. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/CHANGES.txt +26 -0
  9. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0/GeoAlchemy2.egg-info}/PKG-INFO +5 -6
  10. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/GeoAlchemy2.egg-info/SOURCES.txt +3 -0
  11. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/GeoAlchemy2_dev.yml +4 -1
  12. {geoalchemy2-0.17.0/GeoAlchemy2.egg-info → geoalchemy2-0.18.0}/PKG-INFO +5 -6
  13. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/TEST.rst +15 -1
  14. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/__init__.py +4 -24
  15. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/_functions.py +175 -158
  16. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/_functions_helpers.py +4 -2
  17. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/admin/dialects/common.py +22 -0
  18. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/admin/dialects/geopackage.py +36 -0
  19. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/admin/dialects/mariadb.py +27 -26
  20. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/admin/dialects/mysql.py +36 -8
  21. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/admin/dialects/postgresql.py +101 -31
  22. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/admin/dialects/sqlite.py +74 -5
  23. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/alembic_helpers.py +1 -0
  24. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/comparator.py +4 -4
  25. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/elements.py +72 -7
  26. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/functions.py +3 -2
  27. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/functions.pyi +669 -2
  28. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/types/__init__.py +54 -36
  29. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/types/dialects/mariadb.py +17 -2
  30. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/types/dialects/mysql.py +2 -2
  31. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/pyproject.toml +0 -3
  32. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/requirements.txt +1 -0
  33. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/setup.py +2 -4
  34. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/test_container/Dockerfile +1 -1
  35. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/test_container/Dockerfile_mariadb +3 -2
  36. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/test_container/build_mariadb.sh +0 -0
  37. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/test_container/helpers/entrypoint.sh +2 -1
  38. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/test_container/helpers/init_mariadb.sh +4 -3
  39. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/test_container/helpers/install_requirements.sh +12 -15
  40. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/__init__.py +117 -20
  41. geoalchemy2-0.18.0/tests/benchmarks/test_insert_select.py +419 -0
  42. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/conftest.py +45 -6
  43. geoalchemy2-0.18.0/tests/gallery/__init__.py +0 -0
  44. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/gallery/test_summarystatsagg.py +1 -1
  45. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/schema_fixtures.py +7 -0
  46. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/test_elements.py +29 -0
  47. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/test_functional.py +232 -8
  48. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/test_functional_sqlite.py +1 -1
  49. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/test_functions.py +3 -0
  50. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/test_shape.py +1 -1
  51. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tox.ini +7 -9
  52. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/.codespellrc +0 -0
  53. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/.coveragerc +0 -0
  54. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/.flake8 +0 -0
  55. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  56. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/.github/dependabot.yml +0 -0
  57. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/.github/pull_request_template.md +0 -0
  58. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/.readthedocs.yaml +0 -0
  59. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/COPYING.rst +0 -0
  60. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/GeoAlchemy2.egg-info/dependency_links.txt +0 -0
  61. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/GeoAlchemy2.egg-info/entry_points.txt +0 -0
  62. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/GeoAlchemy2.egg-info/not-zip-safe +0 -0
  63. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/GeoAlchemy2.egg-info/requires.txt +0 -0
  64. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/GeoAlchemy2.egg-info/top_level.txt +0 -0
  65. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/MANIFEST.in +0 -0
  66. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/README.rst +0 -0
  67. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/RELEASE.rst +0 -0
  68. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/Makefile +0 -0
  69. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/_static/geoalchemy.png +0 -0
  70. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/_static/geoalchemy.svg +0 -0
  71. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/_static/geoalchemy_small.png +0 -0
  72. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/_static/geoalchemy_small.svg +0 -0
  73. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/_templates/sidebar-about.html +0 -0
  74. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/_templates/sidebar-links.html +0 -0
  75. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/_templates/sidebar-logo.html +0 -0
  76. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/_themes/LICENSE +0 -0
  77. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/_themes/README +0 -0
  78. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/_themes/flask/layout.html +0 -0
  79. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/_themes/flask/relations.html +0 -0
  80. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/_themes/flask/static/flasky.css_t +0 -0
  81. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/_themes/flask/static/small_flask.css +0 -0
  82. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/_themes/flask/theme.conf +0 -0
  83. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/admin.rst +0 -0
  84. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/alembic.rst +0 -0
  85. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/alembic_helpers.rst +0 -0
  86. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/changelog.rst +0 -0
  87. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/conf.py +0 -0
  88. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/core_tutorial.rst +0 -0
  89. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/dialect_specific_features.rst +0 -0
  90. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/elements.rst +0 -0
  91. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/index.rst +0 -0
  92. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/make.bat +0 -0
  93. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/migrate.rst +0 -0
  94. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/mysql_mariadb_dialect.rst +0 -0
  95. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/orm_tutorial.rst +0 -0
  96. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/plugin.rst +0 -0
  97. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/shape.rst +0 -0
  98. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/spatial_functions.rst +0 -0
  99. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/spatial_operators.rst +0 -0
  100. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/spatialite_dialect.rst +0 -0
  101. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/doc/types.rst +0 -0
  102. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/generate_type_stubs.py +0 -0
  103. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/admin/__init__.py +0 -0
  104. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/admin/dialects/__init__.py +0 -0
  105. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/admin/plugin.py +0 -0
  106. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/exc.py +0 -0
  107. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/py.typed +0 -0
  108. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/shape.py +0 -0
  109. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/types/dialects/__init__.py +0 -0
  110. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/types/dialects/common.py +0 -0
  111. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/types/dialects/geopackage.py +0 -0
  112. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/types/dialects/postgresql.py +0 -0
  113. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/types/dialects/sqlite.py +0 -0
  114. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/geoalchemy2/utils.py +0 -0
  115. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/requirements-doc.txt +0 -0
  116. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/requirements-mypy.txt +0 -0
  117. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/requirements-rtd.txt +0 -0
  118. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/setup.cfg +0 -0
  119. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/test_container/.dockerignore +0 -0
  120. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/test_container/.gitignore +0 -0
  121. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/test_container/build.sh +0 -0
  122. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/test_container/helpers/init_mysql.sh +0 -0
  123. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/test_container/helpers/init_postgres.sh +0 -0
  124. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/test_container/run.sh +0 -0
  125. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/test_container/run_mariadb.sh +0 -0
  126. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/alembic_config/alembic.ini +0 -0
  127. {geoalchemy2-0.17.0/tests/gallery → geoalchemy2-0.18.0/tests/benchmarks}/__init__.py +0 -0
  128. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/data/spatialite_ge_4.sqlite +0 -0
  129. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/data/spatialite_geopackage.gpkg +0 -0
  130. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/data/spatialite_lt_4.sqlite +0 -0
  131. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/gallery/README.rst +0 -0
  132. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/gallery/test_decipher_raster.py +0 -0
  133. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/gallery/test_disable_wrapping.py +0 -0
  134. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/gallery/test_insert_raster.py +0 -0
  135. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/gallery/test_length_at_insert.py +0 -0
  136. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/gallery/test_orm_mapped_v2.py +0 -0
  137. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/gallery/test_raster_transform.py +0 -0
  138. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/gallery/test_specific_compilation.py +0 -0
  139. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/gallery/test_type_decorator.py +0 -0
  140. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/test_alembic_migrations.py +0 -0
  141. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/test_comparator.py +0 -0
  142. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/test_functional_geopackage.py +0 -0
  143. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/test_functional_mysql.py +0 -0
  144. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/test_functional_postgresql.py +0 -0
  145. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/test_pickle.py +0 -0
  146. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/test_plugin.py +0 -0
  147. {geoalchemy2-0.17.0 → geoalchemy2-0.18.0}/tests/test_types.py +0 -0
@@ -0,0 +1,3 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: [adrien-berchet]
@@ -112,3 +112,7 @@ If the message is a warning, run your program with the ``-Werror`` flag: ``pytho
112
112
  - type: markdown
113
113
  attributes:
114
114
  value: "### Thanks! Have a nice day!"
115
+
116
+ - type: markdown
117
+ attributes:
118
+ value: "Note that a Pull Request to fix this bug would be very welcome if you have the time and skills to do it"
@@ -54,3 +54,7 @@ Your requests must include the following features:
54
54
  - type: markdown
55
55
  attributes:
56
56
  value: "### Thanks! Have a nice day!"
57
+
58
+ - type: markdown
59
+ attributes:
60
+ value: "Note that a Pull Request to fix this bug would be very welcome if you have the time and skills to do it"
@@ -82,7 +82,7 @@ If the message is a warning, run your program with the ``-Werror`` flag: ``pytho
82
82
  id: package_version
83
83
  attributes:
84
84
  label: GeoAlchemy 2 Version in Use
85
- description: e.g. 1.4.42, 2.0.2, etc or commit hash
85
+ description: e.g. 1.4.42, 2.0.2, etc. or commit hash
86
86
  validations:
87
87
  required: true
88
88
 
@@ -27,17 +27,15 @@ jobs:
27
27
  fail-fast: false
28
28
  matrix:
29
29
  python-version: [
30
- {"pkg_name": "python==3.7.*", "flag": "3.7"},
31
- {"pkg_name": "python==3.8.*", "flag": "3.8"},
32
- {"pkg_name": "python==3.9.*", "flag": "3.9"},
33
30
  {"pkg_name": "python==3.10.*", "flag": "3.10"},
34
31
  {"pkg_name": "python==3.11.*", "flag": "3.11"},
35
32
  {"pkg_name": "python==3.12.*", "flag": "3.12"},
33
+ {"pkg_name": "python==3.13.*", "flag": "3.13"},
36
34
  {"pkg_name": "pypy3.10", "flag": "pypy3.10"},
37
35
  ]
38
36
 
39
37
  # The type of runner that the job will run on
40
- runs-on: ubuntu-22.04
38
+ runs-on: ubuntu-24.04
41
39
 
42
40
  services:
43
41
  postgres:
@@ -97,11 +95,11 @@ jobs:
97
95
  with:
98
96
  python-version: ${{ matrix.python-version.flag }}
99
97
 
100
- # Install MariaDB
101
- - name: Install MariaDB and SpatiaLite
98
+ # Install SpatiaLite
99
+ - name: Install SpatiaLite
102
100
  run: |
103
101
  sudo apt-get update
104
- sudo apt-get install -y mariadb-server mariadb-client libsqlite3-mod-spatialite libgdal-dev gdal-bin rasterio
102
+ sudo apt-get install -y libsqlite3-mod-spatialite libgdal-dev gdal-bin rasterio
105
103
 
106
104
  # Config PostgreSQL
107
105
  - name: Configure PostgreSQL
@@ -155,9 +153,9 @@ jobs:
155
153
  PYTEST_MARIADB_DB_URL: mariadb://gis:gis@127.0.0.1:3308/gis
156
154
  run: |
157
155
  if [[ ${{ matrix.python-version.flag }} == 'pypy3.10' ]]; then
158
- export PYTEST_ADDOPTS=${PYTEST_ADDOPTS}' --ignore=tests/gallery/test_insert_raster.py'
159
156
  export PYTEST_SPATIALITE3_DB_URL="FAILING URL"
160
157
  export PYTEST_SPATIALITE4_DB_URL="FAILING URL"
158
+ export PYTEST_GEOPACKAGE_DB_URL="FAILING URL"
161
159
  else
162
160
  export PYTEST_ADDOPTS='--require-all-dialects'
163
161
  fi;
@@ -26,6 +26,8 @@ var/
26
26
  *.egg-info/
27
27
  .installed.cfg
28
28
  *.egg
29
+ .env
30
+ .venv
29
31
 
30
32
  # Installer logs
31
33
  pip-log.txt
@@ -60,6 +62,11 @@ reports/
60
62
  doc/_build/
61
63
  doc/gallery/
62
64
 
65
+ # Mypy
66
+ .mypy_cache/
67
+ .dmypy.json
68
+ dmypy.json
69
+
63
70
  # Miscellaneous
64
71
  *.csv
65
72
  *.sh
@@ -11,15 +11,15 @@ repos:
11
11
  - id: end-of-file-fixer
12
12
  - id: trailing-whitespace
13
13
  - repo: https://github.com/pycqa/isort
14
- rev: 5.13.2
14
+ rev: 6.0.1
15
15
  hooks:
16
16
  - id: isort
17
17
  - repo: https://github.com/psf/black
18
- rev: 24.10.0
18
+ rev: 25.1.0
19
19
  hooks:
20
20
  - id: black
21
21
  - repo: https://github.com/codespell-project/codespell
22
- rev: v2.3.0
22
+ rev: v2.4.1
23
23
  hooks:
24
24
  - id: codespell
25
25
  - repo: https://github.com/PyCQA/pydocstyle
@@ -29,7 +29,7 @@ repos:
29
29
  additional_dependencies: ["tomli"]
30
30
  exclude: "tests"
31
31
  - repo: https://github.com/PyCQA/flake8
32
- rev: 7.1.1
32
+ rev: 7.3.0
33
33
  hooks:
34
34
  - id: flake8
35
35
  ci:
@@ -1,6 +1,32 @@
1
1
  GeoAlchemy 2 Changelog
2
2
  ======================
3
3
 
4
+ 0.18.0
5
+ ------
6
+
7
+ * Feat: Add support of spatial indexes for Raster type for PostgreSQL @adrien-berchet (#564)
8
+ * Docs: Fix doc strings for cache enabled - @pjonsson (#562)
9
+ * Chore: Move reflection type registering @adrien-berchet (#561)
10
+ * (papacodebear/master) Fix: Remove warning from MySQL/MariaDB reflection @adrien-berchet (#560)
11
+ * Feat: Handle computed columns @adrien-berchet (#557)
12
+ * Test: Improve readability of benchmark results @adrien-berchet (#556)
13
+ * Perf: Define __slots__ in element classes to reduce memory usage of elements @adrien-berchet (#555)
14
+ * Chore: Create FUNDING.yml @adrien-berchet (#554)
15
+ * Test: Add more benchmarks @adrien-berchet (#553)
16
+ * Test: Add benchmark tests @adrien-berchet (#547)
17
+ * Docs: Update doc to run the tests inside docker container @adrien-berchet (#546)
18
+ * Perf (mariadb): Stop converting WKB to WKT @adrien-berchet (#545)
19
+ * Feat: Improve Geometry initializer to make the dimension optional @adrien-berchet (#544)
20
+ * Feat: Compile literal binds properly @adrien-berchet (#543)
21
+ * Feat: Add more return types for spatial functions and update some typehints @adrien-berchet (#540)
22
+ * Build: Deprecate Py<3.10 @adrien-berchet (#538)
23
+
24
+ 0.17.1
25
+ ------
26
+
27
+ * Fix: Pass through keyword args for alembic_helpers.create_geospatial_table() @jurgispods (#533)
28
+ * Chore: Fix stubs for TableRowElement @adrien-berchet (#534)
29
+
4
30
  0.17.0
5
31
  ------
6
32
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: GeoAlchemy2
3
- Version: 0.17.0
3
+ Version: 0.18.0
4
4
  Summary: Using SQLAlchemy with Spatial Databases
5
5
  Home-page: https://geoalchemy-2.readthedocs.io/en/stable/
6
6
  Author: Eric Lemoine
@@ -13,16 +13,14 @@ Classifier: Development Status :: 4 - Beta
13
13
  Classifier: Environment :: Plugins
14
14
  Classifier: Operating System :: OS Independent
15
15
  Classifier: Programming Language :: Python
16
- Classifier: Programming Language :: Python :: 3.7
17
- Classifier: Programming Language :: Python :: 3.8
18
- Classifier: Programming Language :: Python :: 3.9
19
16
  Classifier: Programming Language :: Python :: 3.10
20
17
  Classifier: Programming Language :: Python :: 3.11
21
18
  Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
22
20
  Classifier: Intended Audience :: Information Technology
23
21
  Classifier: License :: OSI Approved :: MIT License
24
22
  Classifier: Topic :: Scientific/Engineering :: GIS
25
- Requires-Python: >=3.7
23
+ Requires-Python: >=3.10
26
24
  License-File: COPYING.rst
27
25
  Requires-Dist: SQLAlchemy>=1.4
28
26
  Requires-Dist: packaging
@@ -35,6 +33,7 @@ Dynamic: description
35
33
  Dynamic: home-page
36
34
  Dynamic: keywords
37
35
  Dynamic: license
36
+ Dynamic: license-file
38
37
  Dynamic: project-url
39
38
  Dynamic: provides-extra
40
39
  Dynamic: requires-dist
@@ -19,6 +19,7 @@ requirements-rtd.txt
19
19
  requirements.txt
20
20
  setup.py
21
21
  tox.ini
22
+ .github/FUNDING.yml
22
23
  .github/dependabot.yml
23
24
  .github/pull_request_template.md
24
25
  .github/ISSUE_TEMPLATE/bug_report.yaml
@@ -126,6 +127,8 @@ tests/test_plugin.py
126
127
  tests/test_shape.py
127
128
  tests/test_types.py
128
129
  tests/alembic_config/alembic.ini
130
+ tests/benchmarks/__init__.py
131
+ tests/benchmarks/test_insert_select.py
129
132
  tests/data/spatialite_ge_4.sqlite
130
133
  tests/data/spatialite_geopackage.gpkg
131
134
  tests/data/spatialite_lt_4.sqlite
@@ -3,6 +3,9 @@ channels:
3
3
  - conda-forge
4
4
  dependencies:
5
5
  - libspatialite
6
- - python=3.7.*
6
+ - python=3.10.*
7
7
  - pyproj
8
8
  - psycopg2
9
+
10
+ variables:
11
+ SPATIALITE_LIBRARY_PATH: $CONDA_PREFIX/lib/mod_spatialite
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: GeoAlchemy2
3
- Version: 0.17.0
3
+ Version: 0.18.0
4
4
  Summary: Using SQLAlchemy with Spatial Databases
5
5
  Home-page: https://geoalchemy-2.readthedocs.io/en/stable/
6
6
  Author: Eric Lemoine
@@ -13,16 +13,14 @@ Classifier: Development Status :: 4 - Beta
13
13
  Classifier: Environment :: Plugins
14
14
  Classifier: Operating System :: OS Independent
15
15
  Classifier: Programming Language :: Python
16
- Classifier: Programming Language :: Python :: 3.7
17
- Classifier: Programming Language :: Python :: 3.8
18
- Classifier: Programming Language :: Python :: 3.9
19
16
  Classifier: Programming Language :: Python :: 3.10
20
17
  Classifier: Programming Language :: Python :: 3.11
21
18
  Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
22
20
  Classifier: Intended Audience :: Information Technology
23
21
  Classifier: License :: OSI Approved :: MIT License
24
22
  Classifier: Topic :: Scientific/Engineering :: GIS
25
- Requires-Python: >=3.7
23
+ Requires-Python: >=3.10
26
24
  License-File: COPYING.rst
27
25
  Requires-Dist: SQLAlchemy>=1.4
28
26
  Requires-Dist: packaging
@@ -35,6 +33,7 @@ Dynamic: description
35
33
  Dynamic: home-page
36
34
  Dynamic: keywords
37
35
  Dynamic: license
36
+ Dynamic: license-file
38
37
  Dynamic: project-url
39
38
  Dynamic: provides-extra
40
39
  Dynamic: requires-dist
@@ -16,7 +16,15 @@ Install and run the container::
16
16
 
17
17
  Run the tests inside the container::
18
18
 
19
- # tox --workdir /output -vv
19
+ # tox --workdir /output -v run
20
+
21
+ It is also possible to run the tests for a specific Python version.
22
+ For example, to run the tests for Python 3.10 with the latest version of SQLAlchemy::
23
+
24
+ # tox --workdir /output -v run -e py310-sqlalatest
25
+
26
+ You can combine `py310`, `py311`, `py312` with `sqla14` or `sqlalatest` to run the tests for
27
+ Python 3.10, 3.11 or 3.12 with SQLAlchemy 1.4 or 2.*.
20
28
 
21
29
  Remove the container and associated data::
22
30
 
@@ -24,6 +32,12 @@ Remove the container and associated data::
24
32
  $ docker image rm geoalchemy2
25
33
  $ docker system prune
26
34
 
35
+ If you want to run the tests for MariaDB, you should use the specific MariaDB image
36
+ instead of the default image::
37
+
38
+ $ ./test_container/build_mariadb.sh
39
+ $ ./test_container/run_mariadb.sh
40
+
27
41
 
28
42
  Host System
29
43
  ===========
@@ -20,32 +20,12 @@ from geoalchemy2.types import Raster # noqa
20
20
 
21
21
  admin.setup_ddl_event_listeners()
22
22
 
23
-
24
- # Get version number
25
- __version__ = "UNKNOWN VERSION"
26
-
27
- # Attempt to use importlib.metadata first because it's much faster
28
- # though it's only available in Python 3.8+ so we'll need to fall
29
- # back to pkg_resources for Python 3.7 support
30
23
  try:
31
- import importlib.metadata
32
- except ImportError:
33
- try:
34
- from pkg_resources import DistributionNotFound
35
- from pkg_resources import get_distribution
36
- except ImportError: # pragma: no cover
37
- pass
38
- else:
39
- try:
40
- __version__ = get_distribution("GeoAlchemy2").version
41
- except DistributionNotFound: # pragma: no cover
42
- pass
43
- else:
44
- try:
45
- __version__ = importlib.metadata.version("GeoAlchemy2")
46
- except importlib.metadata.PackageNotFoundError: # pragma: no cover
47
- pass
24
+ from importlib.metadata import version
48
25
 
26
+ __version__ = version("geoalchemy2")
27
+ except ImportError:
28
+ __version__ = "0.0.0"
49
29
 
50
30
  __all__ = [
51
31
  "__version__",