GDAL 3.11.0__tar.gz → 3.11.2__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 (138) hide show
  1. {gdal-3.11.0 → gdal-3.11.2}/PKG-INFO +8 -5
  2. {gdal-3.11.0 → gdal-3.11.2}/README.rst +1 -1
  3. {gdal-3.11.0 → gdal-3.11.2}/extensions/gdal_array_wrap.cpp +4 -0
  4. {gdal-3.11.0 → gdal-3.11.2}/extensions/gdal_wrap.cpp +35 -14
  5. {gdal-3.11.0 → gdal-3.11.2}/extensions/ogr_wrap.cpp +68 -46
  6. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/GDAL.egg-info/PKG-INFO +8 -5
  7. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/__init__.py +1 -1
  8. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/gdal2tiles.py +1 -1
  9. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/ogrmerge.py +15 -0
  10. {gdal-3.11.0 → gdal-3.11.2}/osgeo/ogr.py +3 -2
  11. {gdal-3.11.0 → gdal-3.11.2}/pyproject.toml +2 -3
  12. {gdal-3.11.0 → gdal-3.11.2}/setup.py +9 -2
  13. {gdal-3.11.0 → gdal-3.11.2}/extensions/gdalconst_wrap.c +0 -0
  14. {gdal-3.11.0 → gdal-3.11.2}/extensions/gnm_wrap.cpp +0 -0
  15. {gdal-3.11.0 → gdal-3.11.2}/extensions/osr_wrap.cpp +0 -0
  16. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/GDAL.egg-info/SOURCES.txt +0 -0
  17. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/GDAL.egg-info/dependency_links.txt +0 -0
  18. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/GDAL.egg-info/entry_points.txt +0 -0
  19. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/GDAL.egg-info/not-zip-safe +0 -0
  20. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/GDAL.egg-info/requires.txt +0 -0
  21. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/GDAL.egg-info/top_level.txt +0 -0
  22. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/auxiliary/__init__.py +0 -0
  23. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/auxiliary/array_util.py +0 -0
  24. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/auxiliary/base.py +0 -0
  25. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/auxiliary/batch_creator.py +0 -0
  26. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/auxiliary/color_palette.py +0 -0
  27. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/auxiliary/color_table.py +0 -0
  28. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/auxiliary/extent_util.py +0 -0
  29. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/auxiliary/gdal_argparse.py +0 -0
  30. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/auxiliary/numpy_util.py +0 -0
  31. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/auxiliary/osr_util.py +0 -0
  32. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/auxiliary/progress.py +0 -0
  33. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/auxiliary/raster_creation.py +0 -0
  34. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/auxiliary/rectangle.py +0 -0
  35. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/auxiliary/util.py +0 -0
  36. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/gdal2xyz.py +0 -0
  37. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/gdal_calc.py +0 -0
  38. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/gdal_edit.py +0 -0
  39. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/gdal_fillnodata.py +0 -0
  40. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/gdal_merge.py +0 -0
  41. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/gdal_pansharpen.py +0 -0
  42. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/gdal_polygonize.py +0 -0
  43. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/gdal_proximity.py +0 -0
  44. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/gdal_retile.py +0 -0
  45. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/gdal_sieve.py +0 -0
  46. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/gdalattachpct.py +0 -0
  47. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/gdalcompare.py +0 -0
  48. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/gdalmove.py +0 -0
  49. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/ogr_layer_algebra.py +0 -0
  50. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/pct2rgb.py +0 -0
  51. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/rgb2pct.py +0 -0
  52. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/__init__.py +0 -0
  53. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/assemblepoly.py +0 -0
  54. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/build_jp2_from_xml.py +0 -0
  55. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/classify.py +0 -0
  56. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/crs2crs2grid.py +0 -0
  57. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/densify.py +0 -0
  58. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/dump_jp2.py +0 -0
  59. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/epsg_tr.py +0 -0
  60. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/esri2wkt.py +0 -0
  61. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/fft.py +0 -0
  62. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/fix_gpkg.py +0 -0
  63. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gcps2ogr.py +0 -0
  64. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gcps2vec.py +0 -0
  65. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gcps2wld.py +0 -0
  66. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdal2grd.py +0 -0
  67. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdal_auth.py +0 -0
  68. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdal_cp.py +0 -0
  69. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdal_create_pdf.py +0 -0
  70. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdal_ls.py +0 -0
  71. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdal_lut.py +0 -0
  72. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdal_minmax_location.py +0 -0
  73. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdal_mkdir.py +0 -0
  74. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdal_remove_towgs84.py +0 -0
  75. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdal_rm.py +0 -0
  76. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdal_rmdir.py +0 -0
  77. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdal_vrtmerge.py +0 -0
  78. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdalbuildvrtofvrt.py +0 -0
  79. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdalchksum.py +0 -0
  80. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdalcopyproj.py +0 -0
  81. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdalfilter.py +0 -0
  82. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdalident.py +0 -0
  83. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdalimport.py +0 -0
  84. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdalinfo.py +0 -0
  85. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/gdallocationinfo.py +0 -0
  86. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/get_soundg.py +0 -0
  87. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/histrep.py +0 -0
  88. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/hsv_merge.py +0 -0
  89. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/jpeg_in_tiff_extract.py +0 -0
  90. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/load2odbc.py +0 -0
  91. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/loslas2ntv2.py +0 -0
  92. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/magphase.py +0 -0
  93. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/make_fuzzer_friendly_archive.py +0 -0
  94. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/mkgraticule.py +0 -0
  95. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/ogr2vrt.py +0 -0
  96. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/ogr_build_junction_table.py +0 -0
  97. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/ogr_dispatch.py +0 -0
  98. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/ogrinfo.py +0 -0
  99. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/ogrupdate.py +0 -0
  100. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/rel.py +0 -0
  101. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/tigerpoly.py +0 -0
  102. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/tile_extent_from_raster.py +0 -0
  103. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/tolatlong.py +0 -0
  104. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/val_repl.py +0 -0
  105. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/validate_cloud_optimized_geotiff.py +0 -0
  106. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/validate_geoparquet.py +0 -0
  107. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/validate_gpkg.py +0 -0
  108. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/validate_jp2.py +0 -0
  109. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/vec_tr.py +0 -0
  110. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/vec_tr_spat.py +0 -0
  111. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/osgeo_utils/samples/wcs_virtds_params.py +0 -0
  112. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/gdal2tiles.py +0 -0
  113. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/gdal2xyz.py +0 -0
  114. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/gdal_calc.py +0 -0
  115. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/gdal_edit.py +0 -0
  116. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/gdal_fillnodata.py +0 -0
  117. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/gdal_merge.py +0 -0
  118. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/gdal_pansharpen.py +0 -0
  119. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/gdal_polygonize.py +0 -0
  120. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/gdal_proximity.py +0 -0
  121. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/gdal_retile.py +0 -0
  122. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/gdal_sieve.py +0 -0
  123. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/gdalattachpct.py +0 -0
  124. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/gdalcompare.py +0 -0
  125. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/gdalmove.py +0 -0
  126. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/ogr_layer_algebra.py +0 -0
  127. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/ogrmerge.py +0 -0
  128. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/pct2rgb.py +0 -0
  129. {gdal-3.11.0 → gdal-3.11.2}/gdal-utils/scripts/rgb2pct.py +0 -0
  130. {gdal-3.11.0 → gdal-3.11.2}/osgeo/__init__.py +0 -0
  131. {gdal-3.11.0 → gdal-3.11.2}/osgeo/gdal.py +0 -0
  132. {gdal-3.11.0 → gdal-3.11.2}/osgeo/gdal_array.py +0 -0
  133. {gdal-3.11.0 → gdal-3.11.2}/osgeo/gdal_fsspec.py +0 -0
  134. {gdal-3.11.0 → gdal-3.11.2}/osgeo/gdalconst.py +0 -0
  135. {gdal-3.11.0 → gdal-3.11.2}/osgeo/gdalnumeric.py +0 -0
  136. {gdal-3.11.0 → gdal-3.11.2}/osgeo/gnm.py +0 -0
  137. {gdal-3.11.0 → gdal-3.11.2}/osgeo/osr.py +0 -0
  138. {gdal-3.11.0 → gdal-3.11.2}/setup.cfg +0 -0
@@ -1,13 +1,13 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: GDAL
3
- Version: 3.11.0
3
+ Version: 3.11.2
4
4
  Summary: GDAL: Geospatial Data Abstraction Library
5
5
  Home-page: http://www.gdal.org
6
6
  Author: Frank Warmerdam, Howard Butler, Even Rouault
7
7
  Author-email: warmerdam@pobox.com
8
8
  Maintainer: GDAL contributors
9
9
  Maintainer-email: GDAL contributors <gdal-dev@lists.osgeo.org>
10
- License: MIT
10
+ License-Expression: MIT
11
11
  Project-URL: Homepage, https://gdal.org
12
12
  Project-URL: Documentation, https://gdal.org
13
13
  Project-URL: Repository, https://github.com/OSGeo/GDAL.git
@@ -17,7 +17,6 @@ Keywords: gis,raster,vector
17
17
  Classifier: Development Status :: 5 - Production/Stable
18
18
  Classifier: Intended Audience :: Developers
19
19
  Classifier: Intended Audience :: Science/Research
20
- Classifier: License :: OSI Approved :: MIT License
21
20
  Classifier: Operating System :: OS Independent
22
21
  Classifier: Programming Language :: Python :: 3
23
22
  Classifier: Programming Language :: C
@@ -28,6 +27,10 @@ Requires-Python: >=3.8.0
28
27
  Description-Content-Type: text/x-rst
29
28
  Provides-Extra: numpy
30
29
  Requires-Dist: numpy>1.0.0; extra == "numpy"
30
+ Dynamic: author-email
31
+ Dynamic: home-page
32
+ Dynamic: maintainer
33
+ Dynamic: requires-python
31
34
 
32
35
 
33
36
  GDAL/OGR in Python
@@ -60,7 +63,7 @@ special about gdal.)
60
63
 
61
64
  * SWIG (4 or greater).
62
65
 
63
- * libgdal (3.11.0 or greater).
66
+ * libgdal (3.11.2 or greater).
64
67
 
65
68
  * numpy (1.0.0 or greater). This is not force-required by the build,
66
69
  but many examples and utilities will not work without it. At least
@@ -29,7 +29,7 @@ special about gdal.)
29
29
 
30
30
  * SWIG (4 or greater).
31
31
 
32
- * libgdal (3.11.0 or greater).
32
+ * libgdal (3.11.2 or greater).
33
33
 
34
34
  * numpy (1.0.0 or greater). This is not force-required by the build,
35
35
  but many examples and utilities will not work without it. At least
@@ -8703,7 +8703,11 @@ SWIG_init(void) {
8703
8703
  SWIG_InstallConstants(d,swig_const_table);
8704
8704
 
8705
8705
 
8706
+ #if SWIG_VERSION >= 0x040400
8707
+ import_array1(-1);
8708
+ #else
8706
8709
  import_array();
8710
+ #endif
8707
8711
  PyDateTime_IMPORT;
8708
8712
  GDALRegister_NUMPY();
8709
8713
 
@@ -6242,7 +6242,14 @@ SWIGINTERN OGRFieldDomainShadow *GDALDatasetShadow_GetFieldDomain(GDALDatasetSha
6242
6242
  return (OGRFieldDomainShadow*) GDALDatasetGetFieldDomain(self, name);
6243
6243
  }
6244
6244
  SWIGINTERN bool GDALDatasetShadow_AddFieldDomain(GDALDatasetShadow *self,OGRFieldDomainShadow *fieldDomain){
6245
- return GDALDatasetAddFieldDomain(self, (OGRFieldDomainH)fieldDomain, NULL);
6245
+ char* pszReason = NULL;
6246
+ if( !GDALDatasetAddFieldDomain(self, (OGRFieldDomainH)fieldDomain, &pszReason) )
6247
+ {
6248
+ CPLError(CE_Failure, CPLE_AppDefined, "%s", pszReason);
6249
+ CPLFree(pszReason);
6250
+ return false;
6251
+ }
6252
+ return true;
6246
6253
  }
6247
6254
  SWIGINTERN bool GDALDatasetShadow_DeleteFieldDomain(GDALDatasetShadow *self,char const *name){
6248
6255
  return GDALDatasetDeleteFieldDomain(self, name, NULL);
@@ -7948,7 +7955,7 @@ SWIGINTERN GDALRasterBandShadow *GDALRasterBandShadow_GetOverview(GDALRasterBand
7948
7955
  return (GDALRasterBandShadow*) GDALGetOverview( self, i );
7949
7956
  }
7950
7957
  SWIGINTERN GDALRasterBandShadow *GDALRasterBandShadow_GetSampleOverview(GDALRasterBandShadow *self,GUIntBig nDesiredSamples){
7951
- return (GDALRasterBandShadow*) GDALGetRasterSampleOverview( self, nDesiredSamples );
7958
+ return (GDALRasterBandShadow*) GDALGetRasterSampleOverviewEx( self, nDesiredSamples );
7952
7959
  }
7953
7960
  SWIGINTERN int GDALRasterBandShadow_Checksum(GDALRasterBandShadow *self,int xoff=0,int yoff=0,int *xsize=0,int *ysize=0){
7954
7961
  int nxsize = (xsize!=0) ? *xsize : GDALGetRasterBandXSize( self );
@@ -43252,10 +43259,8 @@ SWIGINTERN PyObject *_wrap_Band_GetDefaultHistogram(PyObject *self, PyObject *ar
43252
43259
  void *arg8 = (void *) NULL ;
43253
43260
  void *argp1 = 0 ;
43254
43261
  int res1 = 0 ;
43255
- void *argp2 = 0 ;
43256
- int res2 = 0 ;
43257
- void *argp3 = 0 ;
43258
- int res3 = 0 ;
43262
+ double val2 ;
43263
+ double val3 ;
43259
43264
  void *argp4 = 0 ;
43260
43265
  int res4 = 0 ;
43261
43266
  void *argp5 = 0 ;
@@ -43298,18 +43303,34 @@ SWIGINTERN PyObject *_wrap_Band_GetDefaultHistogram(PyObject *self, PyObject *ar
43298
43303
  }
43299
43304
  arg1 = reinterpret_cast< GDALRasterBandShadow * >(argp1);
43300
43305
  if (obj1) {
43301
- res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_double, 0 | 0 );
43302
- if (!SWIG_IsOK(res2)) {
43303
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Band_GetDefaultHistogram" "', argument " "2"" of type '" "double *""'");
43306
+ {
43307
+ /* %typemap(in) (double *optional_##double) */
43308
+ if ( obj1 == Py_None ) {
43309
+ arg2 = 0;
43310
+ }
43311
+ else if ( PyArg_Parse( obj1,"d" ,&val2 ) ) {
43312
+ arg2 = (double *) &val2;
43313
+ }
43314
+ else {
43315
+ PyErr_SetString( PyExc_TypeError, "Invalid Parameter" );
43316
+ SWIG_fail;
43317
+ }
43304
43318
  }
43305
- arg2 = reinterpret_cast< double * >(argp2);
43306
43319
  }
43307
43320
  if (obj2) {
43308
- res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_double, 0 | 0 );
43309
- if (!SWIG_IsOK(res3)) {
43310
- SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Band_GetDefaultHistogram" "', argument " "3"" of type '" "double *""'");
43321
+ {
43322
+ /* %typemap(in) (double *optional_##double) */
43323
+ if ( obj2 == Py_None ) {
43324
+ arg3 = 0;
43325
+ }
43326
+ else if ( PyArg_Parse( obj2,"d" ,&val3 ) ) {
43327
+ arg3 = (double *) &val3;
43328
+ }
43329
+ else {
43330
+ PyErr_SetString( PyExc_TypeError, "Invalid Parameter" );
43331
+ SWIG_fail;
43332
+ }
43311
43333
  }
43312
- arg3 = reinterpret_cast< double * >(argp3);
43313
43334
  }
43314
43335
  if (obj3) {
43315
43336
  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_int, 0 | 0 );
@@ -6824,35 +6824,42 @@ OGRFieldDomainShadow* CreateRangeFieldDomain( const char *name,
6824
6824
  const char* description,
6825
6825
  OGRFieldType type,
6826
6826
  OGRFieldSubType subtype,
6827
- double min,
6827
+ double* min,
6828
6828
  bool minIsInclusive,
6829
- double max,
6830
- double maxIsInclusive) {
6829
+ double* max,
6830
+ bool maxIsInclusive) {
6831
6831
  OGRField sMin;
6832
- if( type == OFTInteger )
6833
- sMin.Integer = static_cast<int>(min);
6834
- else if( type == OFTInteger64 )
6835
- sMin.Integer64 = static_cast<GIntBig>(min);
6836
- else if( type == OFTReal )
6837
- sMin.Real = min;
6838
- else
6839
- return NULL;
6832
+ if (min )
6833
+ {
6834
+ if( type == OFTInteger )
6835
+ sMin.Integer = static_cast<int>(*min);
6836
+ else if( type == OFTInteger64 )
6837
+ sMin.Integer64 = static_cast<GIntBig>(*min);
6838
+ else if( type == OFTReal )
6839
+ sMin.Real = *min;
6840
+ else
6841
+ return NULL;
6842
+ }
6843
+
6840
6844
  OGRField sMax;
6841
- if( type == OFTInteger )
6842
- sMax.Integer = static_cast<int>(max);
6843
- else if( type == OFTInteger64 )
6844
- sMax.Integer64 = static_cast<GIntBig>(max);
6845
- else if( type == OFTReal )
6846
- sMax.Real = max;
6847
- else
6848
- return NULL;
6845
+ if( max )
6846
+ {
6847
+ if( type == OFTInteger )
6848
+ sMax.Integer = static_cast<int>(*max);
6849
+ else if( type == OFTInteger64 )
6850
+ sMax.Integer64 = static_cast<GIntBig>(*max);
6851
+ else if( type == OFTReal )
6852
+ sMax.Real = *max;
6853
+ else
6854
+ return NULL;
6855
+ }
6849
6856
  return (OGRFieldDomainShadow*) OGR_RangeFldDomain_Create( name,
6850
6857
  description,
6851
6858
  type,
6852
6859
  subtype,
6853
- &sMin,
6860
+ min ? &sMin : NULL,
6854
6861
  minIsInclusive,
6855
- &sMax,
6862
+ max ? &sMax : NULL,
6856
6863
  maxIsInclusive );
6857
6864
  }
6858
6865
 
@@ -6866,14 +6873,14 @@ OGRFieldDomainShadow* CreateRangeFieldDomainDateTime( const char *name,
6866
6873
  double maxIsInclusive) {
6867
6874
  OGRField sMin;
6868
6875
  OGRField sMax;
6869
- if( !OGRParseXMLDateTime(min, &sMin))
6876
+ if( min && !OGRParseXMLDateTime(min, &sMin))
6870
6877
  {
6871
6878
  CPLError(CE_Failure, CPLE_AppDefined,
6872
6879
  "Invalid min: %s",
6873
6880
  min);
6874
6881
  return NULL;
6875
6882
  }
6876
- if( !OGRParseXMLDateTime(max, &sMax))
6883
+ if( max && !OGRParseXMLDateTime(max, &sMax))
6877
6884
  {
6878
6885
  CPLError(CE_Failure, CPLE_AppDefined,
6879
6886
  "Invalid max: %s",
@@ -6884,9 +6891,9 @@ OGRFieldDomainShadow* CreateRangeFieldDomainDateTime( const char *name,
6884
6891
  description,
6885
6892
  OFTDateTime,
6886
6893
  OFSTNone,
6887
- &sMin,
6894
+ min ? &sMin : NULL,
6888
6895
  minIsInclusive,
6889
- &sMax,
6896
+ max ? &sMax : NULL,
6890
6897
  maxIsInclusive );
6891
6898
  }
6892
6899
 
@@ -34046,10 +34053,10 @@ SWIGINTERN PyObject *_wrap_CreateRangeFieldDomain(PyObject *self, PyObject *args
34046
34053
  char *arg2 = (char *) 0 ;
34047
34054
  OGRFieldType arg3 ;
34048
34055
  OGRFieldSubType arg4 ;
34049
- double arg5 ;
34056
+ double *arg5 = (double *) 0 ;
34050
34057
  bool arg6 ;
34051
- double arg7 ;
34052
- double arg8 ;
34058
+ double *arg7 = (double *) 0 ;
34059
+ bool arg8 ;
34053
34060
  int res1 ;
34054
34061
  char *buf1 = 0 ;
34055
34062
  int alloc1 = 0 ;
@@ -34061,12 +34068,10 @@ SWIGINTERN PyObject *_wrap_CreateRangeFieldDomain(PyObject *self, PyObject *args
34061
34068
  int val4 ;
34062
34069
  int ecode4 = 0 ;
34063
34070
  double val5 ;
34064
- int ecode5 = 0 ;
34065
34071
  bool val6 ;
34066
34072
  int ecode6 = 0 ;
34067
34073
  double val7 ;
34068
- int ecode7 = 0 ;
34069
- double val8 ;
34074
+ bool val8 ;
34070
34075
  int ecode8 = 0 ;
34071
34076
  PyObject *swig_obj[8] ;
34072
34077
  OGRFieldDomainShadow *result = 0 ;
@@ -34093,26 +34098,42 @@ SWIGINTERN PyObject *_wrap_CreateRangeFieldDomain(PyObject *self, PyObject *args
34093
34098
  SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "CreateRangeFieldDomain" "', argument " "4"" of type '" "OGRFieldSubType""'");
34094
34099
  }
34095
34100
  arg4 = static_cast< OGRFieldSubType >(val4);
34096
- ecode5 = SWIG_AsVal_double(swig_obj[4], &val5);
34097
- if (!SWIG_IsOK(ecode5)) {
34098
- SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "CreateRangeFieldDomain" "', argument " "5"" of type '" "double""'");
34099
- }
34100
- arg5 = static_cast< double >(val5);
34101
+ {
34102
+ /* %typemap(in) (double *optional_##double) */
34103
+ if ( swig_obj[4] == Py_None ) {
34104
+ arg5 = 0;
34105
+ }
34106
+ else if ( PyArg_Parse( swig_obj[4],"d" ,&val5 ) ) {
34107
+ arg5 = (double *) &val5;
34108
+ }
34109
+ else {
34110
+ PyErr_SetString( PyExc_TypeError, "Invalid Parameter" );
34111
+ SWIG_fail;
34112
+ }
34113
+ }
34101
34114
  ecode6 = SWIG_AsVal_bool(swig_obj[5], &val6);
34102
34115
  if (!SWIG_IsOK(ecode6)) {
34103
34116
  SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "CreateRangeFieldDomain" "', argument " "6"" of type '" "bool""'");
34104
34117
  }
34105
34118
  arg6 = static_cast< bool >(val6);
34106
- ecode7 = SWIG_AsVal_double(swig_obj[6], &val7);
34107
- if (!SWIG_IsOK(ecode7)) {
34108
- SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "CreateRangeFieldDomain" "', argument " "7"" of type '" "double""'");
34109
- }
34110
- arg7 = static_cast< double >(val7);
34111
- ecode8 = SWIG_AsVal_double(swig_obj[7], &val8);
34119
+ {
34120
+ /* %typemap(in) (double *optional_##double) */
34121
+ if ( swig_obj[6] == Py_None ) {
34122
+ arg7 = 0;
34123
+ }
34124
+ else if ( PyArg_Parse( swig_obj[6],"d" ,&val7 ) ) {
34125
+ arg7 = (double *) &val7;
34126
+ }
34127
+ else {
34128
+ PyErr_SetString( PyExc_TypeError, "Invalid Parameter" );
34129
+ SWIG_fail;
34130
+ }
34131
+ }
34132
+ ecode8 = SWIG_AsVal_bool(swig_obj[7], &val8);
34112
34133
  if (!SWIG_IsOK(ecode8)) {
34113
- SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "CreateRangeFieldDomain" "', argument " "8"" of type '" "double""'");
34134
+ SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "CreateRangeFieldDomain" "', argument " "8"" of type '" "bool""'");
34114
34135
  }
34115
- arg8 = static_cast< double >(val8);
34136
+ arg8 = static_cast< bool >(val8);
34116
34137
  {
34117
34138
  if (!arg1) {
34118
34139
  SWIG_exception(SWIG_NullReferenceError,"Received a NULL pointer.");
@@ -40062,7 +40083,8 @@ static PyMethodDef SwigMethods[] = {
40062
40083
  "Returns\n"
40063
40084
  "--------\n"
40064
40085
  "int:\n"
40065
- " True if the geometry has no points, otherwise False.\n"
40086
+ " True if the coordinates of the geometry form a ring, by checking length\n"
40087
+ " and closure (self-intersection is not checked), otherwise False.\n"
40066
40088
  "\n"
40067
40089
  ""},
40068
40090
  { "Geometry_Intersects", _wrap_Geometry_Intersects, METH_VARARGS, "\n"
@@ -40797,7 +40819,7 @@ static PyMethodDef SwigMethods[] = {
40797
40819
  "\n"
40798
40820
  ""},
40799
40821
  { "CreateRangeFieldDomain", _wrap_CreateRangeFieldDomain, METH_VARARGS, "\n"
40800
- "CreateRangeFieldDomain(char const * name, char const * description, OGRFieldType type, OGRFieldSubType subtype, double min, bool minIsInclusive, double max, double maxIsInclusive) -> FieldDomain\n"
40822
+ "CreateRangeFieldDomain(char const * name, char const * description, OGRFieldType type, OGRFieldSubType subtype, double * min, bool minIsInclusive, double * max, bool maxIsInclusive) -> FieldDomain\n"
40801
40823
  "\n"
40802
40824
  "Creates a new range field domain.\n"
40803
40825
  "\n"
@@ -1,13 +1,13 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: GDAL
3
- Version: 3.11.0
3
+ Version: 3.11.2
4
4
  Summary: GDAL: Geospatial Data Abstraction Library
5
5
  Home-page: http://www.gdal.org
6
6
  Author: Frank Warmerdam, Howard Butler, Even Rouault
7
7
  Author-email: warmerdam@pobox.com
8
8
  Maintainer: GDAL contributors
9
9
  Maintainer-email: GDAL contributors <gdal-dev@lists.osgeo.org>
10
- License: MIT
10
+ License-Expression: MIT
11
11
  Project-URL: Homepage, https://gdal.org
12
12
  Project-URL: Documentation, https://gdal.org
13
13
  Project-URL: Repository, https://github.com/OSGeo/GDAL.git
@@ -17,7 +17,6 @@ Keywords: gis,raster,vector
17
17
  Classifier: Development Status :: 5 - Production/Stable
18
18
  Classifier: Intended Audience :: Developers
19
19
  Classifier: Intended Audience :: Science/Research
20
- Classifier: License :: OSI Approved :: MIT License
21
20
  Classifier: Operating System :: OS Independent
22
21
  Classifier: Programming Language :: Python :: 3
23
22
  Classifier: Programming Language :: C
@@ -28,6 +27,10 @@ Requires-Python: >=3.8.0
28
27
  Description-Content-Type: text/x-rst
29
28
  Provides-Extra: numpy
30
29
  Requires-Dist: numpy>1.0.0; extra == "numpy"
30
+ Dynamic: author-email
31
+ Dynamic: home-page
32
+ Dynamic: maintainer
33
+ Dynamic: requires-python
31
34
 
32
35
 
33
36
  GDAL/OGR in Python
@@ -60,7 +63,7 @@ special about gdal.)
60
63
 
61
64
  * SWIG (4 or greater).
62
65
 
63
- * libgdal (3.11.0 or greater).
66
+ * libgdal (3.11.2 or greater).
64
67
 
65
68
  * numpy (1.0.0 or greater). This is not force-required by the build,
66
69
  but many examples and utilities will not work without it. At least
@@ -1,5 +1,5 @@
1
1
  __package_name__ = "gdal-utils"
2
- gdal_utils_version = (3, 11, 0, 0)
2
+ gdal_utils_version = (3, 11, 2, 0)
3
3
  __version__ = ".".join(str(i) for i in gdal_utils_version)
4
4
  __author__ = "Frank Warmerdam"
5
5
  __author_email__ = "warmerdam@pobox.com"
@@ -76,7 +76,7 @@ def isfile(path):
76
76
  """Wrapper for os.path.isfile() that can work with /vsi files too"""
77
77
  if path.startswith("/vsi"):
78
78
  stat_res = gdal.VSIStatL(path)
79
- if stat is None:
79
+ if stat_res is None:
80
80
  return False
81
81
  return stat.S_ISREG(stat_res.mode)
82
82
  else:
@@ -211,12 +211,27 @@ def process(argv, progress=None, progress_arg=None):
211
211
  elif arg == "-a_srs" and i + 1 < len(argv):
212
212
  i = i + 1
213
213
  a_srs = argv[i]
214
+ srs = osr.SpatialReference()
215
+ try:
216
+ srs.SetFromUserInput(a_srs)
217
+ except Exception:
218
+ raise ValueError("Invalid value for -a_srs")
214
219
  elif arg == "-s_srs" and i + 1 < len(argv):
215
220
  i = i + 1
216
221
  s_srs = argv[i]
222
+ srs = osr.SpatialReference()
223
+ try:
224
+ srs.SetFromUserInput(s_srs)
225
+ except Exception:
226
+ raise ValueError("Invalid value for -s_srs")
217
227
  elif arg == "-t_srs" and i + 1 < len(argv):
218
228
  i = i + 1
219
229
  t_srs = argv[i]
230
+ srs = osr.SpatialReference()
231
+ try:
232
+ srs.SetFromUserInput(t_srs)
233
+ except Exception:
234
+ raise ValueError("Invalid value for -t_srs")
220
235
  elif arg == "-nln" and i + 1 < len(argv):
221
236
  i = i + 1
222
237
  layer_name_template = argv[i]
@@ -6084,7 +6084,8 @@ class Geometry(object):
6084
6084
  Returns
6085
6085
  --------
6086
6086
  int:
6087
- True if the geometry has no points, otherwise False.
6087
+ True if the coordinates of the geometry form a ring, by checking length
6088
+ and closure (self-intersection is not checked), otherwise False.
6088
6089
 
6089
6090
  """
6090
6091
  return _ogr.Geometry_IsRing(self, *args)
@@ -7060,7 +7061,7 @@ def CreateCodedFieldDomain(*args):
7060
7061
 
7061
7062
  def CreateRangeFieldDomain(*args):
7062
7063
  r"""
7063
- CreateRangeFieldDomain(char const * name, char const * description, OGRFieldType type, OGRFieldSubType subtype, double min, bool minIsInclusive, double max, double maxIsInclusive) -> FieldDomain
7064
+ CreateRangeFieldDomain(char const * name, char const * description, OGRFieldType type, OGRFieldSubType subtype, double * min, bool minIsInclusive, double * max, bool maxIsInclusive) -> FieldDomain
7064
7065
 
7065
7066
  Creates a new range field domain.
7066
7067
 
@@ -1,5 +1,5 @@
1
1
  [build-system]
2
- requires = ["setuptools>=67.0.0",
2
+ requires = ["setuptools>=77.0.3",
3
3
  "wheel",
4
4
  "oldest-supported-numpy; python_version=='3.8'",
5
5
  "numpy >=2.0.0rc1; python_version>='3.9'"]
@@ -19,12 +19,11 @@ maintainers = [
19
19
  description = "GDAL: Geospatial Data Abstraction Library"
20
20
  readme = "README.rst"
21
21
  keywords = ["gis", "raster", "vector"]
22
- license = {text = "MIT"}
22
+ license = "MIT"
23
23
  classifiers = [
24
24
  "Development Status :: 5 - Production/Stable",
25
25
  "Intended Audience :: Developers",
26
26
  "Intended Audience :: Science/Research",
27
- "License :: OSI Approved :: MIT License",
28
27
  "Operating System :: OS Independent",
29
28
  "Programming Language :: Python :: 3",
30
29
  "Programming Language :: C",
@@ -12,12 +12,13 @@ import sys
12
12
  from glob import glob
13
13
  from pathlib import Path
14
14
 
15
+ import setuptools
15
16
  from setuptools.command.build_ext import build_ext
16
17
  from setuptools import setup
17
18
  from setuptools import find_packages
18
19
  from setuptools import Extension
19
20
 
20
- version = '3.11.0'
21
+ version = '3.11.2'
21
22
 
22
23
  # If CXX is defined in the environment, it will be used to link the .so
23
24
  # but setuptools will be confused if it is made of several words like 'ccache g++'
@@ -157,7 +158,7 @@ def has_flag(compiler, flagname):
157
158
  # since they may be directly used by users. So we do a monkey patching of
158
159
  # easy_install.install_wrapper_scripts to install a modified
159
160
  # easy_install.delete_blockers method that does NOT remove .py files
160
- if sys.platform == 'win32':
161
+ if sys.platform == 'win32' and int(setuptools.__version__.split('.')[0]) < 80:
161
162
  from setuptools.command.easy_install import easy_install
162
163
 
163
164
  original_install_wrapper_scripts = easy_install.install_wrapper_scripts
@@ -345,6 +346,12 @@ class gdal_ext(build_ext):
345
346
  else:
346
347
  ext.extra_compile_args.append("-DSWIG_PYTHON_SILENT_MEMLEAK")
347
348
 
349
+ # Add -isysroot on osx if used in cmake
350
+ if '':
351
+ ext.extra_compile_args.extend(['-isysroot', ''])
352
+ ext.extra_link_args.extend(['-isysroot', ''])
353
+
354
+
348
355
  return build_ext.build_extension(self, ext)
349
356
 
350
357
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes