eodag 3.10.1__py3-none-any.whl → 4.0.0a2__py3-none-any.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.
- eodag/__init__.py +6 -1
- eodag/api/collection.py +353 -0
- eodag/api/core.py +606 -641
- eodag/api/product/__init__.py +3 -3
- eodag/api/product/_product.py +74 -56
- eodag/api/product/drivers/__init__.py +4 -46
- eodag/api/product/drivers/base.py +0 -28
- eodag/api/product/metadata_mapping.py +178 -216
- eodag/api/search_result.py +156 -15
- eodag/cli.py +83 -403
- eodag/config.py +81 -51
- eodag/plugins/apis/base.py +2 -2
- eodag/plugins/apis/ecmwf.py +36 -25
- eodag/plugins/apis/usgs.py +55 -40
- eodag/plugins/authentication/base.py +1 -3
- eodag/plugins/crunch/filter_date.py +3 -3
- eodag/plugins/crunch/filter_latest_intersect.py +2 -2
- eodag/plugins/crunch/filter_latest_tpl_name.py +1 -1
- eodag/plugins/download/aws.py +46 -42
- eodag/plugins/download/base.py +13 -14
- eodag/plugins/download/http.py +65 -65
- eodag/plugins/manager.py +28 -29
- eodag/plugins/search/__init__.py +6 -4
- eodag/plugins/search/base.py +131 -80
- eodag/plugins/search/build_search_result.py +245 -173
- eodag/plugins/search/cop_marine.py +87 -56
- eodag/plugins/search/csw.py +47 -37
- eodag/plugins/search/qssearch.py +653 -429
- eodag/plugins/search/stac_list_assets.py +1 -1
- eodag/plugins/search/static_stac_search.py +43 -44
- eodag/resources/{product_types.yml → collections.yml} +2594 -2453
- eodag/resources/ext_collections.json +1 -1
- eodag/resources/ext_product_types.json +1 -1
- eodag/resources/providers.yml +2706 -2733
- eodag/resources/stac_provider.yml +50 -92
- eodag/resources/user_conf_template.yml +9 -0
- eodag/types/__init__.py +2 -0
- eodag/types/queryables.py +70 -91
- eodag/types/search_args.py +1 -1
- eodag/utils/__init__.py +97 -21
- eodag/utils/dates.py +0 -12
- eodag/utils/exceptions.py +6 -6
- eodag/utils/free_text_search.py +3 -3
- eodag/utils/repr.py +2 -0
- {eodag-3.10.1.dist-info → eodag-4.0.0a2.dist-info}/METADATA +13 -99
- eodag-4.0.0a2.dist-info/RECORD +93 -0
- {eodag-3.10.1.dist-info → eodag-4.0.0a2.dist-info}/entry_points.txt +0 -4
- eodag/plugins/authentication/oauth.py +0 -60
- eodag/plugins/download/creodias_s3.py +0 -71
- eodag/plugins/download/s3rest.py +0 -351
- eodag/plugins/search/data_request_search.py +0 -565
- eodag/resources/stac.yml +0 -294
- eodag/resources/stac_api.yml +0 -2105
- eodag/rest/__init__.py +0 -24
- eodag/rest/cache.py +0 -70
- eodag/rest/config.py +0 -67
- eodag/rest/constants.py +0 -26
- eodag/rest/core.py +0 -764
- eodag/rest/errors.py +0 -210
- eodag/rest/server.py +0 -604
- eodag/rest/server.wsgi +0 -6
- eodag/rest/stac.py +0 -1032
- eodag/rest/templates/README +0 -1
- eodag/rest/types/__init__.py +0 -18
- eodag/rest/types/collections_search.py +0 -44
- eodag/rest/types/eodag_search.py +0 -386
- eodag/rest/types/queryables.py +0 -174
- eodag/rest/types/stac_search.py +0 -272
- eodag/rest/utils/__init__.py +0 -207
- eodag/rest/utils/cql_evaluate.py +0 -119
- eodag/rest/utils/rfc3339.py +0 -64
- eodag-3.10.1.dist-info/RECORD +0 -116
- {eodag-3.10.1.dist-info → eodag-4.0.0a2.dist-info}/WHEEL +0 -0
- {eodag-3.10.1.dist-info → eodag-4.0.0a2.dist-info}/licenses/LICENSE +0 -0
- {eodag-3.10.1.dist-info → eodag-4.0.0a2.dist-info}/top_level.txt +0 -0
eodag/utils/exceptions.py
CHANGED
|
@@ -49,11 +49,11 @@ class UnsupportedProvider(EodagError):
|
|
|
49
49
|
"""An error indicating that eodag does not support a provider"""
|
|
50
50
|
|
|
51
51
|
|
|
52
|
-
class
|
|
53
|
-
"""An error indicating that eodag does not support a
|
|
52
|
+
class UnsupportedCollection(EodagError):
|
|
53
|
+
"""An error indicating that eodag does not support a collection"""
|
|
54
54
|
|
|
55
|
-
def __init__(self,
|
|
56
|
-
self.
|
|
55
|
+
def __init__(self, collection: str) -> None:
|
|
56
|
+
self.collection = collection
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
class UnsupportedDatasetAddressScheme(EodagError):
|
|
@@ -70,8 +70,8 @@ class NotAvailableError(EodagError):
|
|
|
70
70
|
"""An error indicating that the product is not available for download"""
|
|
71
71
|
|
|
72
72
|
|
|
73
|
-
class
|
|
74
|
-
"""An error indicating that eodag was unable to derive a
|
|
73
|
+
class NoMatchingCollection(EodagError):
|
|
74
|
+
"""An error indicating that eodag was unable to derive a collection from a set
|
|
75
75
|
of search parameters"""
|
|
76
76
|
|
|
77
77
|
|
eodag/utils/free_text_search.py
CHANGED
|
@@ -197,17 +197,17 @@ def compile_free_text_query(query: str) -> Callable[[dict[str, str]], bool]:
|
|
|
197
197
|
>>> evaluator = compile_free_text_query('("FooAndBar" OR BAR) AND "FOOBAR collection"')
|
|
198
198
|
>>> evaluator({
|
|
199
199
|
... "title": "titleFOOBAR - Lorem FOOBAR collection",
|
|
200
|
-
... "
|
|
200
|
+
... "description": "abstract FOOBAR - This is FOOBAR. FooAndBar"
|
|
201
201
|
... })
|
|
202
202
|
True
|
|
203
203
|
>>> evaluator({
|
|
204
204
|
... "title": "collection FOOBAR",
|
|
205
|
-
... "
|
|
205
|
+
... "description": "abstract FOOBAR - This is FOOBAR. FooAndBar"
|
|
206
206
|
... })
|
|
207
207
|
False
|
|
208
208
|
>>> evaluator({
|
|
209
209
|
... "title": "titleFOOBAR - Lorem FOOBAR ",
|
|
210
|
-
... "
|
|
210
|
+
... "description": "abstract FOOBAR - This is FOOBAR."
|
|
211
211
|
... })
|
|
212
212
|
False
|
|
213
213
|
>>> evaluator({"title": "Only Bar here"})
|
eodag/utils/repr.py
CHANGED
|
@@ -90,6 +90,7 @@ def dict_to_html_table(
|
|
|
90
90
|
</tr>
|
|
91
91
|
"""
|
|
92
92
|
for k, v in input_dict.items()
|
|
93
|
+
if v is not None
|
|
93
94
|
]
|
|
94
95
|
)
|
|
95
96
|
+ f"</table>{closing_bracket}"
|
|
@@ -103,6 +104,7 @@ def dict_to_html_table(
|
|
|
103
104
|
'{k}': {html_table(v, depth=depth)}
|
|
104
105
|
</span>"""
|
|
105
106
|
for k, v in input_dict.items()
|
|
107
|
+
if v is not None
|
|
106
108
|
]
|
|
107
109
|
)
|
|
108
110
|
+ f"{closing_bracket}"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: eodag
|
|
3
|
-
Version:
|
|
3
|
+
Version: 4.0.0a2
|
|
4
4
|
Summary: Earth Observation Data Access Gateway
|
|
5
5
|
Home-page: https://github.com/CS-SI/eodag
|
|
6
6
|
Author: CS GROUP - France
|
|
@@ -23,7 +23,6 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
23
23
|
Classifier: Programming Language :: Python :: 3.11
|
|
24
24
|
Classifier: Programming Language :: Python :: 3.12
|
|
25
25
|
Classifier: Programming Language :: Python :: 3.13
|
|
26
|
-
Classifier: Programming Language :: Python :: 3.14
|
|
27
26
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
28
27
|
Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
|
|
29
28
|
Classifier: Topic :: Scientific/Engineering :: GIS
|
|
@@ -41,7 +40,7 @@ Requires-Dist: importlib_metadata>=5.0
|
|
|
41
40
|
Requires-Dist: jsonpath-ng
|
|
42
41
|
Requires-Dist: lxml
|
|
43
42
|
Requires-Dist: orjson
|
|
44
|
-
Requires-Dist: pydantic!=2.10.0,>=2.1.0
|
|
43
|
+
Requires-Dist: pydantic!=2.10.0,<2.12.0,>=2.1.0
|
|
45
44
|
Requires-Dist: pydantic_core
|
|
46
45
|
Requires-Dist: PyJWT[crypto]>=2.5.0
|
|
47
46
|
Requires-Dist: pyproj>=2.1.0
|
|
@@ -51,6 +50,7 @@ Requires-Dist: python-dateutil
|
|
|
51
50
|
Requires-Dist: PyYAML
|
|
52
51
|
Requires-Dist: requests
|
|
53
52
|
Requires-Dist: shapely>=2.0.6
|
|
53
|
+
Requires-Dist: stac-pydantic
|
|
54
54
|
Requires-Dist: tqdm
|
|
55
55
|
Requires-Dist: typing_extensions>=4.8.0
|
|
56
56
|
Requires-Dist: urllib3
|
|
@@ -103,7 +103,7 @@ Requires-Dist: moto>=5; extra == "dev"
|
|
|
103
103
|
Requires-Dist: twine; extra == "dev"
|
|
104
104
|
Requires-Dist: wheel; extra == "dev"
|
|
105
105
|
Requires-Dist: flake8; extra == "dev"
|
|
106
|
-
Requires-Dist:
|
|
106
|
+
Requires-Dist: prek; extra == "dev"
|
|
107
107
|
Requires-Dist: responses!=0.24.0; extra == "dev"
|
|
108
108
|
Requires-Dist: fastapi[all]; extra == "dev"
|
|
109
109
|
Requires-Dist: stdlib-list; extra == "dev"
|
|
@@ -121,6 +121,7 @@ Requires-Dist: types-tqdm; extra == "stubs"
|
|
|
121
121
|
Requires-Dist: types-urllib3; extra == "stubs"
|
|
122
122
|
Provides-Extra: docs
|
|
123
123
|
Requires-Dist: eodag[all,stubs]; extra == "docs"
|
|
124
|
+
Requires-Dist: autodoc_pydantic; extra == "docs"
|
|
124
125
|
Requires-Dist: nbsphinx; extra == "docs"
|
|
125
126
|
Requires-Dist: sphinx; extra == "docs"
|
|
126
127
|
Requires-Dist: sphinx-autodoc-typehints; extra == "docs"
|
|
@@ -176,9 +177,9 @@ EODAG (Earth Observation Data Access Gateway) is a command line tool and a plugi
|
|
|
176
177
|
aggregating results and downloading remote sensed images while offering a unified API for data access regardless of the
|
|
177
178
|
data provider. The EODAG SDK is structured around three functions:
|
|
178
179
|
|
|
179
|
-
* List
|
|
180
|
+
* List collections: list of supported products and their description
|
|
180
181
|
|
|
181
|
-
* Search products (by
|
|
182
|
+
* Search products (by collection or uid): searches products according to the search criteria provided
|
|
182
183
|
|
|
183
184
|
* Download products: download product “as is"
|
|
184
185
|
|
|
@@ -191,7 +192,7 @@ integrate new data providers. Three types of plugins compose the tool:
|
|
|
191
192
|
* Download plugins, allowing to download and retrieve data locally (via HTTP, S3, ...), always with the same directory
|
|
192
193
|
organization
|
|
193
194
|
|
|
194
|
-
* Authentication plugins, which are used to authenticate the user on the external services used (JSON Token, Basic Auth,
|
|
195
|
+
* Authentication plugins, which are used to authenticate the user on the external services used (JSON Token, Basic Auth, OIDC, ...).
|
|
195
196
|
|
|
196
197
|
Read `the documentation <https://eodag.readthedocs.io/en/latest/>`_ for more insights.
|
|
197
198
|
|
|
@@ -242,7 +243,7 @@ Example usage for interacting with the api in your Python code:
|
|
|
242
243
|
dag = EODataAccessGateway()
|
|
243
244
|
|
|
244
245
|
search_results = dag.search(
|
|
245
|
-
|
|
246
|
+
collection='S2_MSI_L1C',
|
|
246
247
|
geom={'lonmin': 1, 'latmin': 43.5, 'lonmax': 2, 'latmax': 44}, # accepts WKT polygons, shapely.geometry, ...
|
|
247
248
|
start='2021-01-01',
|
|
248
249
|
end='2021-01-15'
|
|
@@ -263,84 +264,6 @@ check the `Python API User Guide <https://eodag.readthedocs.io/en/latest/api_use
|
|
|
263
264
|
`search() <https://eodag.readthedocs.io/en/latest/api_reference/core.html#eodag.api.core.EODataAccessGateway.search>`_ method now returns
|
|
264
265
|
only a single ``SearchResult`` instead of a 2 values tuple.
|
|
265
266
|
|
|
266
|
-
STAC REST API
|
|
267
|
-
-------------
|
|
268
|
-
|
|
269
|
-
An eodag instance can be exposed through a STAC compliant REST api from the command line (``eodag[server]`` needed):
|
|
270
|
-
|
|
271
|
-
.. code-block:: bash
|
|
272
|
-
|
|
273
|
-
$ eodag serve-rest --help
|
|
274
|
-
Usage: eodag serve-rest [OPTIONS]
|
|
275
|
-
|
|
276
|
-
Start eodag HTTP server
|
|
277
|
-
|
|
278
|
-
Set EODAG_CORS_ALLOWED_ORIGINS environment variable to configure Cross-
|
|
279
|
-
Origin Resource Sharing allowed origins as comma-separated URLs (e.g.
|
|
280
|
-
'http://somewhere,htttp://somewhere.else').
|
|
281
|
-
|
|
282
|
-
Options:
|
|
283
|
-
-f, --config PATH File path to the user configuration file with its
|
|
284
|
-
credentials, default is ~/.config/eodag/eodag.yml
|
|
285
|
-
-l, --locs PATH File path to the location shapefiles configuration file
|
|
286
|
-
-d, --daemon run in daemon mode
|
|
287
|
-
-w, --world run uvicorn using IPv4 0.0.0.0 (all network interfaces),
|
|
288
|
-
otherwise bind to 127.0.0.1 (localhost).
|
|
289
|
-
-p, --port INTEGER The port on which to listen [default: 5000]
|
|
290
|
-
--debug Run in debug mode (for development purpose)
|
|
291
|
-
--help Show this message and exit.
|
|
292
|
-
|
|
293
|
-
# run server
|
|
294
|
-
$ eodag serve-rest
|
|
295
|
-
|
|
296
|
-
# list available product types for ``peps`` provider:
|
|
297
|
-
$ curl "http://127.0.0.1:5000/collections?provider=peps" | jq ".collections[].id"
|
|
298
|
-
"S1_SAR_GRD"
|
|
299
|
-
"S1_SAR_OCN"
|
|
300
|
-
"S1_SAR_SLC"
|
|
301
|
-
"S2_MSI_L1C"
|
|
302
|
-
"S2_MSI_L2A"
|
|
303
|
-
|
|
304
|
-
# search for items
|
|
305
|
-
$ curl "http://127.0.0.1:5000/search?collections=S2_MSI_L1C&bbox=0,43,1,44&datetime=2018-01-20/2018-01-25" \
|
|
306
|
-
| jq ".numberMatched"
|
|
307
|
-
6
|
|
308
|
-
|
|
309
|
-
# get download link
|
|
310
|
-
$ curl "http://127.0.0.1:5000/collections/S2_MSI_L1C/items" \
|
|
311
|
-
| jq ".features[0].assets.downloadLink.href"
|
|
312
|
-
"http://127.0.0.1:5002/collections/S2_MSI_L1C/items/S2B_MSIL1C_20240917T115259_N0511_R137_T21CWS_20240917T145134/download"
|
|
313
|
-
|
|
314
|
-
# download
|
|
315
|
-
$ wget "http://127.0.0.1:5002/collections/S2_MSI_L1C/items/S2B_MSIL1C_20240917T115259_N0511_R137_T21CWS_20240917T145134/download"
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
``eodag-server`` is available on `https://hub.docker.com/r/csspace/eodag-server <https://hub.docker.com/r/csspace/eodag-server>`_:
|
|
319
|
-
|
|
320
|
-
.. code-block:: bash
|
|
321
|
-
|
|
322
|
-
docker run -p 5000:5000 --rm csspace/eodag-server:3.10.1
|
|
323
|
-
|
|
324
|
-
You can also browse over your STAC API server using `STAC Browser <https://github.com/radiantearth/stac-browser>`_.
|
|
325
|
-
Simply run:
|
|
326
|
-
|
|
327
|
-
.. code-block:: bash
|
|
328
|
-
|
|
329
|
-
git clone https://github.com/CS-SI/eodag.git
|
|
330
|
-
cd eodag
|
|
331
|
-
docker-compose up
|
|
332
|
-
# or for a more verbose logging:
|
|
333
|
-
EODAG_LOGGING=3 docker-compose up
|
|
334
|
-
|
|
335
|
-
And browse http://127.0.0.1:5001:
|
|
336
|
-
|
|
337
|
-
.. image:: https://raw.githubusercontent.com/CS-SI/eodag/develop/docs/_static/stac_browser_example_600.png
|
|
338
|
-
:target: https://raw.githubusercontent.com/CS-SI/eodag/develop/docs/_static/stac_browser_example.png
|
|
339
|
-
:alt: STAC browser example
|
|
340
|
-
:width: 600px
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
For more information, see `STAC REST API usage <https://eodag.readthedocs.io/en/latest/stac_rest.html>`_.
|
|
344
267
|
|
|
345
268
|
Command line interface
|
|
346
269
|
----------------------
|
|
@@ -349,9 +272,9 @@ Start playing with the CLI:
|
|
|
349
272
|
|
|
350
273
|
- To search for some products::
|
|
351
274
|
|
|
352
|
-
eodag search --
|
|
275
|
+
eodag search --collection S2_MSI_L1C --box 1 43 2 44 --start 2021-03-01 --end 2021-03-31
|
|
353
276
|
|
|
354
|
-
The request above searches for ``S2_MSI_L1C``
|
|
277
|
+
The request above searches for ``S2_MSI_L1C`` collections in a given bounding box, in March 2021. It saves the results in a GeoJSON file (``search_results.geojson`` by default).
|
|
355
278
|
|
|
356
279
|
Results are paginated, you may want to get all pages at once with ``--all``, or search products having 20% of maximum coud cover with ``--cloudCover 20``. For more information on available options::
|
|
357
280
|
|
|
@@ -365,11 +288,11 @@ Start playing with the CLI:
|
|
|
365
288
|
|
|
366
289
|
eodag download --quicklooks --search-results search_results.geojson
|
|
367
290
|
|
|
368
|
-
- To list all available
|
|
291
|
+
- To list all available collections and supported providers::
|
|
369
292
|
|
|
370
293
|
eodag list
|
|
371
294
|
|
|
372
|
-
- To list available
|
|
295
|
+
- To list available collections on a specified supported provider::
|
|
373
296
|
|
|
374
297
|
eodag list -p creodias
|
|
375
298
|
|
|
@@ -379,15 +302,6 @@ Start playing with the CLI:
|
|
|
379
302
|
|
|
380
303
|
- To print log messages, add ``-v`` to eodag master command. e.g. ``eodag -v list``. The more ``v`` given (up to 3), the more verbose the tool is. For a full verbose output, do for example: ``eodag -vvv list``
|
|
381
304
|
|
|
382
|
-
Docker image
|
|
383
|
-
------------
|
|
384
|
-
|
|
385
|
-
A Docker image is available via the `GitHub Container Registry <https://github.com/CS-SI/eodag/pkgs/container/eodag>`_:
|
|
386
|
-
|
|
387
|
-
.. code-block:: bash
|
|
388
|
-
|
|
389
|
-
docker pull ghcr.io/cs-si/eodag:v3.10.x
|
|
390
|
-
|
|
391
305
|
Contribute
|
|
392
306
|
==========
|
|
393
307
|
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
eodag/__init__.py,sha256=vS9nq3ZOcdlHxCakeRqCV4nm8q3r7ZKr-p7RQg0gatg,1627
|
|
2
|
+
eodag/cli.py,sha256=gHxZmE0qCnChhiW0C-9aoet7vsMsloMIt5gvT82zIZM,22051
|
|
3
|
+
eodag/config.py,sha256=uErvz-nQHPRAzUnlxSgq5SxHCxWfDSML3xhm_BDBR1s,49862
|
|
4
|
+
eodag/crunch.py,sha256=fLVAPGVPw31N_DrnFk4gkCpQZLMY8oBhK6NUSYmdr24,1099
|
|
5
|
+
eodag/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
+
eodag/api/__init__.py,sha256=ytr30NUVmEtmJTsp3QCwkCIhS1nF6UlFCv0vmySHN7g,735
|
|
7
|
+
eodag/api/collection.py,sha256=qiVtXO6eqAJTmJFiKKXbHFXbQRlttojW_3kKegOjZYo,13720
|
|
8
|
+
eodag/api/core.py,sha256=82c7CHEhHdnkHDlzIxHigaYGereQ8aECkTnsBv5dWUk,107085
|
|
9
|
+
eodag/api/search_result.py,sha256=LGWIQgbhQF5Lz489vcvalb2VsYtplyzUXGWMqduP0uc,21107
|
|
10
|
+
eodag/api/product/__init__.py,sha256=6-RXKAw-sZVNU-7KjpmSqLc35dfc0V42wI5GqIzH2QA,2501
|
|
11
|
+
eodag/api/product/_assets.py,sha256=9bWIe_SYvsQO-q_lQFd7SxhUIWv7feze2-wnXOe8hhs,7570
|
|
12
|
+
eodag/api/product/_product.py,sha256=wwj-L95TgUJsfcYVfbqwNfTdOTciAUISknxeujBtLEg,27387
|
|
13
|
+
eodag/api/product/metadata_mapping.py,sha256=OhB5JhyMLwCrXYJbdk2Nep0Kd-lFeiCWLtw1pa3XukU,76821
|
|
14
|
+
eodag/api/product/drivers/__init__.py,sha256=v85lXHsfrkn59uyMgConb5ZY9acCCx95srdsh_wFIlM,1998
|
|
15
|
+
eodag/api/product/drivers/base.py,sha256=MvaXicICn9DxXsaJuK34nPM3__TksstZXSVfABcINAc,2776
|
|
16
|
+
eodag/api/product/drivers/generic.py,sha256=obwH8paf2TP7afnjfx4GxSZPSrTs3suTYJWQvebmigY,2207
|
|
17
|
+
eodag/api/product/drivers/sentinel1.py,sha256=xpvhOvVhpuwVihPMo_q79VI67ru-FqKtbRa5kA79D3k,3253
|
|
18
|
+
eodag/api/product/drivers/sentinel2.py,sha256=dMfIrcwF4h8KoyUj94yPUhRiN7FIef4mTzfbkkhLIc8,3124
|
|
19
|
+
eodag/plugins/__init__.py,sha256=KQkD5aVwb9I6C-Rmi5ABEG1-j8w5FP1zKN12vagsT9Y,739
|
|
20
|
+
eodag/plugins/base.py,sha256=8Us6InkQu59Ya0Ne8se2Q6ZtU85IpCpcQqO9Z2ECDWI,2746
|
|
21
|
+
eodag/plugins/manager.py,sha256=SlUPCa_mvpqAFZ4IMFqidyR_OgTV2mlUOrBAWC13ll8,20106
|
|
22
|
+
eodag/plugins/apis/__init__.py,sha256=PyY4f7P2iu3MkLPnw5eOrVew2fuavbBL3Asci3Ulwoo,744
|
|
23
|
+
eodag/plugins/apis/base.py,sha256=PZwAg0uINSEQcHSzTgU9xSAb-WaGMbmDL-jhrmybtLQ,2814
|
|
24
|
+
eodag/plugins/apis/ecmwf.py,sha256=6_Zr3u2XHJl6XijNZOWazdtqi8v_b9D4WNET-Eub5qs,11767
|
|
25
|
+
eodag/plugins/apis/usgs.py,sha256=V1R13tqPgVJ_kMoEdbbFT-lx5mZ7yYqRtna--wmTXAk,20029
|
|
26
|
+
eodag/plugins/authentication/__init__.py,sha256=_LVw42Bb1IhGAZH5xHRaS4b1iFoF9e27KDZOyoSoJHY,1039
|
|
27
|
+
eodag/plugins/authentication/aws_auth.py,sha256=A0sr5mVmCkAwCldlGSGFcZqnthusbcB52THthja77cw,12651
|
|
28
|
+
eodag/plugins/authentication/base.py,sha256=wp-OI0G4DbUFykuehvyh4IJLAJyicyKiIH9k5z3W7Mo,3506
|
|
29
|
+
eodag/plugins/authentication/generic.py,sha256=z-u4WMixeG4nKwc70cUGVBXt3IVheDPA6tQWs2iDH4Q,2673
|
|
30
|
+
eodag/plugins/authentication/header.py,sha256=U_KnUqgZTLHXM5OKdGbH6jRqoQ0uIfOoxO6krUeAAcQ,4284
|
|
31
|
+
eodag/plugins/authentication/keycloak.py,sha256=m5c6Os_T8UGfdXS9SemhuUBhwsC4foxmrVA6VXEXamU,7358
|
|
32
|
+
eodag/plugins/authentication/openid_connect.py,sha256=lj-9RPz2BADU-1ckawLmuSi3TSexABsDDPCHLp8Frsc,27084
|
|
33
|
+
eodag/plugins/authentication/qsauth.py,sha256=bkepO_sFRIhYm3Dzecx3VJP0Ap37vUuJSRmEY8HrV1U,3947
|
|
34
|
+
eodag/plugins/authentication/sas_auth.py,sha256=-ye_Bgarni91V7B7XWzMyJwekFhujyRbw1seTa1Xi8w,5777
|
|
35
|
+
eodag/plugins/authentication/token.py,sha256=f2SossIJ_XlnBuOw_OprLNrF1p-uolL_KEX71_BhzKw,15798
|
|
36
|
+
eodag/plugins/authentication/token_exchange.py,sha256=raFIN8UnO9MpqQukDJg4Pog-LJLzq8Bk54_6k9cCwFc,4963
|
|
37
|
+
eodag/plugins/crunch/__init__.py,sha256=58D7kJhEpHJWobIKaNFPynfbSqAWgS90BiHzitqS5Ds,746
|
|
38
|
+
eodag/plugins/crunch/base.py,sha256=XW4HISgR0UswiEZmE4t42HxnSxknZBtVpuK8XVLYHzU,1415
|
|
39
|
+
eodag/plugins/crunch/filter_date.py,sha256=GwoAoYTj6-pFXDtgz8rNES9YW9zfIZkAvkFLX5mUZQU,4313
|
|
40
|
+
eodag/plugins/crunch/filter_latest_intersect.py,sha256=FvWzXxg-oepxoq3AqnEfFpWZVWWSPWY9km8qg0dGCKU,4438
|
|
41
|
+
eodag/plugins/crunch/filter_latest_tpl_name.py,sha256=Aau0RMBRCblVL2kapEaV0SMZXdfItwLUFhAZ3cUA02o,3667
|
|
42
|
+
eodag/plugins/crunch/filter_overlap.py,sha256=tU3h15jyfePOQPgGvowHFm2ZuckEbAo6lgLQNaPiJ2Q,7142
|
|
43
|
+
eodag/plugins/crunch/filter_property.py,sha256=2BKb7wxw1Yi2NTtnPCBtdZ-caJXxlVUUS2ps4LHXOMI,3187
|
|
44
|
+
eodag/plugins/download/__init__.py,sha256=zqszaeNgYP0YHlZDkLMf6odcwNw0KrAahGpcA-l0kAw,740
|
|
45
|
+
eodag/plugins/download/aws.py,sha256=x0HWR9O5U3kFo7W8qHcZhkCqzWEkSw_XEVIdx1zX7Qg,46884
|
|
46
|
+
eodag/plugins/download/base.py,sha256=TVUCDMuDkRo9EKYj5o3zUuOl76VJfQ6GlefD1EFwSTs,30807
|
|
47
|
+
eodag/plugins/download/http.py,sha256=Supm6UL4isoZ5LLqR3tzZDZi3fQYsj4u4dI9RppMnlc,58609
|
|
48
|
+
eodag/plugins/search/__init__.py,sha256=z_OD0bIloltQIJ9D0-pLC6o6nT0VmX2PRtMn_nLwWDQ,2174
|
|
49
|
+
eodag/plugins/search/base.py,sha256=yBmfca1EcR8c8pDD0GLnyZkU1UQ_8RNh1X8xqV-gHRQ,22235
|
|
50
|
+
eodag/plugins/search/build_search_result.py,sha256=4QZKXEBj5n1EE0BGciLfApSEYxxk-2srlVrq27lL1hg,62934
|
|
51
|
+
eodag/plugins/search/cop_marine.py,sha256=ubfZzM75CGgSMngP6Okon_UP5flV-nCIQNzyfFSsTbo,21328
|
|
52
|
+
eodag/plugins/search/creodias_s3.py,sha256=q-fzgKIp9hPgcxZ1fQz8N7veDdqZVZuVvygGOIA9zf0,3845
|
|
53
|
+
eodag/plugins/search/csw.py,sha256=L5UbSngFnEqD6nYir7SkijJtPeWDC8LAUps74e8HWM4,12674
|
|
54
|
+
eodag/plugins/search/qssearch.py,sha256=W3g9J8xhnKZn8ksygBKzFXx0xUdIILlDvB-ePLEGO14,104919
|
|
55
|
+
eodag/plugins/search/stac_list_assets.py,sha256=OS2E13w2OVcPUearXRzp4EfvibtmUz6l8okpAMNH-sA,3442
|
|
56
|
+
eodag/plugins/search/static_stac_search.py,sha256=zQc51c0VI52gt4eKF-yUC-1xsVIM4XKB96ZKazhtCjU,10379
|
|
57
|
+
eodag/resources/collections.yml,sha256=0JZr5y8V8QlB1MGqGzs5-Pmrk1ZYkEBlS3VYrg22Npc,473536
|
|
58
|
+
eodag/resources/ext_collections.json,sha256=8BSdJ_G0F9LG9h_Z_EOTmSmhceDl3-uFVaW7iVoh4qo,2438459
|
|
59
|
+
eodag/resources/ext_product_types.json,sha256=DaM0YN_V5gdMDyb1zHnF37YC8eOQhG4i-byB9d2gcT8,2456884
|
|
60
|
+
eodag/resources/locations_conf_template.yml,sha256=_eBv-QKHYMIKhY0b0kp4Ee33RsayxN8LWH3kDXxfFSk,986
|
|
61
|
+
eodag/resources/providers.yml,sha256=1EK66cdWNG0T6d8YfPfs1nl4fQ4oDvX10vn5h_WsxWE,237678
|
|
62
|
+
eodag/resources/stac_provider.yml,sha256=RNhFNhv7593VkY2od-LQgUBdIO1WXL1Rko7UyjLaxFY,4648
|
|
63
|
+
eodag/resources/user_conf_template.yml,sha256=aHSiscSQ3B4Dd18709iQAX7tFrkMufRC1a9akcNVVTs,7541
|
|
64
|
+
eodag/resources/shp/ne_110m_admin_0_map_units.VERSION.txt,sha256=CHSo_jbv-4d4D0MYRbWn2FvmV_K9mYzo7qznF4YNO3g,7
|
|
65
|
+
eodag/resources/shp/ne_110m_admin_0_map_units.cpg,sha256=FG1nif_gM6UpfBrQRuamLuNTGbhrAhRE8FtuoqqKH0o,6
|
|
66
|
+
eodag/resources/shp/ne_110m_admin_0_map_units.dbf,sha256=uEEO22hZ_crWxMNhuQ_ix889c1Us1awYXAglxbf1K-s,393747
|
|
67
|
+
eodag/resources/shp/ne_110m_admin_0_map_units.prj,sha256=oaohy2UQUlLMiTy3HhYS1Kurl_7z3A3LYcOmVf_TbNo,148
|
|
68
|
+
eodag/resources/shp/ne_110m_admin_0_map_units.shp,sha256=GMVJQ1pe0JfaJnVfAew0MvembDJDkfUs0To2Qc82Aos,181628
|
|
69
|
+
eodag/resources/shp/ne_110m_admin_0_map_units.shx,sha256=N74fDl6sQAljmHQ_e9DO7suO6BXuwC0LwmriAnDBH-U,1564
|
|
70
|
+
eodag/types/__init__.py,sha256=CcNcA8mupjjkQZRtycgiMOubXsTDglwEyp3vGT9VE_M,16225
|
|
71
|
+
eodag/types/bbox.py,sha256=jbfX58KOKIl0OoGZc93kAYhG_mEOjuBQGJtR2hl3-_Y,4354
|
|
72
|
+
eodag/types/download_args.py,sha256=urSl5KbLRN1XetMa2XzxYltny8CCFmHpjxU3j3BEGO8,1565
|
|
73
|
+
eodag/types/queryables.py,sha256=x6nQgnLgHo85f_OBREt90S5LsXkB2MZTfuwjXxvtKWo,9479
|
|
74
|
+
eodag/types/search_args.py,sha256=hnLID6n8lKbisVYO45xos_5ndkofCNYxzwCGTgdminA,5648
|
|
75
|
+
eodag/utils/__init__.py,sha256=4kFmoxrq8Tb5rlbsmpX1DVj5UxcDU2GYxPClVh0UINg,58358
|
|
76
|
+
eodag/utils/cache.py,sha256=UNvnzhJnNBuKLdH_0KnhuTMlBvz4GS3nr2IH2Lj6Swc,2580
|
|
77
|
+
eodag/utils/dates.py,sha256=dSKmWC3spQrpo0XLYAnUe32k3SPHQ9yih_K3nQ7z1fE,7470
|
|
78
|
+
eodag/utils/env.py,sha256=_sgCzDmaJnMnCv1qk9xe9jBhBKqqXbEYmsyGYwYw4NI,1085
|
|
79
|
+
eodag/utils/exceptions.py,sha256=UE2RQ9BJFDIdqQHZZ1bH_pk1vXkpQieUFVY_cK2vlxI,4576
|
|
80
|
+
eodag/utils/free_text_search.py,sha256=k0CrzMslrBrPYTEWOrGOAnwuy6Ktt7NPz07illkRCyM,8066
|
|
81
|
+
eodag/utils/import_system.py,sha256=1vwcSRlsZwuaP8ssrpRBP5jldZ54eLv2ttNCdLf0TtA,3901
|
|
82
|
+
eodag/utils/logging.py,sha256=KoMsyS1f6O1hr_SMDOIxvt842mOJgmu_yLUk0-0EKFs,3507
|
|
83
|
+
eodag/utils/notebook.py,sha256=AUxtayvu26qYf3x3Eu3ujRl1XDgy24EfQaETbqmXSZw,2703
|
|
84
|
+
eodag/utils/repr.py,sha256=72BIKFq07aU4YrQVJJX-AADdWXAhJqC4LXGmkbCo1kA,5537
|
|
85
|
+
eodag/utils/requests.py,sha256=avNHKrOZ7Kp6lUA7u4kqupIth9MoirLzDsMrrmQDt4s,4560
|
|
86
|
+
eodag/utils/s3.py,sha256=eESanPLVv-Luqo_o1WgUuO7YLqiXg_iEzHZ15fu-ugY,30063
|
|
87
|
+
eodag/utils/stac_reader.py,sha256=8r6amio5EtwGF9iu9zHaGDz4oUPKKeXRuyTzPNakrO4,9406
|
|
88
|
+
eodag-4.0.0a2.dist-info/licenses/LICENSE,sha256=4MAecetnRTQw5DlHtiikDSzKWO1xVLwzM5_DsPMYlnE,10172
|
|
89
|
+
eodag-4.0.0a2.dist-info/METADATA,sha256=GDIvwACmfGQA6E-XFIfoCkkr4tblKoFg2m4jgdIEuek,12739
|
|
90
|
+
eodag-4.0.0a2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
91
|
+
eodag-4.0.0a2.dist-info/entry_points.txt,sha256=atMIh-Q4hRsOdw1_778mDIhWFHQJigEo3x-0fMqhqLE,2254
|
|
92
|
+
eodag-4.0.0a2.dist-info/top_level.txt,sha256=025IMTmVe5eDjIPP4KEFQKespOPMQdne4U4jOy8nftM,6
|
|
93
|
+
eodag-4.0.0a2.dist-info/RECORD,,
|
|
@@ -11,7 +11,6 @@ GenericAuth = eodag.plugins.authentication.generic:GenericAuth
|
|
|
11
11
|
HTTPHeaderAuth = eodag.plugins.authentication.header:HTTPHeaderAuth
|
|
12
12
|
HttpQueryStringAuth = eodag.plugins.authentication.qsauth:HttpQueryStringAuth
|
|
13
13
|
KeycloakOIDCPasswordAuth = eodag.plugins.authentication.keycloak:KeycloakOIDCPasswordAuth
|
|
14
|
-
OAuth = eodag.plugins.authentication.oauth:OAuth
|
|
15
14
|
OIDCAuthorizationCodeFlowAuth = eodag.plugins.authentication.openid_connect:OIDCAuthorizationCodeFlowAuth
|
|
16
15
|
OIDCTokenExchangeAuth = eodag.plugins.authentication.token_exchange:OIDCTokenExchangeAuth
|
|
17
16
|
SASAuth = eodag.plugins.authentication.sas_auth:SASAuth
|
|
@@ -26,15 +25,12 @@ FilterProperty = eodag.plugins.crunch.filter_property:FilterProperty
|
|
|
26
25
|
|
|
27
26
|
[eodag.plugins.download]
|
|
28
27
|
AwsDownload = eodag.plugins.download.aws:AwsDownload
|
|
29
|
-
CreodiasS3Download = eodag.plugins.download.creodias_s3:CreodiasS3Download
|
|
30
28
|
HTTPDownload = eodag.plugins.download.http:HTTPDownload
|
|
31
|
-
S3RestDownload = eodag.plugins.download.s3rest:S3RestDownload
|
|
32
29
|
|
|
33
30
|
[eodag.plugins.search]
|
|
34
31
|
CSWSearch = eodag.plugins.search.csw:CSWSearch [csw]
|
|
35
32
|
CopMarineSearch = eodag.plugins.search.cop_marine:CopMarineSearch
|
|
36
33
|
CreodiasS3Search = eodag.plugins.search.creodias_s3:CreodiasS3Search
|
|
37
|
-
DataRequestSearch = eodag.plugins.search.data_request_search:DataRequestSearch
|
|
38
34
|
ECMWFSearch = eodag.plugins.search.build_search_result:ECMWFSearch
|
|
39
35
|
MeteoblueSearch = eodag.plugins.search.build_search_result:MeteoblueSearch
|
|
40
36
|
ODataV4Search = eodag.plugins.search.qssearch:ODataV4Search
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
# Copyright 2018, CS GROUP - France, https://www.csgroup.eu/
|
|
3
|
-
#
|
|
4
|
-
# This file is part of EODAG project
|
|
5
|
-
# https://www.github.com/CS-SI/EODAG
|
|
6
|
-
#
|
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
-
# you may not use this file except in compliance with the License.
|
|
9
|
-
# You may obtain a copy of the License at
|
|
10
|
-
#
|
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
#
|
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
-
# See the License for the specific language governing permissions and
|
|
17
|
-
# limitations under the License.
|
|
18
|
-
from __future__ import annotations
|
|
19
|
-
|
|
20
|
-
from typing import TYPE_CHECKING, Optional
|
|
21
|
-
|
|
22
|
-
from eodag.plugins.authentication.base import Authentication
|
|
23
|
-
from eodag.utils import _deprecated
|
|
24
|
-
|
|
25
|
-
if TYPE_CHECKING:
|
|
26
|
-
from eodag.config import PluginConfig
|
|
27
|
-
from eodag.types import S3SessionKwargs
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
@_deprecated(
|
|
31
|
-
reason="Plugin was used to authenticate using S3 credentials, use AwsAuth instead",
|
|
32
|
-
version="3.8.1",
|
|
33
|
-
)
|
|
34
|
-
class OAuth(Authentication):
|
|
35
|
-
"""OAuth authentication plugin
|
|
36
|
-
|
|
37
|
-
The mandatory parameters that have to be added in the eodag config are ``aws_access_key_id``
|
|
38
|
-
and ``aws_secret_access_key``.
|
|
39
|
-
|
|
40
|
-
:param provider: provider name
|
|
41
|
-
:param config: Authentication plugin configuration:
|
|
42
|
-
|
|
43
|
-
* :attr:`~eodag.config.PluginConfig.type` (``str``) (**mandatory**): OAuth
|
|
44
|
-
|
|
45
|
-
"""
|
|
46
|
-
|
|
47
|
-
def __init__(self, provider: str, config: PluginConfig) -> None:
|
|
48
|
-
super(OAuth, self).__init__(provider, config)
|
|
49
|
-
self.access_key: Optional[str] = None
|
|
50
|
-
self.secret_key: Optional[str] = None
|
|
51
|
-
|
|
52
|
-
def authenticate(self) -> S3SessionKwargs:
|
|
53
|
-
"""Authenticate"""
|
|
54
|
-
self.validate_config_credentials()
|
|
55
|
-
self.access_key = self.config.credentials["aws_access_key_id"]
|
|
56
|
-
self.secret_key = self.config.credentials["aws_secret_access_key"]
|
|
57
|
-
return {
|
|
58
|
-
"aws_access_key_id": self.access_key,
|
|
59
|
-
"aws_secret_access_key": self.secret_key,
|
|
60
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
# Copyright 2024, CS GROUP - France, https://www.csgroup.eu/
|
|
3
|
-
#
|
|
4
|
-
# This file is part of EODAG project
|
|
5
|
-
# https://www.github.com/CS-SI/EODAG
|
|
6
|
-
#
|
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
-
# you may not use this file except in compliance with the License.
|
|
9
|
-
# You may obtain a copy of the License at
|
|
10
|
-
#
|
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
#
|
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
-
# See the License for the specific language governing permissions and
|
|
17
|
-
# limitations under the License.
|
|
18
|
-
from __future__ import annotations
|
|
19
|
-
|
|
20
|
-
from typing import Optional
|
|
21
|
-
|
|
22
|
-
from eodag import EOProduct
|
|
23
|
-
from eodag.plugins.download.aws import AwsDownload
|
|
24
|
-
from eodag.utils import _deprecated
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
@_deprecated(
|
|
28
|
-
reason="Plugin that was used in creodias_s3 provider configuration, but not anymore",
|
|
29
|
-
version="3.10.0",
|
|
30
|
-
)
|
|
31
|
-
class CreodiasS3Download(AwsDownload):
|
|
32
|
-
"""
|
|
33
|
-
Download on creodias s3 from their VMs (extension of :class:`~eodag.plugins.download.aws.AwsDownload`)
|
|
34
|
-
|
|
35
|
-
:param provider: provider name
|
|
36
|
-
:param config: Download plugin configuration:
|
|
37
|
-
|
|
38
|
-
* :attr:`~eodag.config.PluginConfig.type` (``str``) (**mandatory**): CreodiasS3Download
|
|
39
|
-
* :attr:`~eodag.config.PluginConfig.base_uri` (``str``) (**mandatory**): s3 endpoint url
|
|
40
|
-
* :attr:`~eodag.config.PluginConfig.s3_bucket` (``str``) (**mandatory**): bucket where the products can be found
|
|
41
|
-
* :attr:`~eodag.config.PluginConfig.ssl_verify` (``bool``): if the ssl certificates should be
|
|
42
|
-
verified in requests; default: ``True``
|
|
43
|
-
"""
|
|
44
|
-
|
|
45
|
-
def _get_bucket_names_and_prefixes(
|
|
46
|
-
self,
|
|
47
|
-
product: EOProduct,
|
|
48
|
-
asset_filter: Optional[str],
|
|
49
|
-
ignore_assets: bool,
|
|
50
|
-
complementary_url_keys: list[str],
|
|
51
|
-
) -> list[tuple[str, Optional[str]]]:
|
|
52
|
-
"""
|
|
53
|
-
Retrieves the bucket names and path prefixes for the assets
|
|
54
|
-
|
|
55
|
-
:param product: product for which the assets shall be downloaded
|
|
56
|
-
:param asset_filter: text for which the assets should be filtered
|
|
57
|
-
:param ignore_assets: if product instead of individual assets should be used
|
|
58
|
-
:return: tuples of bucket names and prefixes
|
|
59
|
-
"""
|
|
60
|
-
# if assets are defined, use them instead of scanning product.location
|
|
61
|
-
if len(product.assets) > 0 and not ignore_assets:
|
|
62
|
-
bucket_names_and_prefixes = super()._get_bucket_names_and_prefixes(
|
|
63
|
-
product, asset_filter, ignore_assets, complementary_url_keys
|
|
64
|
-
)
|
|
65
|
-
else:
|
|
66
|
-
# if no assets are given, use productIdentifier to get S3 path for download
|
|
67
|
-
s3_url = "s3:/" + product.properties["productIdentifier"]
|
|
68
|
-
bucket_names_and_prefixes = [
|
|
69
|
-
self.get_product_bucket_name_and_prefix(product, s3_url)
|
|
70
|
-
]
|
|
71
|
-
return bucket_names_and_prefixes
|