pyogrio 0.7.0__cp310-cp310-macosx_10_9_x86_64.whl → 0.7.2__cp310-cp310-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-25T11:38:26-0700",
11
+ "date": "2023-10-30T11:39:03-0700",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "f0c82b6cc012b36c98fcd6ac27fee7d7c6e117bb",
15
- "version": "0.7.0"
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
@@ -1,8 +1,9 @@
1
- from packaging.version import Version
2
1
  import re
3
2
  import sys
4
3
  from urllib.parse import urlparse
5
4
 
5
+ from packaging.version import Version
6
+
6
7
  from pyogrio._env import GDALEnv
7
8
 
8
9
  with GDALEnv():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyogrio
3
- Version: 0.7.0
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,28 +1,28 @@
1
- pyogrio-0.7.0.dist-info/RECORD,,
2
- pyogrio-0.7.0.dist-info/LICENSE,sha256=e3KtZsP5KtU41F_46jNd4Gfba2PwF2bfVumh9KT6o7Y,1102
3
- pyogrio-0.7.0.dist-info/WHEEL,sha256=3ggQLyEtwymd0rFFn7Y7bZeC-TPY--XSbFQw5jO7PyA,111
4
- pyogrio-0.7.0.dist-info/top_level.txt,sha256=DUBAVaLxa9r0nHHskG8tHdP1P3zt6TYYPRiDBlEUc7Y,8
5
- pyogrio-0.7.0.dist-info/METADATA,sha256=5Xn7NiLb7cs5grEQZW49FZxwJI46qzIv4UVTgxO4AGw,3782
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=TQlmCAd20YUeVyGm7PjFMnC_pA_j6rw_ne2D-uRkDyE,111
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
6
6
  pyogrio/_err.pyx,sha256=qNlAfC3Qr006zKw3ZyRCM4DCiYHzf-AwJdCIT38lL1k,5977
7
- pyogrio/_ogr.cpython-310-darwin.so,sha256=i2-9HBQ-NTlJTy2eZgFHu0dhZUfZf8FNI2HllEko90U,181664
8
- pyogrio/_version.py,sha256=gY2csSiMpU-7OQzf_wXNTCVPDxkQgOxgeMQOfyHngEo,497
9
- pyogrio/_io.cpython-310-darwin.so,sha256=7inrc3JsXWZqLfwyipFCTKt3sefgEMjF-qDsab799Ts,633312
7
+ pyogrio/_ogr.cpython-310-darwin.so,sha256=sm9T8uOO98BmAz3rwgnHnC2Qw23xl3tNPyMovvxWAwE,181664
8
+ pyogrio/_version.py,sha256=B-MKvOdxOlxitQZYhOYjmSv7Xo6dIy1o3TCMiBRuSac,497
9
+ pyogrio/_io.cpython-310-darwin.so,sha256=KuOnDDGJgM0BL2OSdjlTPGf1hCI-pQFPdlZJyEBPExY,633312
10
10
  pyogrio/raw.py,sha256=xE-Zku_KG1t28-Oo8q2XVS32wChWURq9rmj3uMLnI-s,18559
11
11
  pyogrio/_ogr.pxd,sha256=nVi4I9gP7gQGkskP4TMK2utSr2DAKCIKT6ep0Tqta54,15296
12
- pyogrio/util.py,sha256=SZNlGo7bBVeFWgDHy5Bde9FzWPVwf8pKmVvKZd3sj1g,4932
12
+ pyogrio/util.py,sha256=WanURqX9cYpvUF6RPnZtzzz-SwHTsWtmBHUXAU0Wn0w,4933
13
13
  pyogrio/_io.pxd,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- pyogrio/_geometry.cpython-310-darwin.so,sha256=Rm63FaoM0jx5IH6SnOlakLXwG17SE6oL8szPhegUqrE,107920
14
+ pyogrio/_geometry.cpython-310-darwin.so,sha256=9OJvpSAW3qGRtXBVwOhcf4APuBu1yu-5Uhw5cGjwunw,107920
15
15
  pyogrio/_geometry.pxd,sha256=glEFGgam8GVAnJr8q9NQ4zLdFYjIRd9Hn7LoNP8MOt8,147
16
16
  pyogrio/__init__.py,sha256=MMMoDLcxEXX_6772HCwqGExFCz1bTm4wC_IZ7blUMs8,1026
17
17
  pyogrio/core.py,sha256=YBi8EYBHb7WuAO8hFknmvYrQzS0kX65ADzPscu_KxjI,10680
18
- pyogrio/_err.cpython-310-darwin.so,sha256=J2HUv5yrnE_xmc1x6z401O04svJeNrNLJOIBE1RwxYM,153296
19
- pyogrio/geopandas.py,sha256=E0FF3HnODR8v8ltao-BE5oymAYq7kt8q5MlMXJk4Fmg,23586
18
+ pyogrio/_err.cpython-310-darwin.so,sha256=S8NMuDemt3lJm7aQ2wTlo4w5LdUBrcin9xq72aDuAqI,153296
19
+ pyogrio/geopandas.py,sha256=MDMcyW9PLYGW_QMmXrJbJjjr6nQYLeYIa75uqyp1MDk,23846
20
20
  pyogrio/arrow_bridge.h,sha256=cmDLGfuENF3dE1MwByyfkZ9Yey5RsHo2Xg_vYujlWew,3573
21
21
  pyogrio/_geometry.pyx,sha256=z4RJdJyMZvFShX3B2dBErMglQFDWUkUqqlOFTaEOBRg,4071
22
22
  pyogrio/_io.pyx,sha256=ba1V9VKy0Nzb5xRTeMe32WKo1mDAneUCkiJkn76Nyeo,67023
23
23
  pyogrio/_ogr.pyx,sha256=-WlLmRItqz7BMh977ZjKwXL76RJEI6nPT9IvYmKPGts,10295
24
24
  pyogrio/errors.py,sha256=otUCS22V7jd-4b5o49YLTqmHzzHlr3XrEIyoF2qDSOA,666
25
- pyogrio/_compat.py,sha256=33sX3KTkoeaq4RTTrLW1hsQwXnqN9DsQbeQassLNUYU,730
25
+ pyogrio/_compat.py,sha256=XXUcKt-_oTVDteHzLFGovDdSwMe_cB_m9nmYzItxFVk,816
26
26
  pyogrio/_env.py,sha256=jf-nUbLqQka-XGKijLh4Oh0Lur_uj7XyvQVSQ0jXZ_0,1531
27
27
  pyogrio/_err.pxd,sha256=DKe5pdq8CqnaW3U_w9X56iBqdylIvOaRk-sExSXA3WU,166
28
28
  pyogrio/proj_data/vcpkg.spdx.json,sha256=CrnyrnrR5HISU0DOU4CcyDzGsd0qRgqXCagteuH_5ok,7311
@@ -55,7 +55,7 @@ pyogrio/tests/test_raw_io.py,sha256=qa7R-PnVLRDQMHDhj2d4dDFmYQIiTuBqH4OJdATS5SU,
55
55
  pyogrio/tests/test_core.py,sha256=v1DLWiNmPXZtKygMcpRFoKuzVqxdrMc11AtAt9Ud404,16168
56
56
  pyogrio/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
57
  pyogrio/tests/win32.py,sha256=mEV4Aeb7Xm-8l49G-U-x9xHMjbzJRVhxqgK-EwD5jYE,2098
58
- pyogrio/tests/test_geopandas_io.py,sha256=3QPqAQjA7MPhw7aQYlA63cWPYJrFBnIS3DXU2RO1XOc,50031
58
+ pyogrio/tests/test_geopandas_io.py,sha256=zvDtPkSdRTXV6kMnnf6T9inZQeJ7fkmCELwrpMUXRUA,50905
59
59
  pyogrio/tests/test_path.py,sha256=Je2OKjnmosRDpXwl07JPd_mpvRuwRRuEdEB1Z-o7_qo,10784
60
60
  pyogrio/tests/test_arrow.py,sha256=lFEvDeAH7EoTYMzzQ6t7vwHL8C1fcs3nF4g9GhvOve4,6947
61
61
  pyogrio/tests/fixtures/test_multisurface.gpkg,sha256=sc6yaD6RxjqCGIT0ijBXgxEWYNMZNPLOetKvD5njGYY,98304
@@ -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: cp310-cp310-macosx_10_9_x86_64
5
5