pyogrio 0.7.1__cp38-cp38-macosx_10_9_x86_64.whl → 0.7.2__cp38-cp38-macosx_10_9_x86_64.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.

pyogrio/_compat.py CHANGED
@@ -28,6 +28,7 @@ HAS_ARROW_API = __gdal_version__ >= (3, 6, 0) and pyarrow is not None
28
28
 
29
29
  HAS_GEOPANDAS = geopandas is not None
30
30
 
31
+ PANDAS_GE_15 = pandas is not None and Version(pandas.__version__) >= Version("1.5.0")
31
32
  PANDAS_GE_20 = pandas is not None and Version(pandas.__version__) >= Version("2.0.0")
32
33
 
33
34
  HAS_GDAL_GEOS = __gdal_geos_version__ is not None
Binary file
Binary file
Binary file
Binary file
pyogrio/_version.py CHANGED
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2023-10-26T15:56:41-0700",
11
+ "date": "2023-10-30T11:39:03-0700",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "97d9dee48584208ccbb479b87d58ec1eb92b3f9c",
15
- "version": "0.7.1"
14
+ "full-revisionid": "71acde57ef674c8622d17b29663ff4349b1fee6e",
15
+ "version": "0.7.2"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
pyogrio/geopandas.py CHANGED
@@ -2,7 +2,7 @@ import os
2
2
 
3
3
  import numpy as np
4
4
 
5
- from pyogrio._compat import HAS_GEOPANDAS, PANDAS_GE_20
5
+ from pyogrio._compat import HAS_GEOPANDAS, PANDAS_GE_15, PANDAS_GE_20
6
6
  from pyogrio.raw import (
7
7
  DRIVERS_NO_MIXED_SINGLE_MULTI,
8
8
  DRIVERS_NO_MIXED_DIMENSIONS,
@@ -275,7 +275,11 @@ def read_dataframe(
275
275
  # Index not asked, no geometry column and no attribute columns: return empty
276
276
  return pd.DataFrame()
277
277
  elif geometry_name in df.columns:
278
- df["geometry"] = from_wkb(df.pop(geometry_name), crs=meta["crs"])
278
+ wkb_values = df.pop(geometry_name)
279
+ if PANDAS_GE_15 and wkb_values.dtype != object:
280
+ # for example ArrowDtype will otherwise create numpy array with pd.NA
281
+ wkb_values = wkb_values.to_numpy(na_value=None)
282
+ df["geometry"] = from_wkb(wkb_values, crs=meta["crs"])
279
283
  if force_2d:
280
284
  df["geometry"] = shapely.force_2d(df["geometry"])
281
285
  return gp.GeoDataFrame(df, geometry="geometry")
@@ -17,6 +17,7 @@ from pyogrio.tests.conftest import (
17
17
  requires_arrow_api,
18
18
  requires_gdal_geos,
19
19
  )
20
+ from pyogrio._compat import PANDAS_GE_15
20
21
 
21
22
  try:
22
23
  import pandas as pd
@@ -1442,3 +1443,26 @@ def test_metadata_unsupported(tmpdir, naturalearth_lowres, metadata_type):
1442
1443
  metadata_key = "layer_metadata" if metadata_type == "metadata" else metadata_type
1443
1444
 
1444
1445
  assert read_info(filename)[metadata_key] is None
1446
+
1447
+
1448
+ @pytest.mark.skipif(not PANDAS_GE_15, reason="ArrowDtype requires pandas 1.5+")
1449
+ def test_read_dataframe_arrow_dtypes(tmp_path):
1450
+ # https://github.com/geopandas/pyogrio/issues/319 - ensure arrow binary
1451
+ # column can be converted with from_wkb in case of missing values
1452
+ pytest.importorskip("pyarrow")
1453
+ filename = tmp_path / "test.gpkg"
1454
+ df = gp.GeoDataFrame(
1455
+ {"col": [1.0, 2.0]}, geometry=[Point(1, 1), None], crs="EPSG:4326"
1456
+ )
1457
+ write_dataframe(df, filename)
1458
+
1459
+ result = read_dataframe(
1460
+ filename,
1461
+ use_arrow=True,
1462
+ arrow_to_pandas_kwargs={
1463
+ "types_mapper": lambda pa_dtype: pd.ArrowDtype(pa_dtype)
1464
+ },
1465
+ )
1466
+ assert isinstance(result["col"].dtype, pd.ArrowDtype)
1467
+ result["col"] = result["col"].astype("float64")
1468
+ assert_geodataframe_equal(result, df)
pyogrio/util.py CHANGED
@@ -2,6 +2,8 @@ import re
2
2
  import sys
3
3
  from urllib.parse import urlparse
4
4
 
5
+ from packaging.version import Version
6
+
5
7
  from pyogrio._env import GDALEnv
6
8
 
7
9
  with GDALEnv():
@@ -187,7 +189,7 @@ def _mask_to_wkb(mask):
187
189
  try:
188
190
  import shapely
189
191
 
190
- if int(shapely.__version__.split(".")[0]) < 2:
192
+ if Version(shapely.__version__) < Version("2.0.0"):
191
193
  shapely = None
192
194
  except ImportError:
193
195
  shapely = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyogrio
3
- Version: 0.7.1
3
+ Version: 0.7.2
4
4
  Summary: Vectorized spatial vector file format I/O using GDAL/OGR
5
5
  Home-page: https://github.com/geopandas/pyogrio
6
6
  Author: Brendan C. Ward
@@ -11,6 +11,7 @@ Description-Content-Type: text/markdown
11
11
  License-File: LICENSE
12
12
  Requires-Dist: certifi
13
13
  Requires-Dist: numpy
14
+ Requires-Dist: packaging
14
15
  Provides-Extra: benchmark
15
16
  Requires-Dist: pytest-benchmark ; extra == 'benchmark'
16
17
  Provides-Extra: dev
@@ -1,23 +1,28 @@
1
+ pyogrio-0.7.2.dist-info/RECORD,,
2
+ pyogrio-0.7.2.dist-info/LICENSE,sha256=e3KtZsP5KtU41F_46jNd4Gfba2PwF2bfVumh9KT6o7Y,1102
3
+ pyogrio-0.7.2.dist-info/WHEEL,sha256=7bITxp1IXfScHG_aHqjgl3cb1WeEQowtBiPLTHk6_e8,109
4
+ pyogrio-0.7.2.dist-info/top_level.txt,sha256=DUBAVaLxa9r0nHHskG8tHdP1P3zt6TYYPRiDBlEUc7Y,8
5
+ pyogrio-0.7.2.dist-info/METADATA,sha256=tOnuXcTFeJDZHBwwFXfmNf1_4ipIl9n1aUnIVhscTSw,3807
1
6
  pyogrio/_err.pyx,sha256=qNlAfC3Qr006zKw3ZyRCM4DCiYHzf-AwJdCIT38lL1k,5977
2
- pyogrio/_err.cpython-38-darwin.so,sha256=Ubl5YIFn3kvHoN4Pi1ztwJkk1JH_oQX_wcxm4d4Yk3Y,153584
3
- pyogrio/_version.py,sha256=g5l2j1Q39eUO6VNS1n-hwIzMgrb9CmuiVm-CB3GVY_4,497
7
+ pyogrio/_err.cpython-38-darwin.so,sha256=qipengCkmsssu1GTED8O-NrducwkvO9ugPd-DrbnTkI,153584
8
+ pyogrio/_version.py,sha256=B-MKvOdxOlxitQZYhOYjmSv7Xo6dIy1o3TCMiBRuSac,497
4
9
  pyogrio/raw.py,sha256=xE-Zku_KG1t28-Oo8q2XVS32wChWURq9rmj3uMLnI-s,18559
5
10
  pyogrio/_ogr.pxd,sha256=nVi4I9gP7gQGkskP4TMK2utSr2DAKCIKT6ep0Tqta54,15296
6
- pyogrio/util.py,sha256=F4jm32jEj7RtMv18yfFfobkqjEFRkeJ3uMDbNJ6vUCw,4889
11
+ pyogrio/util.py,sha256=WanURqX9cYpvUF6RPnZtzzz-SwHTsWtmBHUXAU0Wn0w,4933
7
12
  pyogrio/_io.pxd,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
13
  pyogrio/_geometry.pxd,sha256=glEFGgam8GVAnJr8q9NQ4zLdFYjIRd9Hn7LoNP8MOt8,147
9
14
  pyogrio/__init__.py,sha256=MMMoDLcxEXX_6772HCwqGExFCz1bTm4wC_IZ7blUMs8,1026
10
15
  pyogrio/core.py,sha256=YBi8EYBHb7WuAO8hFknmvYrQzS0kX65ADzPscu_KxjI,10680
11
- pyogrio/_ogr.cpython-38-darwin.so,sha256=OjIDBHfSXDCCpDwvpZVZ0WrzI3JpuI8-EBO9JDAnlEI,181840
12
- pyogrio/geopandas.py,sha256=E0FF3HnODR8v8ltao-BE5oymAYq7kt8q5MlMXJk4Fmg,23586
16
+ pyogrio/_ogr.cpython-38-darwin.so,sha256=j7-_cgbXyFHdKzaIVWijv6nau3xRZi2QoEmZeEaumWU,181840
17
+ pyogrio/geopandas.py,sha256=MDMcyW9PLYGW_QMmXrJbJjjr6nQYLeYIa75uqyp1MDk,23846
13
18
  pyogrio/arrow_bridge.h,sha256=cmDLGfuENF3dE1MwByyfkZ9Yey5RsHo2Xg_vYujlWew,3573
14
19
  pyogrio/_geometry.pyx,sha256=z4RJdJyMZvFShX3B2dBErMglQFDWUkUqqlOFTaEOBRg,4071
15
20
  pyogrio/_io.pyx,sha256=ba1V9VKy0Nzb5xRTeMe32WKo1mDAneUCkiJkn76Nyeo,67023
16
21
  pyogrio/_ogr.pyx,sha256=-WlLmRItqz7BMh977ZjKwXL76RJEI6nPT9IvYmKPGts,10295
17
22
  pyogrio/errors.py,sha256=otUCS22V7jd-4b5o49YLTqmHzzHlr3XrEIyoF2qDSOA,666
18
- pyogrio/_geometry.cpython-38-darwin.so,sha256=6L4cXmd-vMo64msfjjuS5c88fLj54rEqWJjpjfkRM1g,107952
19
- pyogrio/_compat.py,sha256=33sX3KTkoeaq4RTTrLW1hsQwXnqN9DsQbeQassLNUYU,730
20
- pyogrio/_io.cpython-38-darwin.so,sha256=jroz4zjQ-CxcUPuoIhSWFm1Vt9amS4L7ezmUPRHaHHU,633024
23
+ pyogrio/_geometry.cpython-38-darwin.so,sha256=aPo8FLYyX12e7xyZSOf64crgZMXRN5_WDNgIa9f4Ldo,107952
24
+ pyogrio/_compat.py,sha256=XXUcKt-_oTVDteHzLFGovDdSwMe_cB_m9nmYzItxFVk,816
25
+ pyogrio/_io.cpython-38-darwin.so,sha256=uHa4Mes2g5f7Ip5d-33XMfmS_xkRkEdrX-vRWjqZp2A,633024
21
26
  pyogrio/_env.py,sha256=jf-nUbLqQka-XGKijLh4Oh0Lur_uj7XyvQVSQ0jXZ_0,1531
22
27
  pyogrio/_err.pxd,sha256=DKe5pdq8CqnaW3U_w9X56iBqdylIvOaRk-sExSXA3WU,166
23
28
  pyogrio/proj_data/vcpkg.spdx.json,sha256=CrnyrnrR5HISU0DOU4CcyDzGsd0qRgqXCagteuH_5ok,7311
@@ -50,7 +55,7 @@ pyogrio/tests/test_raw_io.py,sha256=qa7R-PnVLRDQMHDhj2d4dDFmYQIiTuBqH4OJdATS5SU,
50
55
  pyogrio/tests/test_core.py,sha256=v1DLWiNmPXZtKygMcpRFoKuzVqxdrMc11AtAt9Ud404,16168
51
56
  pyogrio/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
57
  pyogrio/tests/win32.py,sha256=mEV4Aeb7Xm-8l49G-U-x9xHMjbzJRVhxqgK-EwD5jYE,2098
53
- pyogrio/tests/test_geopandas_io.py,sha256=3QPqAQjA7MPhw7aQYlA63cWPYJrFBnIS3DXU2RO1XOc,50031
58
+ pyogrio/tests/test_geopandas_io.py,sha256=zvDtPkSdRTXV6kMnnf6T9inZQeJ7fkmCELwrpMUXRUA,50905
54
59
  pyogrio/tests/test_path.py,sha256=Je2OKjnmosRDpXwl07JPd_mpvRuwRRuEdEB1Z-o7_qo,10784
55
60
  pyogrio/tests/test_arrow.py,sha256=lFEvDeAH7EoTYMzzQ6t7vwHL8C1fcs3nF4g9GhvOve4,6947
56
61
  pyogrio/tests/fixtures/test_multisurface.gpkg,sha256=sc6yaD6RxjqCGIT0ijBXgxEWYNMZNPLOetKvD5njGYY,98304
@@ -229,8 +234,3 @@ pyogrio/gdal_data/jpfgdgml_SBBdry.gfs,sha256=JDySSKChX3q0KetcBBC62Bvsr59qj8aq7_L
229
234
  pyogrio/gdal_data/netcdf_config.xsd,sha256=O1eIEmlSx3y7N1hIMtfb5GzD_F7hunQdlKI1pXpi3v4,7491
230
235
  pyogrio/gdal_data/vdv452.xml,sha256=q1KF0BR-dDEIomwkRLhTksR4f_maMumayx4hQ2wju8k,25816
231
236
  pyogrio/gdal_data/ecw_cs.wkt,sha256=1DGJPrRGsmXSBu6ohj3NzOO2XHwqcH2qtY6J5YOvAz4,364032
232
- pyogrio-0.7.1.dist-info/RECORD,,
233
- pyogrio-0.7.1.dist-info/LICENSE,sha256=e3KtZsP5KtU41F_46jNd4Gfba2PwF2bfVumh9KT6o7Y,1102
234
- pyogrio-0.7.1.dist-info/WHEEL,sha256=9eQSRGrOa03o6gOAokAH2Pxmxf46-vNjolslVVBruVM,109
235
- pyogrio-0.7.1.dist-info/top_level.txt,sha256=DUBAVaLxa9r0nHHskG8tHdP1P3zt6TYYPRiDBlEUc7Y,8
236
- pyogrio-0.7.1.dist-info/METADATA,sha256=Im1FpA1WrH6FUUMN7lsO2lAgo3VpSV78jwVKWsLw-5o,3782
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.41.2)
2
+ Generator: bdist_wheel (0.41.3)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp38-cp38-macosx_10_9_x86_64
5
5