PyGeoFetch 1.0.5__tar.gz → 1.0.6__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 (81) hide show
  1. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/PKG-INFO +1 -1
  2. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/__init__.py +2 -2
  3. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/cli/main.py +2 -2
  4. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/models/satellite_data.py +1 -1
  5. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/copernicus.py +14 -2
  6. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/sentinel_hub.py +1 -1
  7. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch.egg-info/PKG-INFO +1 -1
  8. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pyproject.toml +1 -1
  9. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/LICENSE +0 -0
  10. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/README.md +0 -0
  11. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/cli/__init__.py +0 -0
  12. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/cli/auth_commands.py +0 -0
  13. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/cli/config_commands.py +0 -0
  14. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/cli/download_commands.py +0 -0
  15. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/cli/index_commands.py +0 -0
  16. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/cli/pipeline_process_commands.py +0 -0
  17. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/cli/postprocess_commands.py +0 -0
  18. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/cli/preprocess_commands.py +0 -0
  19. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/cli/sar_commands.py +0 -0
  20. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/cli/search_commands.py +0 -0
  21. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/config/__init__.py +0 -0
  22. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/config/defaults.yaml +0 -0
  23. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/config/settings.py +0 -0
  24. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/core/__init__.py +0 -0
  25. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/core/authenticator.py +0 -0
  26. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/core/cache_manager.py +0 -0
  27. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/core/downloader.py +0 -0
  28. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/core/engine.py +0 -0
  29. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/core/logging.py +0 -0
  30. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/core/orbits.py +0 -0
  31. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/core/scheduler.py +0 -0
  32. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/core/searcher.py +0 -0
  33. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/models/__init__.py +0 -0
  34. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/models/download_task.py +0 -0
  35. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/models/search_query.py +0 -0
  36. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/models/user_auth.py +0 -0
  37. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/processing/__init__.py +0 -0
  38. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/processing/base.py +0 -0
  39. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/processing/batch.py +0 -0
  40. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/processing/indices.py +0 -0
  41. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/processing/pipeline.py +0 -0
  42. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/processing/postprocessor.py +0 -0
  43. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/processing/preprocessor.py +0 -0
  44. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/processing/sar.py +0 -0
  45. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/__init__.py +0 -0
  46. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/airbus_oneatlas.py +0 -0
  47. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/alaska_satellite_facility.py +0 -0
  48. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/aws_earth.py +0 -0
  49. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/base.py +0 -0
  50. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/digitalglobe.py +0 -0
  51. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/earth_explorer_additional.py +0 -0
  52. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/element84.py +0 -0
  53. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/esa_scihub.py +0 -0
  54. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/geoserver_generic.py +0 -0
  55. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/google_earth_engine.py +0 -0
  56. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/inpe_cbers.py +0 -0
  57. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/isro_bhuvan.py +0 -0
  58. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/jaxa_earth.py +0 -0
  59. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/maxar_gbdx.py +0 -0
  60. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/nasa_earthdata.py +0 -0
  61. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/nasa_earthdata_cloud.py +0 -0
  62. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/noaa_big_data.py +0 -0
  63. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/opentopography.py +0 -0
  64. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/planet.py +0 -0
  65. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/planetary_computer.py +0 -0
  66. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/terrabotics.py +0 -0
  67. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/providers/usgs.py +0 -0
  68. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/utils/__init__.py +0 -0
  69. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/utils/file_utils.py +0 -0
  70. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/utils/geo_utils.py +0 -0
  71. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/utils/logging_setup.py +0 -0
  72. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/utils/retry_handler.py +0 -0
  73. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch/utils/validators.py +0 -0
  74. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch.egg-info/SOURCES.txt +0 -0
  75. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch.egg-info/dependency_links.txt +0 -0
  76. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch.egg-info/entry_points.txt +0 -0
  77. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch.egg-info/not-zip-safe +0 -0
  78. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch.egg-info/requires.txt +0 -0
  79. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/pygeofetch.egg-info/top_level.txt +0 -0
  80. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/setup.cfg +0 -0
  81. {pygeofetch-1.0.5 → pygeofetch-1.0.6}/tests/test_pgv_integration_contract.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pygeofetch
3
- Version: 1.0.5
3
+ Version: 1.0.6
4
4
  Summary: Universal satellite data pipeline — unified access to 22+ providers
5
5
  Author: PyGeoFetch Contributors
6
6
  License: MIT License
@@ -1,5 +1,5 @@
1
1
  """
2
- PyGeoFetch v1.0.5 — Universal Satellite Data Pipeline.
2
+ PyGeoFetch v1.0.6 — Universal Satellite Data Pipeline.
3
3
 
4
4
  Unified access to 22+ satellite data providers with a consistent
5
5
  Python API and CLI. Supports authentication management, federated search,
@@ -30,7 +30,7 @@ CLI::
30
30
  pygeofetch doctor
31
31
  """
32
32
 
33
- __version__ = "1.0.5"
33
+ __version__ = "1.0.6"
34
34
  __author__ = "PyGeoFetch Contributors"
35
35
  __license__ = "MIT"
36
36
 
@@ -1,5 +1,5 @@
1
1
  """
2
- PyGeoFetch CLI v1.0.5 main entry point.
2
+ PyGeoFetch CLI v1.0.6 main entry point.
3
3
 
4
4
  Full command reference:
5
5
  pygeofetch auth — credential management
@@ -59,7 +59,7 @@ def cli(ctx: click.Context, log_level: str, log_file: str, log_format: str,
59
59
  config_file: str) -> None:
60
60
  """
61
61
  \b
62
- PyGeoFetch v1.0.5 — Universal Satellite Data Pipeline
62
+ PyGeoFetch v1.0.6 — Universal Satellite Data Pipeline
63
63
  ===========================================================
64
64
  Unified access to 22+ satellite data providers.
65
65
 
@@ -290,7 +290,7 @@ class SatelliteData(BaseModel):
290
290
  """
291
291
  item: Dict[str, Any] = {
292
292
  "type": "Feature",
293
- "stac_version": "1.0.5",
293
+ "stac_version": "1.0.6",
294
294
  "stac_extensions": self.stac_extensions,
295
295
  "id": self.id,
296
296
  "geometry": self.geometry or self._bbox_to_geometry(),
@@ -433,8 +433,6 @@ class CopernicusProvider(AbstractBaseProvider):
433
433
  filters.append(f"({level_filter})")
434
434
 
435
435
  # Product type filter — GRD, SLC, GRD-COG, OCN (Sentinel-1)
436
- # product_type comes from either the query directly or was inferred
437
- # from the STAC collection ID (e.g. "sentinel-1-grd" → "GRD")
438
436
  effective_pt = product_type or getattr(query, "product_type", None)
439
437
  if effective_pt:
440
438
  filters.append(
@@ -443,6 +441,20 @@ class CopernicusProvider(AbstractBaseProvider):
443
441
  f"att/OData.CSC.StringAttribute/Value eq '{effective_pt.upper()}')"
444
442
  )
445
443
 
444
+ # ── Exclude COG (Cloud Optimized GeoTIFF) products ───────────────────
445
+ # Copernicus stores two variants of Sentinel-1 GRD:
446
+ # - Standard SAFE packages (S1A_IW_GRDH_..._SAFE)
447
+ # → downloadable via OData Products/$value with Bearer token
448
+ # - COG reformats (S1A_IW_GRDH_..._COG.SAFE)
449
+ # → stored on S3, NOT downloadable via OData → returns HTTP 422
450
+ #
451
+ # The STAC sentinel-1-grd collection includes BOTH. We must exclude
452
+ # COG products when we need direct OData download (GRD and SLC use cases).
453
+ # If the caller explicitly requested COG (product_type='GRD-COG'), skip.
454
+ if is_sar and (effective_pt or "").upper() not in ("GRD-COG", "OCN"):
455
+ filters.append("not endswith(Name, '_COG.SAFE')")
456
+ # ─────────────────────────────────────────────────────────────────────
457
+
446
458
  # Polarisation filter (VV+VH, HH, etc.)
447
459
  pol = getattr(query, "polarisation", None)
448
460
  if pol:
@@ -107,7 +107,7 @@ class SentinelHubProvider(AbstractBaseProvider):
107
107
  payload["filter"] = {"maxCloudCoverage": query.cloud_cover_max}
108
108
  try:
109
109
  resp = httpx.post(
110
- f"{self.BASE_URL}/api/v1/catalog/1.0.5/search",
110
+ f"{self.BASE_URL}/api/v1/catalog/1.0.6/search",
111
111
  json=payload, headers={"Authorization": f"Bearer {self._session.access_token}"},
112
112
  timeout=self.config.get("timeout", 60),
113
113
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pygeofetch
3
- Version: 1.0.5
3
+ Version: 1.0.6
4
4
  Summary: Universal satellite data pipeline — unified access to 22+ providers
5
5
  Author: PyGeoFetch Contributors
6
6
  License: MIT License
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pygeofetch"
7
- version = "1.0.5"
7
+ version = "1.0.6"
8
8
  description = "Universal satellite data pipeline — unified access to 22+ providers"
9
9
  readme = "README.md"
10
10
  license = { file = "LICENSE" }
File without changes
File without changes
File without changes