pyogrio 0.9.0__cp312-cp312-win_amd64.whl → 0.11.0__cp312-cp312-win_amd64.whl

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.

Potentially problematic release.


This version of pyogrio might be problematic. Click here for more details.

Files changed (125) hide show
  1. pyogrio/__init__.py +35 -28
  2. pyogrio/_compat.py +15 -1
  3. pyogrio/_env.py +4 -6
  4. pyogrio/_err.c +8941 -3106
  5. pyogrio/_err.cp312-win_amd64.pyd +0 -0
  6. pyogrio/_geometry.c +1008 -807
  7. pyogrio/_geometry.cp312-win_amd64.pyd +0 -0
  8. pyogrio/_io.c +10678 -9440
  9. pyogrio/_io.cp312-win_amd64.pyd +0 -0
  10. pyogrio/_ogr.c +1950 -1873
  11. pyogrio/_ogr.cp312-win_amd64.pyd +0 -0
  12. pyogrio/_version.py +3 -3
  13. pyogrio/_vsi.c +7558 -2509
  14. pyogrio/_vsi.cp312-win_amd64.pyd +0 -0
  15. pyogrio/core.py +86 -20
  16. pyogrio/errors.py +9 -16
  17. pyogrio/gdal_data/GDAL-targets.cmake +2 -2
  18. pyogrio/gdal_data/GDALConfig.cmake +0 -1
  19. pyogrio/gdal_data/GDALConfigVersion.cmake +3 -3
  20. pyogrio/gdal_data/MM_m_idofic.csv +321 -0
  21. pyogrio/gdal_data/gdalinfo_output.schema.json +3 -3
  22. pyogrio/gdal_data/gdaltileindex.xsd +253 -0
  23. pyogrio/gdal_data/gdalvrt.xsd +178 -63
  24. pyogrio/gdal_data/nitf_spec.xml +1 -17
  25. pyogrio/gdal_data/nitf_spec.xsd +1 -17
  26. pyogrio/gdal_data/ogrinfo_output.schema.json +23 -0
  27. pyogrio/gdal_data/ogrvrt.xsd +4 -17
  28. pyogrio/gdal_data/osmconf.ini +3 -1
  29. pyogrio/gdal_data/pci_datum.txt +222 -155
  30. pyogrio/gdal_data/pci_ellips.txt +90 -38
  31. pyogrio/gdal_data/pdfcomposition.xsd +1 -17
  32. pyogrio/gdal_data/vcpkg.spdx.json +29 -24
  33. pyogrio/gdal_data/vcpkg_abi_info.txt +32 -31
  34. pyogrio/gdal_data/vdv452.xml +1 -17
  35. pyogrio/gdal_data/vdv452.xsd +1 -17
  36. pyogrio/geopandas.py +122 -66
  37. pyogrio/proj_data/ITRF2014 +1 -1
  38. pyogrio/proj_data/ITRF2020 +91 -0
  39. pyogrio/proj_data/proj-config-version.cmake +2 -2
  40. pyogrio/proj_data/proj-config.cmake +1 -1
  41. pyogrio/proj_data/proj-targets-release.cmake +3 -2
  42. pyogrio/proj_data/proj-targets.cmake +2 -2
  43. pyogrio/proj_data/proj.db +0 -0
  44. pyogrio/proj_data/proj.ini +11 -3
  45. pyogrio/proj_data/proj4-targets-release.cmake +3 -2
  46. pyogrio/proj_data/proj4-targets.cmake +2 -2
  47. pyogrio/proj_data/projjson.schema.json +1 -1
  48. pyogrio/proj_data/usage +7 -2
  49. pyogrio/proj_data/vcpkg.spdx.json +26 -21
  50. pyogrio/proj_data/vcpkg_abi_info.txt +19 -18
  51. pyogrio/raw.py +46 -30
  52. pyogrio/tests/conftest.py +214 -12
  53. pyogrio/tests/fixtures/README.md +32 -13
  54. pyogrio/tests/fixtures/curve.gpkg +0 -0
  55. pyogrio/tests/fixtures/{test_multisurface.gpkg → curvepolygon.gpkg} +0 -0
  56. pyogrio/tests/fixtures/line_zm.gpkg +0 -0
  57. pyogrio/tests/fixtures/multisurface.gpkg +0 -0
  58. pyogrio/tests/test_arrow.py +181 -24
  59. pyogrio/tests/test_core.py +170 -76
  60. pyogrio/tests/test_geopandas_io.py +483 -135
  61. pyogrio/tests/test_path.py +39 -17
  62. pyogrio/tests/test_raw_io.py +170 -55
  63. pyogrio/tests/test_util.py +56 -0
  64. pyogrio/util.py +69 -32
  65. pyogrio-0.11.0.dist-info/DELVEWHEEL +2 -0
  66. pyogrio-0.11.0.dist-info/METADATA +124 -0
  67. {pyogrio-0.9.0.dist-info → pyogrio-0.11.0.dist-info}/RECORD +90 -102
  68. {pyogrio-0.9.0.dist-info → pyogrio-0.11.0.dist-info}/WHEEL +1 -1
  69. {pyogrio-0.9.0.dist-info → pyogrio-0.11.0.dist-info/licenses}/LICENSE +1 -1
  70. pyogrio.libs/{Lerc-5e4d8cbeeabca06f95e2270792304dc3.dll → Lerc-0a4c85fb364eca6153da109568898e6c.dll} +0 -0
  71. pyogrio.libs/{gdal-b434963605a006e01c486c0df6dea4e0.dll → gdal-34e3e080255b205ef706390e097fa4dc.dll} +0 -0
  72. pyogrio.libs/geos-d8f20037634583c2efcd6ea1f4153169.dll +0 -0
  73. pyogrio.libs/geos_c-046e8885887192fced9516bda554471d.dll +0 -0
  74. pyogrio.libs/geotiff-1f2f76a5d30685a8e0497d9dbf8a79cf.dll +0 -0
  75. pyogrio.libs/{iconv-2-8fcc23ddc6f096c45871011b6e008b44.dll → iconv-2-4b71ebbdf6834234e0c64cb2439b77cf.dll} +0 -0
  76. pyogrio.libs/{jpeg62-2f9b7af22d78338e8f0be0058503dc35.dll → jpeg62-bf2a75b1f2695748cd86238ddb19c65b.dll} +0 -0
  77. pyogrio.libs/json-c-4bc6781090e73c9b22d8dc057618a277.dll +0 -0
  78. pyogrio.libs/libcrypto-3-x64-c8f1692ed45cf55faecce2c448056b2e.dll +0 -0
  79. pyogrio.libs/libcurl-f3604410cd467a44d927794ebdce81b8.dll +0 -0
  80. pyogrio.libs/libexpat-385074fd54deb4b640baafa42cbb3146.dll +0 -0
  81. pyogrio.libs/liblzma-8968f0bfd463b7fe612b20d07adc3c1e.dll +0 -0
  82. pyogrio.libs/libpng16-44105208fe941d03e9f0c17bdbb952f7.dll +0 -0
  83. pyogrio.libs/libssl-3-x64-58c364315f431ab1f0e48b311b8cf105.dll +0 -0
  84. pyogrio.libs/msvcp140-99aa35e2033bb8d388bc35c8a68b77e3.dll +0 -0
  85. pyogrio.libs/proj_9-ee59474f99643c112eb02aa34a910237.dll +0 -0
  86. pyogrio.libs/{qhull_r-c45abde5d0c92faf723cc2942138af77.dll → qhull_r-eaac2f11a3d8241f082e54447c7504d7.dll} +0 -0
  87. pyogrio.libs/sqlite3-dc748e3452944fd41001abacdd783569.dll +0 -0
  88. pyogrio.libs/tiff-c409ddbe87b39639b83fee50d4aea318.dll +0 -0
  89. pyogrio.libs/{zlib1-e1272810861a13dd8d6cff3beac47f17.dll → zlib1-094085b7b78666197dcc8e1fce2d835d.dll} +0 -0
  90. pyogrio/_err.pxd +0 -4
  91. pyogrio/_err.pyx +0 -250
  92. pyogrio/_geometry.pxd +0 -4
  93. pyogrio/_geometry.pyx +0 -129
  94. pyogrio/_io.pxd +0 -0
  95. pyogrio/_io.pyx +0 -2742
  96. pyogrio/_ogr.pxd +0 -444
  97. pyogrio/_ogr.pyx +0 -346
  98. pyogrio/_vsi.pxd +0 -4
  99. pyogrio/_vsi.pyx +0 -140
  100. pyogrio/arrow_bridge.h +0 -115
  101. pyogrio/gdal_data/bag_template.xml +0 -201
  102. pyogrio/gdal_data/gmlasconf.xml +0 -169
  103. pyogrio/gdal_data/gmlasconf.xsd +0 -1066
  104. pyogrio/gdal_data/netcdf_config.xsd +0 -143
  105. pyogrio/tests/fixtures/poly_not_enough_points.shp.zip +0 -0
  106. pyogrio/tests/fixtures/test_datetime.geojson +0 -7
  107. pyogrio/tests/fixtures/test_datetime_tz.geojson +0 -8
  108. pyogrio/tests/fixtures/test_fgdb.gdb.zip +0 -0
  109. pyogrio/tests/fixtures/test_nested.geojson +0 -18
  110. pyogrio/tests/fixtures/test_ogr_types_list.geojson +0 -12
  111. pyogrio-0.9.0.dist-info/DELVEWHEEL +0 -2
  112. pyogrio-0.9.0.dist-info/METADATA +0 -100
  113. pyogrio.libs/geos-f0622d0794b81c937a851b2e6fa9b712.dll +0 -0
  114. pyogrio.libs/geos_c-0e16bf70612fc3301d077b9d863a3fdb.dll +0 -0
  115. pyogrio.libs/geotiff-772e7c705fb15ddf91b432adb4eb1f6c.dll +0 -0
  116. pyogrio.libs/json-c-e52a077545e4057de42beb4948289b41.dll +0 -0
  117. pyogrio.libs/libcurl-bc81cd8afe15b10c0821b181b6af8bd0.dll +0 -0
  118. pyogrio.libs/libexpat-fbe03ca8917dfda776562d4338b289b8.dll +0 -0
  119. pyogrio.libs/liblzma-6b36f24d54d3dd45f274a2aebef81085.dll +0 -0
  120. pyogrio.libs/libpng16-13928571ad910705eae8d7dd8eef8b11.dll +0 -0
  121. pyogrio.libs/msvcp140-46db46e967c8db2cb7a20fc75872a57e.dll +0 -0
  122. pyogrio.libs/proj-8a30239ef2dfc3b9dd2bb48e8abb330f.dll +0 -0
  123. pyogrio.libs/sqlite3-df30c3cf230727e23c43c40126a530f7.dll +0 -0
  124. pyogrio.libs/tiff-43630f30487a9015213475ae86ed3fa3.dll +0 -0
  125. {pyogrio-0.9.0.dist-info → pyogrio-0.11.0.dist-info}/top_level.txt +0 -0
pyogrio/__init__.py CHANGED
@@ -1,60 +1,67 @@
1
- """""" # start delvewheel patch
2
- def _delvewheel_patch_1_6_0():
1
+ """Vectorized vector I/O using OGR."""
2
+
3
+
4
+ # start delvewheel patch
5
+ def _delvewheel_patch_1_10_1():
3
6
  import os
4
- libs_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, 'pyogrio.libs'))
5
- if os.path.isdir(libs_dir):
7
+ if os.path.isdir(libs_dir := os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, 'pyogrio.libs'))):
6
8
  os.add_dll_directory(libs_dir)
7
9
 
8
10
 
9
- _delvewheel_patch_1_6_0()
10
- del _delvewheel_patch_1_6_0
11
+ _delvewheel_patch_1_10_1()
12
+ del _delvewheel_patch_1_10_1
11
13
  # end delvewheel patch
12
14
 
13
15
  try:
14
16
  # we try importing shapely, to ensure it is imported (and it can load its
15
17
  # own GEOS copy) before we load GDAL and its linked GEOS
16
- import shapely # noqa
17
- import shapely.geos # noqa
18
+ import shapely
19
+ import shapely.geos # noqa: F401
18
20
  except Exception:
19
21
  pass
20
22
 
23
+ from pyogrio._version import get_versions
21
24
  from pyogrio.core import (
22
- list_drivers,
25
+ __gdal_geos_version__,
26
+ __gdal_version__,
27
+ __gdal_version_string__,
23
28
  detect_write_driver,
29
+ get_gdal_config_option,
30
+ get_gdal_data_path,
31
+ list_drivers,
24
32
  list_layers,
25
33
  read_bounds,
26
34
  read_info,
27
35
  set_gdal_config_options,
28
- get_gdal_config_option,
29
- get_gdal_data_path,
30
- __gdal_version__,
31
- __gdal_version_string__,
32
- __gdal_geos_version__,
36
+ vsi_listtree,
37
+ vsi_rmtree,
38
+ vsi_unlink,
33
39
  )
34
- from pyogrio.raw import read_arrow, open_arrow, write_arrow
35
40
  from pyogrio.geopandas import read_dataframe, write_dataframe
36
- from pyogrio._version import get_versions
37
-
41
+ from pyogrio.raw import open_arrow, read_arrow, write_arrow
38
42
 
39
43
  __version__ = get_versions()["version"]
40
44
  del get_versions
41
45
 
42
46
  __all__ = [
43
- "list_drivers",
47
+ "__gdal_geos_version__",
48
+ "__gdal_version__",
49
+ "__gdal_version_string__",
50
+ "__version__",
44
51
  "detect_write_driver",
52
+ "get_gdal_config_option",
53
+ "get_gdal_data_path",
54
+ "list_drivers",
45
55
  "list_layers",
56
+ "open_arrow",
57
+ "read_arrow",
46
58
  "read_bounds",
59
+ "read_dataframe",
47
60
  "read_info",
48
61
  "set_gdal_config_options",
49
- "get_gdal_config_option",
50
- "get_gdal_data_path",
51
- "read_arrow",
52
- "open_arrow",
62
+ "vsi_listtree",
63
+ "vsi_rmtree",
64
+ "vsi_unlink",
53
65
  "write_arrow",
54
- "read_dataframe",
55
66
  "write_dataframe",
56
- "__gdal_version__",
57
- "__gdal_version_string__",
58
- "__gdal_geos_version__",
59
- "__version__",
60
- ]
67
+ ]
pyogrio/_compat.py CHANGED
@@ -1,6 +1,6 @@
1
1
  from packaging.version import Version
2
2
 
3
- from pyogrio.core import __gdal_version__, __gdal_geos_version__
3
+ from pyogrio.core import __gdal_geos_version__, __gdal_version__
4
4
 
5
5
  # detect optional dependencies
6
6
  try:
@@ -8,6 +8,11 @@ try:
8
8
  except ImportError:
9
9
  pyarrow = None
10
10
 
11
+ try:
12
+ import pyproj
13
+ except ImportError:
14
+ pyproj = None
15
+
11
16
  try:
12
17
  import shapely
13
18
  except ImportError:
@@ -27,15 +32,24 @@ except ImportError:
27
32
  HAS_ARROW_API = __gdal_version__ >= (3, 6, 0)
28
33
  HAS_ARROW_WRITE_API = __gdal_version__ >= (3, 8, 0)
29
34
  HAS_PYARROW = pyarrow is not None
35
+ HAS_PYPROJ = pyproj is not None
36
+ PYARROW_GE_19 = pyarrow is not None and Version(pyarrow.__version__) >= Version(
37
+ "19.0.0"
38
+ )
30
39
 
31
40
  HAS_GEOPANDAS = geopandas is not None
32
41
 
33
42
  PANDAS_GE_15 = pandas is not None and Version(pandas.__version__) >= Version("1.5.0")
34
43
  PANDAS_GE_20 = pandas is not None and Version(pandas.__version__) >= Version("2.0.0")
35
44
  PANDAS_GE_22 = pandas is not None and Version(pandas.__version__) >= Version("2.2.0")
45
+ PANDAS_GE_30 = pandas is not None and Version(pandas.__version__) >= Version("3.0.0dev")
36
46
 
47
+ GDAL_GE_352 = __gdal_version__ >= (3, 5, 2)
48
+ GDAL_GE_37 = __gdal_version__ >= (3, 7, 0)
37
49
  GDAL_GE_38 = __gdal_version__ >= (3, 8, 0)
50
+ GDAL_GE_311 = __gdal_version__ >= (3, 11, 0)
38
51
 
39
52
  HAS_GDAL_GEOS = __gdal_geos_version__ is not None
40
53
 
41
54
  HAS_SHAPELY = shapely is not None and Version(shapely.__version__) >= Version("2.0.0")
55
+ SHAPELY_GE_21 = shapely is not None and Version(shapely.__version__) >= Version("2.1.0")
pyogrio/_env.py CHANGED
@@ -4,13 +4,11 @@
4
4
  # adapted from Fiona: https://github.com/Toblerity/Fiona/pull/875
5
5
 
6
6
 
7
- from contextlib import contextmanager
8
7
  import logging
9
8
  import os
10
- from pathlib import Path
11
9
  import platform
12
- import sys
13
-
10
+ from contextlib import contextmanager
11
+ from pathlib import Path
14
12
 
15
13
  log = logging.getLogger(__name__)
16
14
  log.addHandler(logging.NullHandler())
@@ -29,10 +27,10 @@ except ImportError:
29
27
 
30
28
  gdal_dll_dir = None
31
29
 
32
- if platform.system() == "Windows" and sys.version_info >= (3, 8):
30
+ if platform.system() == "Windows":
33
31
  # if loading of extension modules fails, search for gdal dll directory
34
32
  try:
35
- import pyogrio._io # NOQA
33
+ import pyogrio._io # noqa: F401
36
34
 
37
35
  except ImportError:
38
36
  for path in os.getenv("PATH", "").split(os.pathsep):