pyogrio 0.7.1__cp311-cp311-macosx_11_0_arm64.whl → 0.8.0__cp311-cp311-macosx_11_0_arm64.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 (47) hide show
  1. pyogrio/.dylibs/{libgdal.33.3.7.2.dylib → libgdal.34.3.8.5.dylib} +0 -0
  2. pyogrio/__init__.py +4 -0
  3. pyogrio/_compat.py +7 -1
  4. pyogrio/_err.cpython-311-darwin.so +0 -0
  5. pyogrio/_err.pyx +7 -3
  6. pyogrio/_geometry.cpython-311-darwin.so +0 -0
  7. pyogrio/_io.cpython-311-darwin.so +0 -0
  8. pyogrio/_io.pyx +900 -242
  9. pyogrio/_ogr.cpython-311-darwin.so +0 -0
  10. pyogrio/_ogr.pxd +65 -12
  11. pyogrio/_ogr.pyx +8 -24
  12. pyogrio/_version.py +3 -3
  13. pyogrio/_vsi.cpython-311-darwin.so +0 -0
  14. pyogrio/_vsi.pxd +4 -0
  15. pyogrio/_vsi.pyx +140 -0
  16. pyogrio/core.py +43 -44
  17. pyogrio/gdal_data/GDAL-targets-release.cmake +3 -3
  18. pyogrio/gdal_data/GDAL-targets.cmake +10 -6
  19. pyogrio/gdal_data/GDALConfigVersion.cmake +3 -3
  20. pyogrio/gdal_data/gdalinfo_output.schema.json +2 -0
  21. pyogrio/gdal_data/gdalvrt.xsd +163 -0
  22. pyogrio/gdal_data/ogrinfo_output.schema.json +12 -1
  23. pyogrio/gdal_data/vcpkg.spdx.json +22 -22
  24. pyogrio/gdal_data/vcpkg_abi_info.txt +27 -26
  25. pyogrio/geopandas.py +131 -30
  26. pyogrio/proj_data/ITRF2008 +2 -2
  27. pyogrio/proj_data/proj-config-version.cmake +2 -2
  28. pyogrio/proj_data/proj-config.cmake +2 -1
  29. pyogrio/proj_data/proj-targets.cmake +13 -13
  30. pyogrio/proj_data/proj.db +0 -0
  31. pyogrio/proj_data/proj4-targets.cmake +13 -13
  32. pyogrio/proj_data/vcpkg.spdx.json +19 -41
  33. pyogrio/proj_data/vcpkg_abi_info.txt +14 -15
  34. pyogrio/raw.py +438 -116
  35. pyogrio/tests/conftest.py +75 -6
  36. pyogrio/tests/test_arrow.py +841 -7
  37. pyogrio/tests/test_core.py +99 -7
  38. pyogrio/tests/test_geopandas_io.py +744 -119
  39. pyogrio/tests/test_path.py +22 -3
  40. pyogrio/tests/test_raw_io.py +276 -50
  41. pyogrio/util.py +41 -19
  42. {pyogrio-0.7.1.dist-info → pyogrio-0.8.0.dist-info}/METADATA +3 -2
  43. {pyogrio-0.7.1.dist-info → pyogrio-0.8.0.dist-info}/RECORD +46 -44
  44. {pyogrio-0.7.1.dist-info → pyogrio-0.8.0.dist-info}/WHEEL +1 -1
  45. pyogrio/tests/win32.py +0 -86
  46. {pyogrio-0.7.1.dist-info → pyogrio-0.8.0.dist-info}/LICENSE +0 -0
  47. {pyogrio-0.7.1.dist-info → pyogrio-0.8.0.dist-info}/top_level.txt +0 -0
pyogrio/geopandas.py CHANGED
@@ -2,14 +2,14 @@ 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, PANDAS_GE_22
6
6
  from pyogrio.raw import (
7
7
  DRIVERS_NO_MIXED_SINGLE_MULTI,
8
8
  DRIVERS_NO_MIXED_DIMENSIONS,
9
- detect_write_driver,
10
9
  read,
11
10
  read_arrow,
12
11
  write,
12
+ _get_write_path_driver,
13
13
  )
14
14
  from pyogrio.errors import DataSourceError
15
15
  import warnings
@@ -33,7 +33,9 @@ def _stringify_path(path):
33
33
  def _try_parse_datetime(ser):
34
34
  import pandas as pd # only called when pandas is known to be installed
35
35
 
36
- if PANDAS_GE_20:
36
+ if PANDAS_GE_22:
37
+ datetime_kwargs = dict(format="ISO8601")
38
+ elif PANDAS_GE_20:
37
39
  datetime_kwargs = dict(format="ISO8601", errors="ignore")
38
40
  else:
39
41
  datetime_kwargs = dict(yearfirst=True)
@@ -48,10 +50,13 @@ def _try_parse_datetime(ser):
48
50
  try:
49
51
  res = pd.to_datetime(ser, **datetime_kwargs)
50
52
  except Exception:
51
- pass
53
+ res = ser
52
54
  # if object dtype, try parse as utc instead
53
55
  if res.dtype == "object":
54
- res = pd.to_datetime(ser, utc=True, **datetime_kwargs)
56
+ try:
57
+ res = pd.to_datetime(ser, utc=True, **datetime_kwargs)
58
+ except Exception:
59
+ pass
55
60
 
56
61
  if res.dtype != "object":
57
62
  # GDAL only supports ms precision, convert outputs to match.
@@ -101,13 +106,16 @@ def read_dataframe(
101
106
  of the layer in the data source. Defaults to first layer in data source.
102
107
  encoding : str, optional (default: None)
103
108
  If present, will be used as the encoding for reading string values from
104
- the data source, unless encoding can be inferred directly from the data
105
- source.
109
+ the data source. By default will automatically try to detect the native
110
+ encoding and decode to ``UTF-8``.
106
111
  columns : list-like, optional (default: all columns)
107
112
  List of column names to import from the data source. Column names must
108
113
  exactly match the names in the data source, and will be returned in
109
114
  the order they occur in the data source. To avoid reading any columns,
110
- pass an empty list-like.
115
+ pass an empty list-like. If combined with ``where`` parameter, must
116
+ include columns referenced in the ``where`` expression or the data may
117
+ not be correctly read; the data source may return empty results or
118
+ raise an exception (behavior varies by driver).
111
119
  read_geometry : bool, optional (default: True)
112
120
  If True, will read geometry into a GeoSeries. If False, a Pandas DataFrame
113
121
  will be returned instead.
@@ -152,7 +160,12 @@ def read_dataframe(
152
160
  the starting index is driver and file specific (e.g. typically 0 for
153
161
  Shapefile and 1 for GeoPackage, but can still depend on the specific
154
162
  file). The performance of reading a large number of features usings FIDs
155
- is also driver specific.
163
+ is also driver specific and depends on the value of ``use_arrow``. The order
164
+ of the rows returned is undefined. If you would like to sort based on FID, use
165
+ ``fid_as_index=True`` to have the index of the GeoDataFrame returned set to the
166
+ FIDs of the features read. If ``use_arrow=True``, the number of FIDs is limited
167
+ to 4997 for drivers with 'OGRSQL' as default SQL dialect. To read a larger
168
+ number of FIDs, set ``user_arrow=False``.
156
169
  sql : str, optional (default: None)
157
170
  The SQL statement to execute. Look at the sql_dialect parameter for more
158
171
  information on the syntax to use for the query. When combined with other
@@ -275,7 +288,11 @@ def read_dataframe(
275
288
  # Index not asked, no geometry column and no attribute columns: return empty
276
289
  return pd.DataFrame()
277
290
  elif geometry_name in df.columns:
278
- df["geometry"] = from_wkb(df.pop(geometry_name), crs=meta["crs"])
291
+ wkb_values = df.pop(geometry_name)
292
+ if PANDAS_GE_15 and wkb_values.dtype != object:
293
+ # for example ArrowDtype will otherwise create numpy array with pd.NA
294
+ wkb_values = wkb_values.to_numpy(na_value=None)
295
+ df["geometry"] = from_wkb(wkb_values, crs=meta["crs"])
279
296
  if force_2d:
280
297
  df["geometry"] = shapely.force_2d(df["geometry"])
281
298
  return gp.GeoDataFrame(df, geometry="geometry")
@@ -314,6 +331,7 @@ def write_dataframe(
314
331
  promote_to_multi=None,
315
332
  nan_as_null=True,
316
333
  append=False,
334
+ use_arrow=None,
317
335
  dataset_metadata=None,
318
336
  layer_metadata=None,
319
337
  metadata=None,
@@ -331,16 +349,20 @@ def write_dataframe(
331
349
  all values will be converted to strings to be written to the
332
350
  output file, except None and np.nan, which will be set to NULL
333
351
  in the output file.
334
- path : str
335
- path to file
336
- layer :str, optional (default: None)
337
- layer name
352
+ path : str or io.BytesIO
353
+ path to output file on writeable file system or an io.BytesIO object to
354
+ allow writing to memory
355
+ NOTE: support for writing to memory is limited to specific drivers.
356
+ layer : str, optional (default: None)
357
+ layer name to create. If writing to memory and layer name is not
358
+ provided, it layer name will be set to a UUID4 value.
338
359
  driver : string, optional (default: None)
339
- The OGR format driver used to write the vector file. By default write_dataframe
340
- attempts to infer driver from path.
360
+ The OGR format driver used to write the vector file. By default attempts
361
+ to infer driver from path. Must be provided to write to memory.
341
362
  encoding : str, optional (default: None)
342
363
  If present, will be used as the encoding for writing string values to
343
- the file.
364
+ the file. Use with caution, only certain drivers support encodings
365
+ other than UTF-8.
344
366
  geometry_type : string, optional (default: None)
345
367
  By default, the geometry type of the layer will be inferred from the
346
368
  data, after applying the promote_to_multi logic. If the data only contains a
@@ -372,8 +394,17 @@ def write_dataframe(
372
394
  append : bool, optional (default: False)
373
395
  If True, the data source specified by path already exists, and the
374
396
  driver supports appending to an existing data source, will cause the
375
- data to be appended to the existing records in the data source.
397
+ data to be appended to the existing records in the data source. Not
398
+ supported for writing to in-memory files.
376
399
  NOTE: append support is limited to specific drivers and GDAL versions.
400
+ use_arrow : bool, optional (default: False)
401
+ Whether to use Arrow as the transfer mechanism of the data to write
402
+ from Python to GDAL (requires GDAL >= 3.8 and `pyarrow` to be
403
+ installed). When enabled, this provides a further speed-up.
404
+ Defaults to False, but this default can also be globally overridden
405
+ by setting the ``PYOGRIO_USE_ARROW=1`` environment variable.
406
+ Using Arrow does not support writing an object-dtype column with
407
+ mixed types.
377
408
  dataset_metadata : dict, optional (default: None)
378
409
  Metadata to be stored at the dataset level in the output file; limited
379
410
  to drivers that support writing metadata, such as GPKG, and silently
@@ -385,10 +416,10 @@ def write_dataframe(
385
416
  metadata : dict, optional (default: None)
386
417
  alias of layer_metadata
387
418
  dataset_options : dict, optional
388
- Dataset creation option (format specific) passed to OGR. Specify as
419
+ Dataset creation options (format specific) passed to OGR. Specify as
389
420
  a key-value dictionary.
390
421
  layer_options : dict, optional
391
- Layer creation option (format specific) passed to OGR. Specify as
422
+ Layer creation options (format specific) passed to OGR. Specify as
392
423
  a key-value dictionary.
393
424
  **kwargs
394
425
  Additional driver-specific dataset or layer creation options passed
@@ -408,13 +439,12 @@ def write_dataframe(
408
439
  import pandas as pd
409
440
  from pyproj.enums import WktVersion # if geopandas is available so is pyproj
410
441
 
411
- path = str(path)
412
-
413
442
  if not isinstance(df, pd.DataFrame):
414
443
  raise ValueError("'df' must be a DataFrame or GeoDataFrame")
415
444
 
416
- if driver is None:
417
- driver = detect_write_driver(path)
445
+ if use_arrow is None:
446
+ use_arrow = bool(int(os.environ.get("PYOGRIO_USE_ARROW", "0")))
447
+ path, driver = _get_write_path_driver(path, driver, append=append)
418
448
 
419
449
  geometry_columns = df.columns[df.dtypes == "geometry"]
420
450
  if len(geometry_columns) > 1:
@@ -452,7 +482,7 @@ def write_dataframe(
452
482
  # https://gdal.org/development/rfc/rfc56_millisecond_precision.html#core-changes
453
483
  # Convert each row offset to a signed multiple of 15m and add to GMT value
454
484
  gdal_offset_representation = tz_offset // pd.Timedelta("15m") + 100
455
- gdal_tz_offsets[name] = gdal_offset_representation
485
+ gdal_tz_offsets[name] = gdal_offset_representation.values
456
486
  else:
457
487
  values = col.values
458
488
  if isinstance(values, pd.api.extensions.ExtensionArray):
@@ -469,6 +499,9 @@ def write_dataframe(
469
499
  field_mask.append(None)
470
500
 
471
501
  # Determine geometry_type and/or promote_to_multi
502
+ if geometry_column is not None:
503
+ geometry_types_all = geometry.geom_type
504
+
472
505
  if geometry_column is not None and (
473
506
  geometry_type is None or promote_to_multi is None
474
507
  ):
@@ -478,9 +511,7 @@ def write_dataframe(
478
511
  # If there is data, infer layer geometry type + promote_to_multi
479
512
  if not df.empty:
480
513
  # None/Empty geometries sometimes report as Z incorrectly, so ignore them
481
- has_z_arr = geometry[
482
- (geometry != np.array(None)) & (~geometry.is_empty)
483
- ].has_z
514
+ has_z_arr = geometry[geometry.notna() & (~geometry.is_empty)].has_z
484
515
  has_z = has_z_arr.any()
485
516
  all_z = has_z_arr.all()
486
517
 
@@ -489,7 +520,7 @@ def write_dataframe(
489
520
  f"Mixed 2D and 3D coordinates are not supported by {driver}"
490
521
  )
491
522
 
492
- geometry_types = pd.Series(geometry.type.unique()).dropna().values
523
+ geometry_types = pd.Series(geometry_types_all.unique()).dropna().values
493
524
  if len(geometry_types) == 1:
494
525
  tmp_geometry_type = geometry_types[0]
495
526
  if promote_to_multi and tmp_geometry_type in (
@@ -533,10 +564,80 @@ def write_dataframe(
533
564
  # if possible use EPSG codes instead
534
565
  epsg = geometry.crs.to_epsg()
535
566
  if epsg:
536
- crs = f"EPSG:{epsg}"
567
+ crs = f"EPSG:{epsg}" # noqa: E231
537
568
  else:
538
569
  crs = geometry.crs.to_wkt(WktVersion.WKT1_GDAL)
539
570
 
571
+ if use_arrow:
572
+ import pyarrow as pa
573
+ from pyogrio.raw import write_arrow
574
+
575
+ if geometry_column is not None:
576
+ # Convert to multi type
577
+ if promote_to_multi:
578
+ import shapely
579
+
580
+ mask_points = geometry_types_all == "Point"
581
+ mask_linestrings = geometry_types_all == "LineString"
582
+ mask_polygons = geometry_types_all == "Polygon"
583
+
584
+ if mask_points.any():
585
+ geometry[mask_points] = shapely.multipoints(
586
+ np.atleast_2d(geometry[mask_points]), axis=0
587
+ )
588
+
589
+ if mask_linestrings.any():
590
+ geometry[mask_linestrings] = shapely.multilinestrings(
591
+ np.atleast_2d(geometry[mask_linestrings]), axis=0
592
+ )
593
+
594
+ if mask_polygons.any():
595
+ geometry[mask_polygons] = shapely.multipolygons(
596
+ np.atleast_2d(geometry[mask_polygons]), axis=0
597
+ )
598
+
599
+ geometry = to_wkb(geometry.values)
600
+ df = df.copy(deep=False)
601
+ # convert to plain DataFrame to avoid warning from geopandas about
602
+ # writing non-geometries to the geometry column
603
+ df = pd.DataFrame(df, copy=False)
604
+ df[geometry_column] = geometry
605
+
606
+ table = pa.Table.from_pandas(df, preserve_index=False)
607
+
608
+ if geometry_column is not None:
609
+ # ensure that the geometry column is binary (for all-null geometries,
610
+ # this could be a wrong type)
611
+ geom_field = table.schema.field(geometry_column)
612
+ if not (
613
+ pa.types.is_binary(geom_field.type)
614
+ or pa.types.is_large_binary(geom_field.type)
615
+ ):
616
+ table = table.set_column(
617
+ table.schema.get_field_index(geometry_column),
618
+ geom_field.with_type(pa.binary()),
619
+ table[geometry_column].cast(pa.binary()),
620
+ )
621
+
622
+ write_arrow(
623
+ table,
624
+ path,
625
+ layer=layer,
626
+ driver=driver,
627
+ geometry_name=geometry_column,
628
+ geometry_type=geometry_type,
629
+ crs=crs,
630
+ encoding=encoding,
631
+ append=append,
632
+ dataset_metadata=dataset_metadata,
633
+ layer_metadata=layer_metadata,
634
+ metadata=metadata,
635
+ dataset_options=dataset_options,
636
+ layer_options=layer_options,
637
+ **kwargs,
638
+ )
639
+ return
640
+
540
641
  # If there is geometry data, prepare it to be written
541
642
  if geometry_column is not None:
542
643
  geometry = to_wkb(geometry.values)
@@ -42,7 +42,7 @@
42
42
 
43
43
  <CARB> +proj=helmert +drx=0.000049 +dry=-0.001088 +drz=0.000664 +convention=position_vector
44
44
 
45
- <EURA> +proj=helmert +drx=-0.000083 +dry=0.000534 +drz=0.000750 +convention=position_vector
45
+ <EURA> +proj=helmert +drx=-0.000083 +dry=-0.000534 +drz=0.000750 +convention=position_vector
46
46
 
47
47
  <INDI> +proj=helmert +drx=0.001232 +dry=0.000303 +drz=0.001540 +convention=position_vector
48
48
 
@@ -75,7 +75,7 @@
75
75
 
76
76
  <CARB_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000049 +dry=-0.001088 +drz=0.000664 +convention=position_vector
77
77
 
78
- <EURA_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000083 +dry=0.000534 +drz=0.000750 +convention=position_vector
78
+ <EURA_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000083 +dry=-0.000534 +drz=0.000750 +convention=position_vector
79
79
 
80
80
  <INDI_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001232 +dry=0.000303 +drz=0.001540 +convention=position_vector
81
81
 
@@ -1,8 +1,8 @@
1
1
  # Version checking for PROJ
2
2
 
3
- set (PACKAGE_VERSION "9.3.0")
3
+ set (PACKAGE_VERSION "9.4.0")
4
4
  set (PACKAGE_VERSION_MAJOR "9")
5
- set (PACKAGE_VERSION_MINOR "3")
5
+ set (PACKAGE_VERSION_MINOR "4")
6
6
  set (PACKAGE_VERSION_PATCH "0")
7
7
 
8
8
  # These variable definitions parallel those in PROJ's
@@ -27,7 +27,8 @@ if("TRUE")
27
27
  endif()
28
28
  cmake_policy(POP)
29
29
 
30
- find_dependency(unofficial-sqlite3 CONFIG)
30
+ find_dependency(SQLite3)
31
+
31
32
  if(DEFINED PROJ_CONFIG_FIND_TIFF_DEP)
32
33
  find_dependency(TIFF)
33
34
  endif()
@@ -3,11 +3,11 @@
3
3
  if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
4
4
  message(FATAL_ERROR "CMake >= 2.8.0 required")
5
5
  endif()
6
- if(CMAKE_VERSION VERSION_LESS "2.8.3")
7
- message(FATAL_ERROR "CMake >= 2.8.3 required")
6
+ if(CMAKE_VERSION VERSION_LESS "2.8.12")
7
+ message(FATAL_ERROR "CMake >= 2.8.12 required")
8
8
  endif()
9
9
  cmake_policy(PUSH)
10
- cmake_policy(VERSION 2.8.3...3.25)
10
+ cmake_policy(VERSION 2.8.12...3.27)
11
11
  #----------------------------------------------------------------
12
12
  # Generated CMake target import file.
13
13
  #----------------------------------------------------------------
@@ -60,13 +60,9 @@ add_library(PROJ::proj STATIC IMPORTED)
60
60
  set_target_properties(PROJ::proj PROPERTIES
61
61
  INTERFACE_COMPILE_DEFINITIONS "PROJ_DLL="
62
62
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
63
- INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:-lm>;\$<LINK_ONLY:-ldl>;\$<LINK_ONLY:unofficial::sqlite3::sqlite3>;\$<LINK_ONLY:>;\$<LINK_ONLY:TIFF::TIFF>;\$<LINK_ONLY:CURL::libcurl>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:ws2_32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:wldap32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:advapi32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:crypt32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:normaliz>>"
63
+ INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:-lm>;\$<LINK_ONLY:-ldl>;\$<LINK_ONLY:SQLite::SQLite3>;\$<LINK_ONLY:>;\$<LINK_ONLY:TIFF::TIFF>;\$<LINK_ONLY:CURL::libcurl>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:ws2_32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:wldap32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:advapi32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:crypt32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:normaliz>>"
64
64
  )
65
65
 
66
- if(CMAKE_VERSION VERSION_LESS 2.8.12)
67
- message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.")
68
- endif()
69
-
70
66
  # Load information for each installed configuration.
71
67
  file(GLOB _cmake_config_files "${CMAKE_CURRENT_LIST_DIR}/proj-targets-*.cmake")
72
68
  foreach(_cmake_config_file IN LISTS _cmake_config_files)
@@ -80,9 +76,12 @@ set(_IMPORT_PREFIX)
80
76
 
81
77
  # Loop over all imported files and verify that they actually exist
82
78
  foreach(_cmake_target IN LISTS _cmake_import_check_targets)
83
- foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}")
84
- if(NOT EXISTS "${_cmake_file}")
85
- message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file
79
+ if(CMAKE_VERSION VERSION_LESS "3.28"
80
+ OR NOT DEFINED _cmake_import_check_xcframework_for_${_cmake_target}
81
+ OR NOT IS_DIRECTORY "${_cmake_import_check_xcframework_for_${_cmake_target}}")
82
+ foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}")
83
+ if(NOT EXISTS "${_cmake_file}")
84
+ message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file
86
85
  \"${_cmake_file}\"
87
86
  but this file does not exist. Possible reasons include:
88
87
  * The file was deleted, renamed, or moved to another location.
@@ -91,8 +90,9 @@ but this file does not exist. Possible reasons include:
91
90
  \"${CMAKE_CURRENT_LIST_FILE}\"
92
91
  but not all the files it references.
93
92
  ")
94
- endif()
95
- endforeach()
93
+ endif()
94
+ endforeach()
95
+ endif()
96
96
  unset(_cmake_file)
97
97
  unset("_cmake_import_check_files_for_${_cmake_target}")
98
98
  endforeach()
pyogrio/proj_data/proj.db CHANGED
Binary file
@@ -3,11 +3,11 @@
3
3
  if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
4
4
  message(FATAL_ERROR "CMake >= 2.8.0 required")
5
5
  endif()
6
- if(CMAKE_VERSION VERSION_LESS "2.8.3")
7
- message(FATAL_ERROR "CMake >= 2.8.3 required")
6
+ if(CMAKE_VERSION VERSION_LESS "2.8.12")
7
+ message(FATAL_ERROR "CMake >= 2.8.12 required")
8
8
  endif()
9
9
  cmake_policy(PUSH)
10
- cmake_policy(VERSION 2.8.3...3.25)
10
+ cmake_policy(VERSION 2.8.12...3.27)
11
11
  #----------------------------------------------------------------
12
12
  # Generated CMake target import file.
13
13
  #----------------------------------------------------------------
@@ -60,13 +60,9 @@ add_library(PROJ4::proj STATIC IMPORTED)
60
60
  set_target_properties(PROJ4::proj PROPERTIES
61
61
  INTERFACE_COMPILE_DEFINITIONS "PROJ_DLL="
62
62
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
63
- INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:-lm>;\$<LINK_ONLY:-ldl>;\$<LINK_ONLY:unofficial::sqlite3::sqlite3>;\$<LINK_ONLY:>;\$<LINK_ONLY:TIFF::TIFF>;\$<LINK_ONLY:CURL::libcurl>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:ws2_32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:wldap32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:advapi32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:crypt32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:normaliz>>"
63
+ INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:-lm>;\$<LINK_ONLY:-ldl>;\$<LINK_ONLY:SQLite::SQLite3>;\$<LINK_ONLY:>;\$<LINK_ONLY:TIFF::TIFF>;\$<LINK_ONLY:CURL::libcurl>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:ws2_32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:wldap32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:advapi32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:crypt32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:normaliz>>"
64
64
  )
65
65
 
66
- if(CMAKE_VERSION VERSION_LESS 2.8.12)
67
- message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.")
68
- endif()
69
-
70
66
  # Load information for each installed configuration.
71
67
  file(GLOB _cmake_config_files "${CMAKE_CURRENT_LIST_DIR}/proj4-targets-*.cmake")
72
68
  foreach(_cmake_config_file IN LISTS _cmake_config_files)
@@ -80,9 +76,12 @@ set(_IMPORT_PREFIX)
80
76
 
81
77
  # Loop over all imported files and verify that they actually exist
82
78
  foreach(_cmake_target IN LISTS _cmake_import_check_targets)
83
- foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}")
84
- if(NOT EXISTS "${_cmake_file}")
85
- message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file
79
+ if(CMAKE_VERSION VERSION_LESS "3.28"
80
+ OR NOT DEFINED _cmake_import_check_xcframework_for_${_cmake_target}
81
+ OR NOT IS_DIRECTORY "${_cmake_import_check_xcframework_for_${_cmake_target}}")
82
+ foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}")
83
+ if(NOT EXISTS "${_cmake_file}")
84
+ message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file
86
85
  \"${_cmake_file}\"
87
86
  but this file does not exist. Possible reasons include:
88
87
  * The file was deleted, renamed, or moved to another location.
@@ -91,8 +90,9 @@ but this file does not exist. Possible reasons include:
91
90
  \"${CMAKE_CURRENT_LIST_FILE}\"
92
91
  but not all the files it references.
93
92
  ")
94
- endif()
95
- endforeach()
93
+ endif()
94
+ endforeach()
95
+ endif()
96
96
  unset(_cmake_file)
97
97
  unset("_cmake_import_check_files_for_${_cmake_target}")
98
98
  endforeach()
@@ -3,13 +3,13 @@
3
3
  "spdxVersion": "SPDX-2.2",
4
4
  "dataLicense": "CC0-1.0",
5
5
  "SPDXID": "SPDXRef-DOCUMENT",
6
- "documentNamespace": "https://spdx.org/spdxdocs/proj-arm64-osx-dynamic-release-9.3.0#1-777769c9-27ed-4376-95e9-2d8262911175",
7
- "name": "proj:arm64-osx-dynamic-release@9.3.0#1 862df2dd95e4409e4bce921415a7369b8224cb98a16d94c501311aa8b7aeee25",
6
+ "documentNamespace": "https://spdx.org/spdxdocs/proj-arm64-osx-dynamic-release-9.4.0-9491cde3-4c6b-4488-85dd-f6d39095c75d",
7
+ "name": "proj:arm64-osx-dynamic-release@9.4.0 ae315e03ec207af28b043c414cbeaeef6f4674e495ebabcedb1050d41ed50047",
8
8
  "creationInfo": {
9
9
  "creators": [
10
- "Tool: vcpkg-ac02a9f660977426b8ec6392919fbb1d51b10998"
10
+ "Tool: vcpkg-710a3116bbd615864eef5f9010af178034cb9b44"
11
11
  ],
12
- "created": "2023-10-20T03:16:33Z"
12
+ "created": "2024-04-17T23:25:17Z"
13
13
  },
14
14
  "relationships": [
15
15
  {
@@ -47,11 +47,6 @@
47
47
  "relationshipType": "CONTAINS",
48
48
  "relatedSpdxElement": "SPDXRef-file-5"
49
49
  },
50
- {
51
- "spdxElementId": "SPDXRef-port",
52
- "relationshipType": "CONTAINS",
53
- "relatedSpdxElement": "SPDXRef-file-6"
54
- },
55
50
  {
56
51
  "spdxElementId": "SPDXRef-binary",
57
52
  "relationshipType": "GENERATED_FROM",
@@ -86,19 +81,14 @@
86
81
  "spdxElementId": "SPDXRef-file-5",
87
82
  "relationshipType": "CONTAINED_BY",
88
83
  "relatedSpdxElement": "SPDXRef-port"
89
- },
90
- {
91
- "spdxElementId": "SPDXRef-file-6",
92
- "relationshipType": "CONTAINED_BY",
93
- "relatedSpdxElement": "SPDXRef-port"
94
84
  }
95
85
  ],
96
86
  "packages": [
97
87
  {
98
88
  "name": "proj",
99
89
  "SPDXID": "SPDXRef-port",
100
- "versionInfo": "9.3.0#1",
101
- "downloadLocation": "git+https://github.com/Microsoft/vcpkg@6e31164b906c96903b8352e6a9211ae019672ac4",
90
+ "versionInfo": "9.4.0",
91
+ "downloadLocation": "git+https://github.com/Microsoft/vcpkg@62e9ace469641b907291184ebc7e76d96f629881",
102
92
  "homepage": "https://proj.org/",
103
93
  "licenseConcluded": "MIT",
104
94
  "licenseDeclared": "NOASSERTION",
@@ -109,7 +99,7 @@
109
99
  {
110
100
  "name": "proj:arm64-osx-dynamic-release",
111
101
  "SPDXID": "SPDXRef-binary",
112
- "versionInfo": "862df2dd95e4409e4bce921415a7369b8224cb98a16d94c501311aa8b7aeee25",
102
+ "versionInfo": "ae315e03ec207af28b043c414cbeaeef6f4674e495ebabcedb1050d41ed50047",
113
103
  "downloadLocation": "NONE",
114
104
  "licenseConcluded": "MIT",
115
105
  "licenseDeclared": "NOASSERTION",
@@ -119,21 +109,21 @@
119
109
  {
120
110
  "SPDXID": "SPDXRef-resource-1",
121
111
  "name": "OSGeo/PROJ",
122
- "downloadLocation": "git+https://github.com/OSGeo/PROJ@9.3.0",
112
+ "downloadLocation": "git+https://github.com/OSGeo/PROJ@9.4.0",
123
113
  "licenseConcluded": "NOASSERTION",
124
114
  "licenseDeclared": "NOASSERTION",
125
115
  "copyrightText": "NOASSERTION",
126
116
  "checksums": [
127
117
  {
128
118
  "algorithm": "SHA512",
129
- "checksumValue": "ee8170780c70e09efa4bc3fcf6ee9a2c15554a05a8562617fc5e9698fb33c6c0af380dd0de836db91955eb35623ded1fec67c6afe5fd3b692fcf4f4b3e4f0658"
119
+ "checksumValue": "5bc53723a81d9950599d6c47a837de5e9052aa56f943951e3ad0911cbeb71585bac648f37b9b626f32bb5d0b481ce5aef9be0833910e53b4b015b573808b8981"
130
120
  }
131
121
  ]
132
122
  }
133
123
  ],
134
124
  "files": [
135
125
  {
136
- "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/6e31164b906c96903b8352e6a9211ae019672ac4/usage",
126
+ "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/usage",
137
127
  "SPDXID": "SPDXRef-file-0",
138
128
  "checksums": [
139
129
  {
@@ -145,68 +135,56 @@
145
135
  "copyrightText": "NOASSERTION"
146
136
  },
147
137
  {
148
- "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/6e31164b906c96903b8352e6a9211ae019672ac4/portfile.cmake",
138
+ "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/portfile.cmake",
149
139
  "SPDXID": "SPDXRef-file-1",
150
140
  "checksums": [
151
141
  {
152
142
  "algorithm": "SHA256",
153
- "checksumValue": "2d5a16a458eb429dfffb41c4e40c1815bfe58d2cdecff06ab5417fddd0cc82a5"
143
+ "checksumValue": "58b4048cfc81891c1e32e41bc00b52ea7ae2821bd577b46ab63d2c962ef8747d"
154
144
  }
155
145
  ],
156
146
  "licenseConcluded": "NOASSERTION",
157
147
  "copyrightText": "NOASSERTION"
158
148
  },
159
149
  {
160
- "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/6e31164b906c96903b8352e6a9211ae019672ac4/fix-uwp.patch",
150
+ "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/vcpkg.json",
161
151
  "SPDXID": "SPDXRef-file-2",
162
152
  "checksums": [
163
153
  {
164
154
  "algorithm": "SHA256",
165
- "checksumValue": "8ca726f9cca8465fb5efdcff7f2dc0c9247fa0782f0bd1d1384d7912afb7c3b8"
155
+ "checksumValue": "d31d1d3beb5ef0890e4b5db1ee5b72a925a58aa53bfaee688d4b5af1cea2bba4"
166
156
  }
167
157
  ],
168
158
  "licenseConcluded": "NOASSERTION",
169
159
  "copyrightText": "NOASSERTION"
170
160
  },
171
161
  {
172
- "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/6e31164b906c96903b8352e6a9211ae019672ac4/vcpkg.json",
162
+ "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/remove_toolset_restriction.patch",
173
163
  "SPDXID": "SPDXRef-file-3",
174
164
  "checksums": [
175
165
  {
176
166
  "algorithm": "SHA256",
177
- "checksumValue": "34915344411521c3bf421a755e44461aecfbb6567f3e0f9b619ea0ea3eb0ab89"
167
+ "checksumValue": "25c1c986673bd539f5ec920684a08b38d0d37d9e24b6793e5b79dbd717bde04e"
178
168
  }
179
169
  ],
180
170
  "licenseConcluded": "NOASSERTION",
181
171
  "copyrightText": "NOASSERTION"
182
172
  },
183
173
  {
184
- "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/6e31164b906c96903b8352e6a9211ae019672ac4/remove_toolset_restriction.patch",
174
+ "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/fix-proj4-targets-cmake.patch",
185
175
  "SPDXID": "SPDXRef-file-4",
186
176
  "checksums": [
187
177
  {
188
178
  "algorithm": "SHA256",
189
- "checksumValue": "25c1c986673bd539f5ec920684a08b38d0d37d9e24b6793e5b79dbd717bde04e"
179
+ "checksumValue": "d76e1d419d3367dda3381fd11a637f3465bc838d611fa8ceaca20048c1b3cd6e"
190
180
  }
191
181
  ],
192
182
  "licenseConcluded": "NOASSERTION",
193
183
  "copyrightText": "NOASSERTION"
194
184
  },
195
185
  {
196
- "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/6e31164b906c96903b8352e6a9211ae019672ac4/fix-proj4-targets-cmake.patch",
186
+ "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/fix-win-output-name.patch",
197
187
  "SPDXID": "SPDXRef-file-5",
198
- "checksums": [
199
- {
200
- "algorithm": "SHA256",
201
- "checksumValue": "0bcc51d69830a495a955cb97a8a1f91d9cec0410cbd8198f82f4fe60169d696f"
202
- }
203
- ],
204
- "licenseConcluded": "NOASSERTION",
205
- "copyrightText": "NOASSERTION"
206
- },
207
- {
208
- "fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/6e31164b906c96903b8352e6a9211ae019672ac4/fix-win-output-name.patch",
209
- "SPDXID": "SPDXRef-file-6",
210
188
  "checksums": [
211
189
  {
212
190
  "algorithm": "SHA256",