eodag 3.9.0__tar.gz → 3.10.0__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 (264) hide show
  1. {eodag-3.9.0 → eodag-3.10.0}/CHANGES.rst +58 -0
  2. {eodag-3.9.0/eodag.egg-info → eodag-3.10.0}/PKG-INFO +3 -3
  3. {eodag-3.9.0 → eodag-3.10.0}/README.rst +1 -1
  4. {eodag-3.9.0 → eodag-3.10.0}/charts/eodag-server/Chart.yaml +2 -2
  5. {eodag-3.9.0 → eodag-3.10.0}/docs/conf.py +1 -0
  6. {eodag-3.9.0 → eodag-3.10.0}/docs/plugins.rst +2 -1
  7. {eodag-3.9.0 → eodag-3.10.0}/docs/stac_rest.rst +1 -1
  8. {eodag-3.9.0 → eodag-3.10.0}/eodag/api/product/metadata_mapping.py +26 -30
  9. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/authentication/aws_auth.py +44 -2
  10. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/authentication/base.py +17 -0
  11. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/authentication/sas_auth.py +15 -0
  12. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/download/creodias_s3.py +7 -0
  13. eodag-3.10.0/eodag/resources/ext_collections.json +1 -0
  14. eodag-3.10.0/eodag/resources/ext_product_types.json +1 -0
  15. {eodag-3.9.0 → eodag-3.10.0}/eodag/resources/providers.yml +15 -5
  16. {eodag-3.9.0 → eodag-3.10.0}/eodag/resources/stac_provider.yml +1 -1
  17. {eodag-3.9.0 → eodag-3.10.0/eodag.egg-info}/PKG-INFO +3 -3
  18. {eodag-3.9.0 → eodag-3.10.0}/eodag.egg-info/SOURCES.txt +1 -0
  19. {eodag-3.9.0 → eodag-3.10.0}/eodag.egg-info/requires.txt +1 -1
  20. {eodag-3.9.0 → eodag-3.10.0}/pyproject.toml +1 -1
  21. {eodag-3.9.0 → eodag-3.10.0}/setup.cfg +1 -1
  22. eodag-3.9.0/eodag/resources/ext_product_types.json +0 -1
  23. {eodag-3.9.0 → eodag-3.10.0}/.dockerignore +0 -0
  24. {eodag-3.9.0 → eodag-3.10.0}/.editorconfig +0 -0
  25. {eodag-3.9.0 → eodag-3.10.0}/.gitattributes +0 -0
  26. {eodag-3.9.0 → eodag-3.10.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  27. {eodag-3.9.0 → eodag-3.10.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  28. {eodag-3.9.0 → eodag-3.10.0}/.github/pull_request_template.md +0 -0
  29. {eodag-3.9.0 → eodag-3.10.0}/.github/workflows/changelog.yml +0 -0
  30. {eodag-3.9.0 → eodag-3.10.0}/.github/workflows/deploy.yml +0 -0
  31. {eodag-3.9.0 → eodag-3.10.0}/.github/workflows/fetch.yml +0 -0
  32. {eodag-3.9.0 → eodag-3.10.0}/.github/workflows/github-pages.yml +0 -0
  33. {eodag-3.9.0 → eodag-3.10.0}/.github/workflows/lint-pr-title.yml +0 -0
  34. {eodag-3.9.0 → eodag-3.10.0}/.github/workflows/publish.yml +0 -0
  35. {eodag-3.9.0 → eodag-3.10.0}/.github/workflows/test.yml +0 -0
  36. {eodag-3.9.0 → eodag-3.10.0}/.gitignore +0 -0
  37. {eodag-3.9.0 → eodag-3.10.0}/.pre-commit-config.yaml +0 -0
  38. {eodag-3.9.0 → eodag-3.10.0}/BREAKING_CHANGES.rst +0 -0
  39. {eodag-3.9.0 → eodag-3.10.0}/CODE_OF_CONDUCT.md +0 -0
  40. {eodag-3.9.0 → eodag-3.10.0}/CONTRIBUTING.rst +0 -0
  41. {eodag-3.9.0 → eodag-3.10.0}/LICENSE +0 -0
  42. {eodag-3.9.0 → eodag-3.10.0}/MANIFEST.in +0 -0
  43. {eodag-3.9.0 → eodag-3.10.0}/NOTICE +0 -0
  44. {eodag-3.9.0 → eodag-3.10.0}/charts/eodag-server/Chart.lock +0 -0
  45. {eodag-3.9.0 → eodag-3.10.0}/charts/eodag-server/README.md +0 -0
  46. {eodag-3.9.0 → eodag-3.10.0}/charts/eodag-server/templates/NOTES.txt +0 -0
  47. {eodag-3.9.0 → eodag-3.10.0}/charts/eodag-server/templates/_helpers.tpl +0 -0
  48. {eodag-3.9.0 → eodag-3.10.0}/charts/eodag-server/templates/configmap.yaml +0 -0
  49. {eodag-3.9.0 → eodag-3.10.0}/charts/eodag-server/templates/deployment.yaml +0 -0
  50. {eodag-3.9.0 → eodag-3.10.0}/charts/eodag-server/templates/extra-list.yaml +0 -0
  51. {eodag-3.9.0 → eodag-3.10.0}/charts/eodag-server/templates/hpa.yaml +0 -0
  52. {eodag-3.9.0 → eodag-3.10.0}/charts/eodag-server/templates/ingress.yaml +0 -0
  53. {eodag-3.9.0 → eodag-3.10.0}/charts/eodag-server/templates/pv.yaml +0 -0
  54. {eodag-3.9.0 → eodag-3.10.0}/charts/eodag-server/templates/pvc.yaml +0 -0
  55. {eodag-3.9.0 → eodag-3.10.0}/charts/eodag-server/templates/secret.yaml +0 -0
  56. {eodag-3.9.0 → eodag-3.10.0}/charts/eodag-server/templates/service.yaml +0 -0
  57. {eodag-3.9.0 → eodag-3.10.0}/charts/eodag-server/templates/serviceaccount.yaml +0 -0
  58. {eodag-3.9.0 → eodag-3.10.0}/charts/eodag-server/values.yaml +0 -0
  59. {eodag-3.9.0 → eodag-3.10.0}/docker/run-stac-server.sh +0 -0
  60. {eodag-3.9.0 → eodag-3.10.0}/docker/stac-browser.dockerfile +0 -0
  61. {eodag-3.9.0 → eodag-3.10.0}/docker/stac-server.dockerfile +0 -0
  62. {eodag-3.9.0 → eodag-3.10.0}/docker-compose.yml +0 -0
  63. {eodag-3.9.0 → eodag-3.10.0}/docs/Makefile +0 -0
  64. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/custom.css +0 -0
  65. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/download_methods.png +0 -0
  66. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/eodag_advanced_calls_graph.svg +0 -0
  67. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/eodag_bycs.png +0 -0
  68. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/eodag_fetch_product_types.png +0 -0
  69. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/eodag_logo_160.png +0 -0
  70. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/eodag_logo_160r.png +0 -0
  71. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/eodag_main_calls_graph.svg +0 -0
  72. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/eodag_overview.png +0 -0
  73. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/eodag_stac_server.png +0 -0
  74. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/favicon-32x32.png +0 -0
  75. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/params_mapping_extra.csv +0 -0
  76. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/params_mapping_offline_infos.json +0 -0
  77. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/params_mapping_opensearch.csv +0 -0
  78. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/product_types_information.csv +0 -0
  79. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/progress_1.png +0 -0
  80. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/progress_1_none.png +0 -0
  81. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/progress_2.png +0 -0
  82. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/progress_2_none.png +0 -0
  83. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/stac_browser_example.png +0 -0
  84. {eodag-3.9.0 → eodag-3.10.0}/docs/_static/stac_browser_example_600.png +0 -0
  85. {eodag-3.9.0 → eodag-3.10.0}/docs/add_product_type.rst +0 -0
  86. {eodag-3.9.0 → eodag-3.10.0}/docs/add_provider.rst +0 -0
  87. {eodag-3.9.0 → eodag-3.10.0}/docs/api_reference/assets.rst +0 -0
  88. {eodag-3.9.0 → eodag-3.10.0}/docs/api_reference/call_graphs.rst +0 -0
  89. {eodag-3.9.0 → eodag-3.10.0}/docs/api_reference/core.rst +0 -0
  90. {eodag-3.9.0 → eodag-3.10.0}/docs/api_reference/eoproduct.rst +0 -0
  91. {eodag-3.9.0 → eodag-3.10.0}/docs/api_reference/exceptions.rst +0 -0
  92. {eodag-3.9.0 → eodag-3.10.0}/docs/api_reference/index.rst +0 -0
  93. {eodag-3.9.0 → eodag-3.10.0}/docs/api_reference/searchresult.rst +0 -0
  94. {eodag-3.9.0 → eodag-3.10.0}/docs/api_reference/types.rst +0 -0
  95. {eodag-3.9.0 → eodag-3.10.0}/docs/api_reference/utils.rst +0 -0
  96. {eodag-3.9.0 → eodag-3.10.0}/docs/api_user_guide.rst +0 -0
  97. {eodag-3.9.0 → eodag-3.10.0}/docs/breaking_changes.rst +0 -0
  98. {eodag-3.9.0 → eodag-3.10.0}/docs/changelog.rst +0 -0
  99. {eodag-3.9.0 → eodag-3.10.0}/docs/cli_user_guide.rst +0 -0
  100. {eodag-3.9.0 → eodag-3.10.0}/docs/contribute.rst +0 -0
  101. {eodag-3.9.0 → eodag-3.10.0}/docs/drivers.rst +0 -0
  102. {eodag-3.9.0 → eodag-3.10.0}/docs/ecosystem.rst +0 -0
  103. {eodag-3.9.0 → eodag-3.10.0}/docs/getting_started_guide/configure.rst +0 -0
  104. {eodag-3.9.0 → eodag-3.10.0}/docs/getting_started_guide/features_overview.ipynb +0 -0
  105. {eodag-3.9.0 → eodag-3.10.0}/docs/getting_started_guide/index.rst +0 -0
  106. {eodag-3.9.0 → eodag-3.10.0}/docs/getting_started_guide/install.rst +0 -0
  107. {eodag-3.9.0 → eodag-3.10.0}/docs/getting_started_guide/overview.rst +0 -0
  108. {eodag-3.9.0 → eodag-3.10.0}/docs/getting_started_guide/product_storage_status.rst +0 -0
  109. {eodag-3.9.0 → eodag-3.10.0}/docs/getting_started_guide/product_types.rst +0 -0
  110. {eodag-3.9.0 → eodag-3.10.0}/docs/index.rst +0 -0
  111. {eodag-3.9.0 → eodag-3.10.0}/docs/make.bat +0 -0
  112. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/api_user_guide/1_providers_products_available.ipynb +0 -0
  113. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/api_user_guide/2_configuration.ipynb +0 -0
  114. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/api_user_guide/3_search.ipynb +0 -0
  115. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/api_user_guide/4_queryables.ipynb +0 -0
  116. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/api_user_guide/5_serialize_deserialize.ipynb +0 -0
  117. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/api_user_guide/6_crunch.ipynb +0 -0
  118. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/api_user_guide/7_download.ipynb +0 -0
  119. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/api_user_guide/8_post_process.ipynb +0 -0
  120. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/api_user_guide/data/crunch_search_results.geojson +0 -0
  121. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/api_user_guide/data/download_search_results.geojson +0 -0
  122. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/intro_notebooks.ipynb +0 -0
  123. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/auxdata/Gulf_of_Trieste_seamask_UTM33.cpg +0 -0
  124. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/auxdata/Gulf_of_Trieste_seamask_UTM33.dbf +0 -0
  125. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/auxdata/Gulf_of_Trieste_seamask_UTM33.prj +0 -0
  126. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/auxdata/Gulf_of_Trieste_seamask_UTM33.qix +0 -0
  127. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/auxdata/Gulf_of_Trieste_seamask_UTM33.qpj +0 -0
  128. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/auxdata/Gulf_of_Trieste_seamask_UTM33.shp +0 -0
  129. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/auxdata/Gulf_of_Trieste_seamask_UTM33.shx +0 -0
  130. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/auxdata/sentinel2_tiling_grid_centroids.zip +0 -0
  131. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/tuto_burnt_areas_snappy.ipynb +0 -0
  132. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/tuto_cds.ipynb +0 -0
  133. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/tuto_cop_dem.ipynb +0 -0
  134. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/tuto_dedt_lumi_roi.ipynb +0 -0
  135. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/tuto_ecmwf.ipynb +0 -0
  136. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/tuto_fedeo_ceda.ipynb +0 -0
  137. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/tuto_meteoblue.ipynb +0 -0
  138. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/tuto_search_location_tile.ipynb +0 -0
  139. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/tuto_ship_detection.ipynb +0 -0
  140. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/tuto_stac_client.ipynb +0 -0
  141. {eodag-3.9.0 → eodag-3.10.0}/docs/notebooks/tutos/tuto_wekeo.ipynb +0 -0
  142. {eodag-3.9.0 → eodag-3.10.0}/docs/params_mapping.rst +0 -0
  143. {eodag-3.9.0 → eodag-3.10.0}/docs/plugins_reference/api.rst +0 -0
  144. {eodag-3.9.0 → eodag-3.10.0}/docs/plugins_reference/auth.rst +0 -0
  145. {eodag-3.9.0 → eodag-3.10.0}/docs/plugins_reference/crunch.rst +0 -0
  146. {eodag-3.9.0 → eodag-3.10.0}/docs/plugins_reference/download.rst +0 -0
  147. {eodag-3.9.0 → eodag-3.10.0}/docs/plugins_reference/search.rst +0 -0
  148. {eodag-3.9.0 → eodag-3.10.0}/docs/providers.rst +0 -0
  149. {eodag-3.9.0 → eodag-3.10.0}/docs/tutos.rst +0 -0
  150. {eodag-3.9.0 → eodag-3.10.0}/eodag/__init__.py +0 -0
  151. {eodag-3.9.0 → eodag-3.10.0}/eodag/api/__init__.py +0 -0
  152. {eodag-3.9.0 → eodag-3.10.0}/eodag/api/core.py +0 -0
  153. {eodag-3.9.0 → eodag-3.10.0}/eodag/api/product/__init__.py +0 -0
  154. {eodag-3.9.0 → eodag-3.10.0}/eodag/api/product/_assets.py +0 -0
  155. {eodag-3.9.0 → eodag-3.10.0}/eodag/api/product/_product.py +0 -0
  156. {eodag-3.9.0 → eodag-3.10.0}/eodag/api/product/drivers/__init__.py +0 -0
  157. {eodag-3.9.0 → eodag-3.10.0}/eodag/api/product/drivers/base.py +0 -0
  158. {eodag-3.9.0 → eodag-3.10.0}/eodag/api/product/drivers/generic.py +0 -0
  159. {eodag-3.9.0 → eodag-3.10.0}/eodag/api/product/drivers/sentinel1.py +0 -0
  160. {eodag-3.9.0 → eodag-3.10.0}/eodag/api/product/drivers/sentinel2.py +0 -0
  161. {eodag-3.9.0 → eodag-3.10.0}/eodag/api/search_result.py +0 -0
  162. {eodag-3.9.0 → eodag-3.10.0}/eodag/cli.py +0 -0
  163. {eodag-3.9.0 → eodag-3.10.0}/eodag/config.py +0 -0
  164. {eodag-3.9.0 → eodag-3.10.0}/eodag/crunch.py +0 -0
  165. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/__init__.py +0 -0
  166. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/apis/__init__.py +0 -0
  167. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/apis/base.py +0 -0
  168. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/apis/ecmwf.py +0 -0
  169. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/apis/usgs.py +0 -0
  170. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/authentication/__init__.py +0 -0
  171. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/authentication/generic.py +0 -0
  172. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/authentication/header.py +0 -0
  173. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/authentication/keycloak.py +0 -0
  174. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/authentication/oauth.py +0 -0
  175. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/authentication/openid_connect.py +0 -0
  176. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/authentication/qsauth.py +0 -0
  177. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/authentication/token.py +0 -0
  178. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/authentication/token_exchange.py +0 -0
  179. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/base.py +0 -0
  180. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/crunch/__init__.py +0 -0
  181. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/crunch/base.py +0 -0
  182. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/crunch/filter_date.py +0 -0
  183. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/crunch/filter_latest_intersect.py +0 -0
  184. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/crunch/filter_latest_tpl_name.py +0 -0
  185. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/crunch/filter_overlap.py +0 -0
  186. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/crunch/filter_property.py +0 -0
  187. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/download/__init__.py +0 -0
  188. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/download/aws.py +0 -0
  189. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/download/base.py +0 -0
  190. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/download/http.py +0 -0
  191. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/download/s3rest.py +0 -0
  192. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/manager.py +0 -0
  193. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/search/__init__.py +0 -0
  194. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/search/base.py +0 -0
  195. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/search/build_search_result.py +0 -0
  196. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/search/cop_marine.py +0 -0
  197. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/search/creodias_s3.py +0 -0
  198. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/search/csw.py +0 -0
  199. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/search/data_request_search.py +0 -0
  200. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/search/qssearch.py +0 -0
  201. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/search/stac_list_assets.py +0 -0
  202. {eodag-3.9.0 → eodag-3.10.0}/eodag/plugins/search/static_stac_search.py +0 -0
  203. {eodag-3.9.0 → eodag-3.10.0}/eodag/py.typed +0 -0
  204. {eodag-3.9.0 → eodag-3.10.0}/eodag/resources/locations_conf_template.yml +0 -0
  205. {eodag-3.9.0 → eodag-3.10.0}/eodag/resources/product_types.yml +0 -0
  206. {eodag-3.9.0 → eodag-3.10.0}/eodag/resources/shp/ne_110m_admin_0_map_units.VERSION.txt +0 -0
  207. {eodag-3.9.0 → eodag-3.10.0}/eodag/resources/shp/ne_110m_admin_0_map_units.cpg +0 -0
  208. {eodag-3.9.0 → eodag-3.10.0}/eodag/resources/shp/ne_110m_admin_0_map_units.dbf +0 -0
  209. {eodag-3.9.0 → eodag-3.10.0}/eodag/resources/shp/ne_110m_admin_0_map_units.prj +0 -0
  210. {eodag-3.9.0 → eodag-3.10.0}/eodag/resources/shp/ne_110m_admin_0_map_units.shp +0 -0
  211. {eodag-3.9.0 → eodag-3.10.0}/eodag/resources/shp/ne_110m_admin_0_map_units.shx +0 -0
  212. {eodag-3.9.0 → eodag-3.10.0}/eodag/resources/stac.yml +0 -0
  213. {eodag-3.9.0 → eodag-3.10.0}/eodag/resources/stac_api.yml +0 -0
  214. {eodag-3.9.0 → eodag-3.10.0}/eodag/resources/user_conf_template.yml +0 -0
  215. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/__init__.py +0 -0
  216. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/cache.py +0 -0
  217. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/config.py +0 -0
  218. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/constants.py +0 -0
  219. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/core.py +0 -0
  220. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/errors.py +0 -0
  221. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/server.py +0 -0
  222. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/server.wsgi +0 -0
  223. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/stac.py +0 -0
  224. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/templates/README +0 -0
  225. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/types/__init__.py +0 -0
  226. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/types/collections_search.py +0 -0
  227. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/types/eodag_search.py +0 -0
  228. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/types/queryables.py +0 -0
  229. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/types/stac_search.py +0 -0
  230. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/utils/__init__.py +0 -0
  231. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/utils/cql_evaluate.py +0 -0
  232. {eodag-3.9.0 → eodag-3.10.0}/eodag/rest/utils/rfc3339.py +0 -0
  233. {eodag-3.9.0 → eodag-3.10.0}/eodag/types/__init__.py +0 -0
  234. {eodag-3.9.0 → eodag-3.10.0}/eodag/types/bbox.py +0 -0
  235. {eodag-3.9.0 → eodag-3.10.0}/eodag/types/download_args.py +0 -0
  236. {eodag-3.9.0 → eodag-3.10.0}/eodag/types/queryables.py +0 -0
  237. {eodag-3.9.0 → eodag-3.10.0}/eodag/types/search_args.py +0 -0
  238. {eodag-3.9.0 → eodag-3.10.0}/eodag/utils/__init__.py +0 -0
  239. {eodag-3.9.0 → eodag-3.10.0}/eodag/utils/cache.py +0 -0
  240. {eodag-3.9.0 → eodag-3.10.0}/eodag/utils/dates.py +0 -0
  241. {eodag-3.9.0 → eodag-3.10.0}/eodag/utils/env.py +0 -0
  242. {eodag-3.9.0 → eodag-3.10.0}/eodag/utils/exceptions.py +0 -0
  243. {eodag-3.9.0 → eodag-3.10.0}/eodag/utils/free_text_search.py +0 -0
  244. {eodag-3.9.0 → eodag-3.10.0}/eodag/utils/import_system.py +0 -0
  245. {eodag-3.9.0 → eodag-3.10.0}/eodag/utils/logging.py +0 -0
  246. {eodag-3.9.0 → eodag-3.10.0}/eodag/utils/notebook.py +0 -0
  247. {eodag-3.9.0 → eodag-3.10.0}/eodag/utils/repr.py +0 -0
  248. {eodag-3.9.0 → eodag-3.10.0}/eodag/utils/requests.py +0 -0
  249. {eodag-3.9.0 → eodag-3.10.0}/eodag/utils/s3.py +0 -0
  250. {eodag-3.9.0 → eodag-3.10.0}/eodag/utils/stac_reader.py +0 -0
  251. {eodag-3.9.0 → eodag-3.10.0}/eodag.egg-info/dependency_links.txt +0 -0
  252. {eodag-3.9.0 → eodag-3.10.0}/eodag.egg-info/entry_points.txt +0 -0
  253. {eodag-3.9.0 → eodag-3.10.0}/eodag.egg-info/top_level.txt +0 -0
  254. {eodag-3.9.0 → eodag-3.10.0}/get_pypi_latest_version.sh +0 -0
  255. {eodag-3.9.0 → eodag-3.10.0}/pytest.ini +0 -0
  256. {eodag-3.9.0 → eodag-3.10.0}/readthedocs.yml +0 -0
  257. {eodag-3.9.0 → eodag-3.10.0}/requirements-dev.txt +0 -0
  258. {eodag-3.9.0 → eodag-3.10.0}/requirements-docs.txt +0 -0
  259. {eodag-3.9.0 → eodag-3.10.0}/requirements-tutorials.txt +0 -0
  260. {eodag-3.9.0 → eodag-3.10.0}/requirements.txt +0 -0
  261. {eodag-3.9.0 → eodag-3.10.0}/setup.py +0 -0
  262. {eodag-3.9.0 → eodag-3.10.0}/tox.ini +0 -0
  263. {eodag-3.9.0 → eodag-3.10.0}/utils/params_mapping_to_csv.py +0 -0
  264. {eodag-3.9.0 → eodag-3.10.0}/utils/product_types_information_to_csv.py +0 -0
@@ -3,6 +3,64 @@ Release history
3
3
  ===============
4
4
 
5
5
 
6
+ v3.10.0 (2025-10-20)
7
+ ====================
8
+
9
+ Features
10
+ --------
11
+
12
+ * **plugins**: Possibility to create presigned urls (`#1845`_, `d002c38`_)
13
+
14
+ Bug Fixes
15
+ ---------
16
+
17
+ * **providers**: Added month/year mapping and default values for CMIP6_CLIMATE_PROJECT (`#1872`_,
18
+ `dcdca60`_)
19
+
20
+ Build System
21
+ ------------
22
+
23
+ * Pin pydantic < 2.12.0 to prevent sphinx failures (`#1873`_, `1b17b4a`_)
24
+
25
+ Refactoring
26
+ -----------
27
+
28
+ * **plugins**: Deprecate CreodiasS3Download (`#1884`_, `5f6966b`_)
29
+
30
+ .. _#1845: https://github.com/CS-SI/eodag/pull/1845
31
+ .. _#1872: https://github.com/CS-SI/eodag/pull/1872
32
+ .. _#1873: https://github.com/CS-SI/eodag/pull/1873
33
+ .. _#1884: https://github.com/CS-SI/eodag/pull/1884
34
+ .. _1b17b4a: https://github.com/CS-SI/eodag/commit/1b17b4af5f898ed608dd132e49477d28466f9451
35
+ .. _5f6966b: https://github.com/CS-SI/eodag/commit/5f6966bc52db1e19ad3f959bab41aca25804c3e5
36
+ .. _d002c38: https://github.com/CS-SI/eodag/commit/d002c38126f566f52903fb0e5012a22e771c3200
37
+ .. _dcdca60: https://github.com/CS-SI/eodag/commit/dcdca6012736f751418725312da736f61767ec36
38
+
39
+
40
+ v3.9.1 (2025-10-07)
41
+ ===================
42
+
43
+ Bug Fixes
44
+ ---------
45
+
46
+ * **plugins**: AwsAuth without credentials (`#1865`_, `ab04612`_)
47
+
48
+ * **providers**: Earth_search S2_MSI_L2A_COG assets href (`#1866`_, `f14ef6b`_)
49
+
50
+ * **providers**: Fix syntax error (`#1860`_, `d207f27`_)
51
+
52
+ * **providers**: PolarizationChannels mapping for STAC providers (`#1870`_, `819ecb2`_)
53
+
54
+ .. _#1860: https://github.com/CS-SI/eodag/pull/1860
55
+ .. _#1865: https://github.com/CS-SI/eodag/pull/1865
56
+ .. _#1866: https://github.com/CS-SI/eodag/pull/1866
57
+ .. _#1870: https://github.com/CS-SI/eodag/pull/1870
58
+ .. _819ecb2: https://github.com/CS-SI/eodag/commit/819ecb2127d7728236e32aadb1e605017c98cec6
59
+ .. _ab04612: https://github.com/CS-SI/eodag/commit/ab046125d1241adc164e8ffdec430b5d77d8193b
60
+ .. _d207f27: https://github.com/CS-SI/eodag/commit/d207f2701b472b8c6c75da5c63f0621736dedd8a
61
+ .. _f14ef6b: https://github.com/CS-SI/eodag/commit/f14ef6b1b11428f68bc1ff47e1b3081819e03d9a
62
+
63
+
6
64
  v3.9.0 (2025-09-26)
7
65
  ===================
8
66
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eodag
3
- Version: 3.9.0
3
+ Version: 3.10.0
4
4
  Summary: Earth Observation Data Access Gateway
5
5
  Home-page: https://github.com/CS-SI/eodag
6
6
  Author: CS GROUP - France
@@ -40,7 +40,7 @@ Requires-Dist: importlib_metadata>=5.0
40
40
  Requires-Dist: jsonpath-ng
41
41
  Requires-Dist: lxml
42
42
  Requires-Dist: orjson
43
- Requires-Dist: pydantic!=2.10.0,>=2.1.0
43
+ Requires-Dist: pydantic!=2.10.0,<2.12.0,>=2.1.0
44
44
  Requires-Dist: pydantic_core
45
45
  Requires-Dist: PyJWT[crypto]>=2.5.0
46
46
  Requires-Dist: pyproj>=2.1.0
@@ -317,7 +317,7 @@ An eodag instance can be exposed through a STAC compliant REST api from the comm
317
317
 
318
318
  .. code-block:: bash
319
319
 
320
- docker run -p 5000:5000 --rm csspace/eodag-server:3.9.0
320
+ docker run -p 5000:5000 --rm csspace/eodag-server:3.10.0
321
321
 
322
322
  You can also browse over your STAC API server using `STAC Browser <https://github.com/radiantearth/stac-browser>`_.
323
323
  Simply run:
@@ -185,7 +185,7 @@ An eodag instance can be exposed through a STAC compliant REST api from the comm
185
185
 
186
186
  .. code-block:: bash
187
187
 
188
- docker run -p 5000:5000 --rm csspace/eodag-server:3.9.0
188
+ docker run -p 5000:5000 --rm csspace/eodag-server:3.10.0
189
189
 
190
190
  You can also browse over your STAC API server using `STAC Browser <https://github.com/radiantearth/stac-browser>`_.
191
191
  Simply run:
@@ -1,5 +1,5 @@
1
1
  apiVersion: v2
2
- appVersion: 3.9.0
2
+ appVersion: 3.10.0
3
3
  dependencies:
4
4
  - name: common
5
5
  repository: oci://registry-1.docker.io/bitnamicharts
@@ -15,4 +15,4 @@ name: eodag-server
15
15
  sources:
16
16
  - https://github.com/CS-SI/eodag
17
17
  type: application
18
- version: 3.9.0
18
+ version: 3.10.0
@@ -258,6 +258,7 @@ intersphinx_mapping = {
258
258
  "rasterio": ("https://rasterio.readthedocs.io/en/stable/", None),
259
259
  "rioxarray": ("https://corteva.github.io/rioxarray/stable/", None),
260
260
  "fsspec": ("https://filesystem-spec.readthedocs.io/en/stable/", None),
261
+ "pydantic": ("https://docs.pydantic.dev/latest", None),
261
262
  }
262
263
 
263
264
  suppress_warnings = ["misc.copy_overwrite"]
@@ -46,6 +46,8 @@ The providers are implemented with a triplet of *Search/Authentication/Download*
46
46
  +------------------------+------------------------------------+---------------------------------+------------------+
47
47
  | ``creodias`` | |QueryStringSearch| | |KeycloakOIDCPasswordAuth| | |HTTPDownload| |
48
48
  +------------------------+------------------------------------+---------------------------------+------------------+
49
+ | ``creodias_s3`` | |QueryStringSearch| | |AwsAuth| | |AwsDownload| |
50
+ +------------------------+------------------------------------+---------------------------------+------------------+
49
51
  | ``dedl`` | |StacSearch| | |OIDCTokenExchangeAuth| | |HTTPDownload| |
50
52
  +------------------------+------------------------------------+---------------------------------+------------------+
51
53
  | ``dedt_lumi`` | |ECMWFSearch| | |OIDCAuthorizationCodeFlowAuth| | |HTTPDownload| |
@@ -98,7 +100,6 @@ The providers are implemented with a triplet of *Search/Authentication/Download*
98
100
 
99
101
  .. |AwsDownload| replace:: :class:`~eodag.plugins.download.aws.AwsDownload`
100
102
  .. |HTTPDownload| replace:: :class:`~eodag.plugins.download.http.HTTPDownload`
101
- .. |CreodiasS3Download| replace:: :class:`~eodag.plugins.download.creodias_s3.CreodiasS3Download`
102
103
 
103
104
  .. |QueryStringSearch| replace:: :class:`~eodag.plugins.search.qssearch.QueryStringSearch`
104
105
  .. |ODataV4Search| replace:: :class:`~eodag.plugins.search.qssearch.ODataV4Search`
@@ -99,7 +99,7 @@ available on `https://hub.docker.com/r/csspace/eodag-server <https://hub.docker.
99
99
 
100
100
  .. code-block:: bash
101
101
 
102
- $ docker run -p 5000:5000 --rm csspace/eodag-server:3.9.0
102
+ $ docker run -p 5000:5000 --rm csspace/eodag-server:3.10.0
103
103
 
104
104
  Example
105
105
  -------
@@ -149,42 +149,38 @@ def format_metadata(search_param: str, *args: Any, **kwargs: Any) -> str:
149
149
  """Format a string of form ``{<field_name>#<conversion_function>}``
150
150
 
151
151
  The currently understood converters are:
152
- - ``datetime_to_timestamp_milliseconds``: converts a utc date string to a timestamp in
153
- milliseconds
154
- - ``to_rounded_wkt``: simplify the WKT of a geometry
155
- - ``to_bounds_lists``: convert to list(s) of bounds
156
- - ``to_nwse_bounds``: convert to North,West,South,East bounds
157
- - ``to_nwse_bounds_str``: convert to North,West,South,East bounds string with given separator
158
- - ``to_geojson``: convert to a GeoJSON (via __geo_interface__ if exists)
152
+ - ``ceda_collection_name``: generate a CEDA collection name from a string
153
+ - ``csv_list``: convert to a comma separated list
154
+ - ``datetime_to_timestamp_milliseconds``: converts a utc date string to a timestamp in milliseconds
155
+ - ``dict_filter_and_sub``: filter dict items using jsonpath and then apply recursive_sub_str
156
+ - ``fake_l2a_title_from_l1c``: used to generate SAFE format metadata for data from AWS
157
+ - ``from_alternate``: update assets using given alternate
159
158
  - ``from_ewkt``: convert EWKT to shapely geometry / WKT in DEFAULT_PROJ
160
- - ``to_ewkt``: convert to EWKT (Extended Well-Known text)
161
159
  - ``from_georss``: convert GeoRSS to shapely geometry / WKT in DEFAULT_PROJ
162
- - ``csv_list``: convert to a comma separated list
163
- - ``to_iso_utc_datetime_from_milliseconds``: convert a utc timestamp in given
164
- milliseconds to a utc iso datetime
165
- - ``to_iso_utc_datetime``: convert a UTC datetime string to ISO UTC datetime
166
- string
167
- - ``to_iso_date``: remove the time part of a iso datetime string
168
- - ``remove_extension``: on a string that contains dots, only take the first
169
- part of the list obtained by splitting the string on dots
160
+ - ``get_ecmwf_time``: get the time of a datetime string in the ECMWF format
170
161
  - ``get_group_name``: get the matching regex group name
162
+ - ``recursive_sub_str``: recursively substitue in the structure (e.g. dict) values matching a regex
163
+ - ``remove_extension``: on a string that contains dots, only take the first part of the list obtained by
164
+ splitting the string on dots
171
165
  - ``replace_str``: execute "string".replace(old, new)
172
- - ``recursive_sub_str``: recursively substitue in the structure (e.g. dict)
173
- values matching a regex
174
- - ``slice_str``: slice a string (equivalent to s[start, end, step])
175
- - ``to_lower``: Convert a string to lowercase
176
- - ``to_upper``: Convert a string to uppercase
177
- - ``to_title``: Convert a string to title case
178
- - ``fake_l2a_title_from_l1c``: used to generate SAFE format metadata for data from AWS
179
166
  - ``s2msil2a_title_to_aws_productinfo``: used to generate SAFE format metadata for data from AWS
167
+ - ``sanitize``: sanitize string
168
+ - ``slice_str``: slice a string (equivalent to s[start, end, step])
180
169
  - ``split_cop_dem_id``: get the bbox by splitting the product id
181
170
  - ``split_corine_id``: get the product type by splitting the product id
171
+ - ``to_bounds_lists``: convert to list(s) of bounds
182
172
  - ``to_datetime_dict``: convert a datetime string to a dictionary where values are either a string or a list
183
- - ``get_ecmwf_time``: get the time of a datetime string in the ECMWF format
184
- - ``sanitize``: sanitize string
185
- - ``ceda_collection_name``: generate a CEDA collection name from a string
186
- - ``convert_dict_filter_and_sub``: filter dict items using jsonpath and then apply recursive_sub_str
187
- - ``convert_from_alternate``: update assets using given alternate
173
+ - ``to_ewkt``: convert to EWKT (Extended Well-Known text)
174
+ - ``to_geojson``: convert to a GeoJSON (via __geo_interface__ if exists)
175
+ - ``to_iso_date``: remove the time part of a iso datetime string
176
+ - ``to_iso_utc_datetime_from_milliseconds``: convert a utc timestamp in given milliseconds to a utc iso datetime
177
+ - ``to_iso_utc_datetime``: convert a UTC datetime string to ISO UTC datetime string
178
+ - ``to_lower``: Convert a string to lowercase
179
+ - ``to_nwse_bounds_str``: convert to North,West,South,East bounds string with given separator
180
+ - ``to_nwse_bounds``: convert to North,West,South,East bounds
181
+ - ``to_rounded_wkt``: simplify the WKT of a geometry
182
+ - ``to_title``: Convert a string to title case
183
+ - ``to_upper``: Convert a string to uppercase
188
184
 
189
185
  :param search_param: The string to be formatted
190
186
  :param args: (optional) Additional arguments to use in the formatting process
@@ -490,9 +486,9 @@ def format_metadata(search_param: str, *args: Any, **kwargs: Any) -> str:
490
486
  return {"lon": lon, "lat": lat}
491
487
 
492
488
  @staticmethod
493
- def convert_csv_list(values_list: Any) -> Any:
489
+ def convert_csv_list(values_list: Any, separator=",") -> Any:
494
490
  if isinstance(values_list, list):
495
- return ",".join([str(x) for x in values_list])
491
+ return separator.join([str(x) for x in values_list])
496
492
  else:
497
493
  return values_list
498
494
 
@@ -24,9 +24,11 @@ import boto3
24
24
  from botocore.exceptions import ClientError, ProfileNotFound
25
25
  from botocore.handlers import disable_signing
26
26
 
27
+ from eodag.api.product._assets import Asset
27
28
  from eodag.plugins.authentication.base import Authentication
28
29
  from eodag.types import S3SessionKwargs
29
- from eodag.utils.exceptions import AuthenticationError
30
+ from eodag.utils import get_bucket_name_and_prefix
31
+ from eodag.utils.exceptions import AuthenticationError, EodagError
30
32
 
31
33
  if TYPE_CHECKING:
32
34
  from mypy_boto3_s3 import S3Client, S3ServiceResource
@@ -106,9 +108,12 @@ class AwsAuth(Authentication):
106
108
  def _create_s3_session_from_credentials(self) -> boto3.Session:
107
109
  credentials = getattr(self.config, "credentials", {}) or {}
108
110
  if "aws_profile" in credentials:
111
+ logger.debug("Authentication using AWS profile")
109
112
  return create_s3_session(profile_name=credentials["aws_profile"])
110
113
  # auth using aws keys
111
- elif credentials:
114
+ elif credentials.get("aws_access_key_id") and credentials.get(
115
+ "aws_secret_access_key"
116
+ ):
112
117
  s3_session_kwargs: S3SessionKwargs = {
113
118
  "aws_access_key_id": credentials["aws_access_key_id"],
114
119
  "aws_secret_access_key": credentials["aws_secret_access_key"],
@@ -120,6 +125,7 @@ class AwsAuth(Authentication):
120
125
  return create_s3_session(**s3_session_kwargs)
121
126
  else:
122
127
  # auth using env variables or ~/.aws
128
+ logger.debug("Authentication using AWS environment")
123
129
  return create_s3_session()
124
130
 
125
131
  def _create_s3_resource(self) -> S3ServiceResource:
@@ -133,6 +139,9 @@ class AwsAuth(Authentication):
133
139
  endpoint_url=endpoint_url,
134
140
  )
135
141
  # could not auth using credentials: use no-sign-request strategy
142
+ logger.debug(
143
+ "Authentication using AWS no-sign-request strategy (no credentials found)"
144
+ )
136
145
  s3_resource = boto3.resource(service_name="s3", endpoint_url=endpoint_url)
137
146
  s3_resource.meta.client.meta.events.register(
138
147
  "choose-signer.s3.*", disable_signing
@@ -276,3 +285,36 @@ class AwsAuth(Authentication):
276
285
  "session": self.s3_session,
277
286
  **rio_env_kwargs,
278
287
  }
288
+
289
+ def presign_url(
290
+ self,
291
+ asset: Asset,
292
+ expires_in: int = 3600,
293
+ ) -> str:
294
+ """This method is used to presign a url to download an asset from S3.
295
+
296
+ :param asset: asset for which the url shall be presigned
297
+ :param expires_in: expiration time of the presigned url in seconds
298
+ :returns: presigned url
299
+ :raises: :class:`~eodag.utils.exceptions.EodagError`
300
+ :raises: :class:`NotImplementedError`
301
+ """
302
+ if not getattr(self.config, "support_presign_url", True):
303
+ raise NotImplementedError(
304
+ f"presign_url is not supported for provider {self.provider}"
305
+ )
306
+
307
+ s3_client = self.get_s3_client()
308
+ bucket, prefix = get_bucket_name_and_prefix(asset["href"])
309
+ try:
310
+ presigned_url = s3_client.generate_presigned_url(
311
+ "get_object",
312
+ Params={
313
+ "Bucket": bucket,
314
+ "Key": prefix,
315
+ },
316
+ ExpiresIn=expires_in,
317
+ )
318
+ return presigned_url
319
+ except ClientError:
320
+ raise EodagError(f"Couldn't get a presigned URL for '{asset}'.")
@@ -19,6 +19,7 @@ from __future__ import annotations
19
19
 
20
20
  from typing import TYPE_CHECKING, Any, Optional, Union
21
21
 
22
+ from eodag.api.product._assets import Asset
22
23
  from eodag.plugins.base import PluginTopic
23
24
  from eodag.utils.exceptions import MisconfiguredError
24
25
 
@@ -80,3 +81,19 @@ class Authentication(PluginTopic):
80
81
  Authenticates with s3 and retrieves the available objects
81
82
  """
82
83
  raise NotImplementedError
84
+
85
+ def presign_url(
86
+ self,
87
+ asset: Asset,
88
+ expires_in: int = 3600,
89
+ ) -> str:
90
+ """This method is used to presign a url to download an asset from S3.
91
+
92
+ :param asset: asset for which the url shall be presigned
93
+ :param expires_in: expiration time of the presigned url in seconds
94
+ :returns: presigned url
95
+ :raises: :class:`NotImplementedError`
96
+ """
97
+ raise NotImplementedError(
98
+ f"presign_url is not implemented for plugin {type(self).__name__}"
99
+ )
@@ -25,6 +25,7 @@ from typing import TYPE_CHECKING, Optional
25
25
  import requests
26
26
  from requests.auth import AuthBase
27
27
 
28
+ from eodag.api.product._assets import Asset
28
29
  from eodag.plugins.authentication.base import Authentication
29
30
  from eodag.utils import HTTP_REQ_TIMEOUT, USER_AGENT, deepcopy, format_dict_items
30
31
  from eodag.utils.exceptions import AuthenticationError, TimeOutError
@@ -143,3 +144,17 @@ class SASAuth(Authentication):
143
144
  ssl_verify=ssl_verify,
144
145
  matching_url=matching_url,
145
146
  )
147
+
148
+ def presign_url(
149
+ self,
150
+ asset: Asset,
151
+ expires_in: int = 3600,
152
+ ) -> str:
153
+ """This method is used to presign a url to download an asset.
154
+
155
+ :param asset: asset for which the url shall be presigned
156
+ :param expires_in: expiration time of the presigned url in seconds
157
+ :returns: presigned url
158
+ """
159
+ url = asset["href"]
160
+ return self.config.auth_uri.format(url=url)
@@ -15,12 +15,19 @@
15
15
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
+ from __future__ import annotations
19
+
18
20
  from typing import Optional
19
21
 
20
22
  from eodag import EOProduct
21
23
  from eodag.plugins.download.aws import AwsDownload
24
+ from eodag.utils import _deprecated
22
25
 
23
26
 
27
+ @_deprecated(
28
+ reason="Plugin that was used in creodias_s3 provider configuration, but not anymore",
29
+ version="3.10.0",
30
+ )
24
31
  class CreodiasS3Download(AwsDownload):
25
32
  """
26
33
  Download on creodias s3 from their VMs (extension of :class:`~eodag.plugins.download.aws.AwsDownload`)