eodag 3.0.0b3__py3-none-any.whl → 3.1.0__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/api/core.py +347 -247
- eodag/api/product/_assets.py +44 -15
- eodag/api/product/_product.py +58 -47
- eodag/api/product/drivers/__init__.py +81 -4
- eodag/api/product/drivers/base.py +65 -4
- eodag/api/product/drivers/generic.py +65 -0
- eodag/api/product/drivers/sentinel1.py +97 -0
- eodag/api/product/drivers/sentinel2.py +95 -0
- eodag/api/product/metadata_mapping.py +129 -93
- eodag/api/search_result.py +28 -12
- eodag/cli.py +61 -24
- eodag/config.py +457 -167
- eodag/plugins/apis/base.py +10 -4
- eodag/plugins/apis/ecmwf.py +53 -23
- eodag/plugins/apis/usgs.py +41 -17
- eodag/plugins/authentication/aws_auth.py +30 -18
- eodag/plugins/authentication/base.py +14 -3
- eodag/plugins/authentication/generic.py +14 -3
- eodag/plugins/authentication/header.py +14 -6
- eodag/plugins/authentication/keycloak.py +44 -25
- eodag/plugins/authentication/oauth.py +18 -4
- eodag/plugins/authentication/openid_connect.py +192 -171
- eodag/plugins/authentication/qsauth.py +12 -4
- eodag/plugins/authentication/sas_auth.py +22 -5
- eodag/plugins/authentication/token.py +95 -17
- eodag/plugins/authentication/token_exchange.py +19 -19
- eodag/plugins/base.py +4 -4
- eodag/plugins/crunch/base.py +8 -5
- eodag/plugins/crunch/filter_date.py +9 -6
- eodag/plugins/crunch/filter_latest_intersect.py +9 -8
- eodag/plugins/crunch/filter_latest_tpl_name.py +8 -8
- eodag/plugins/crunch/filter_overlap.py +9 -11
- eodag/plugins/crunch/filter_property.py +10 -10
- eodag/plugins/download/aws.py +181 -105
- eodag/plugins/download/base.py +49 -67
- eodag/plugins/download/creodias_s3.py +40 -2
- eodag/plugins/download/http.py +247 -223
- eodag/plugins/download/s3rest.py +29 -28
- eodag/plugins/manager.py +176 -41
- eodag/plugins/search/__init__.py +6 -5
- eodag/plugins/search/base.py +123 -60
- eodag/plugins/search/build_search_result.py +1046 -355
- eodag/plugins/search/cop_marine.py +132 -39
- eodag/plugins/search/creodias_s3.py +19 -68
- eodag/plugins/search/csw.py +48 -8
- eodag/plugins/search/data_request_search.py +124 -23
- eodag/plugins/search/qssearch.py +531 -310
- eodag/plugins/search/stac_list_assets.py +85 -0
- eodag/plugins/search/static_stac_search.py +23 -24
- eodag/resources/ext_product_types.json +1 -1
- eodag/resources/product_types.yml +1295 -355
- eodag/resources/providers.yml +1819 -3010
- eodag/resources/stac.yml +3 -163
- eodag/resources/stac_api.yml +2 -2
- eodag/resources/user_conf_template.yml +115 -99
- eodag/rest/cache.py +2 -2
- eodag/rest/config.py +3 -4
- eodag/rest/constants.py +0 -1
- eodag/rest/core.py +157 -117
- eodag/rest/errors.py +181 -0
- eodag/rest/server.py +57 -339
- eodag/rest/stac.py +133 -581
- eodag/rest/types/collections_search.py +3 -3
- eodag/rest/types/eodag_search.py +41 -30
- eodag/rest/types/queryables.py +42 -32
- eodag/rest/types/stac_search.py +15 -16
- eodag/rest/utils/__init__.py +14 -21
- eodag/rest/utils/cql_evaluate.py +6 -6
- eodag/rest/utils/rfc3339.py +2 -2
- eodag/types/__init__.py +153 -32
- eodag/types/bbox.py +2 -2
- eodag/types/download_args.py +4 -4
- eodag/types/queryables.py +183 -73
- eodag/types/search_args.py +6 -6
- eodag/types/whoosh.py +127 -3
- eodag/utils/__init__.py +228 -106
- eodag/utils/exceptions.py +47 -26
- eodag/utils/import_system.py +2 -2
- eodag/utils/logging.py +37 -77
- eodag/utils/repr.py +65 -6
- eodag/utils/requests.py +13 -15
- eodag/utils/rest.py +2 -2
- eodag/utils/s3.py +231 -0
- eodag/utils/stac_reader.py +11 -11
- {eodag-3.0.0b3.dist-info → eodag-3.1.0.dist-info}/METADATA +81 -81
- eodag-3.1.0.dist-info/RECORD +113 -0
- {eodag-3.0.0b3.dist-info → eodag-3.1.0.dist-info}/WHEEL +1 -1
- {eodag-3.0.0b3.dist-info → eodag-3.1.0.dist-info}/entry_points.txt +5 -2
- eodag/resources/constraints/climate-dt.json +0 -13
- eodag/resources/constraints/extremes-dt.json +0 -8
- eodag/utils/constraints.py +0 -244
- eodag-3.0.0b3.dist-info/RECORD +0 -110
- {eodag-3.0.0b3.dist-info → eodag-3.1.0.dist-info}/LICENSE +0 -0
- {eodag-3.0.0b3.dist-info → eodag-3.1.0.dist-info}/top_level.txt +0 -0
eodag/resources/stac.yml
CHANGED
|
@@ -126,7 +126,6 @@ collection:
|
|
|
126
126
|
interval:
|
|
127
127
|
- - '$.product_type.missionStartDate'
|
|
128
128
|
- '$.product_type.missionEndDate'
|
|
129
|
-
properties:
|
|
130
129
|
crs: http://www.opengis.net/def/crs/OGC/1.3/CRS84
|
|
131
130
|
stac_version: "{stac_version}"
|
|
132
131
|
keywords:
|
|
@@ -144,7 +143,8 @@ collection:
|
|
|
144
143
|
- '$.product_type.platformSerialIdentifier'
|
|
145
144
|
intruments:
|
|
146
145
|
- '$.product_type.instrument'
|
|
147
|
-
processing:level:
|
|
146
|
+
processing:level:
|
|
147
|
+
- '$.product_type.processingLevel'
|
|
148
148
|
|
|
149
149
|
# Data ------------------------------------------------------------------------
|
|
150
150
|
|
|
@@ -250,7 +250,7 @@ stac_extensions:
|
|
|
250
250
|
view: 'https://stac-extensions.github.io/view/v1.0.0/schema.json'
|
|
251
251
|
oseo: "{catalog[root]}/extensions/oseo/json-schema/schema.json"
|
|
252
252
|
|
|
253
|
-
#
|
|
253
|
+
# Catalog --------------------------------------------------------------------
|
|
254
254
|
|
|
255
255
|
catalog:
|
|
256
256
|
parent_key: root
|
|
@@ -267,166 +267,6 @@ catalog:
|
|
|
267
267
|
stac_version: "{stac_version}"
|
|
268
268
|
stac_extensions: "{catalog[stac_extensions]}"
|
|
269
269
|
|
|
270
|
-
|
|
271
|
-
# nested catalogs for filtering
|
|
272
|
-
catalogs:
|
|
273
|
-
|
|
274
|
-
product_types_list:
|
|
275
|
-
parent_key: root
|
|
276
|
-
child_key: product_type
|
|
277
|
-
model:
|
|
278
|
-
id: "product_types"
|
|
279
|
-
description: Available product types
|
|
280
|
-
|
|
281
|
-
product_type:
|
|
282
|
-
parent_key: product_types_list
|
|
283
|
-
model:
|
|
284
|
-
id: "{collection[id]}"
|
|
285
|
-
title: "{collection[title]}"
|
|
286
|
-
description: "{collection[description]}"
|
|
287
|
-
extent:
|
|
288
|
-
spatial:
|
|
289
|
-
bbox:
|
|
290
|
-
- - "{collection[extent][spatial][bbox][0][0]}"
|
|
291
|
-
- "{collection[extent][spatial][bbox][0][1]}"
|
|
292
|
-
- "{collection[extent][spatial][bbox][0][2]}"
|
|
293
|
-
- "{collection[extent][spatial][bbox][0][3]}"
|
|
294
|
-
temporal:
|
|
295
|
-
interval:
|
|
296
|
-
- - "{collection[extent][temporal][interval][0][0]}"
|
|
297
|
-
- "{collection[extent][temporal][interval][0][1]}"
|
|
298
|
-
crs: http://www.opengis.net/def/crs/OGC/1.3/CRS84
|
|
299
|
-
keywords: "{collection[keywords]}"
|
|
300
|
-
license: "{collection[license]}"
|
|
301
|
-
properties: "{collection[properties]}"
|
|
302
|
-
providers: "{collection[providers]}"
|
|
303
|
-
summaries: "{collection[summaries]}"
|
|
304
|
-
|
|
305
|
-
years_list:
|
|
306
|
-
child_key: year
|
|
307
|
-
model:
|
|
308
|
-
id: year
|
|
309
|
-
title: "{parent_catalog[title]} / year"
|
|
310
|
-
description: "{parent_catalog[description]}\n\n- Filter by year"
|
|
311
|
-
|
|
312
|
-
year:
|
|
313
|
-
parent_key: years_list
|
|
314
|
-
model:
|
|
315
|
-
id: "{date[year]}"
|
|
316
|
-
title: "{catalog[title]}: {date[year]}"
|
|
317
|
-
description: "{catalog[description]}: {date[year]};"
|
|
318
|
-
extent:
|
|
319
|
-
spatial:
|
|
320
|
-
bbox:
|
|
321
|
-
- - "{catalog[extent][spatial][bbox][0][0]}"
|
|
322
|
-
- "{catalog[extent][spatial][bbox][0][1]}"
|
|
323
|
-
- "{catalog[extent][spatial][bbox][0][2]}"
|
|
324
|
-
- "{catalog[extent][spatial][bbox][0][3]}"
|
|
325
|
-
temporal:
|
|
326
|
-
interval:
|
|
327
|
-
- - "{date[min]}"
|
|
328
|
-
- "{date[max]}"
|
|
329
|
-
|
|
330
|
-
months_list:
|
|
331
|
-
child_key: month
|
|
332
|
-
parent_key: year
|
|
333
|
-
model:
|
|
334
|
-
id: month
|
|
335
|
-
title: "{parent_catalog[title]} / month"
|
|
336
|
-
description: "{parent_catalog[description]}\n\n- Filter by month"
|
|
337
|
-
|
|
338
|
-
month:
|
|
339
|
-
parent_key: months_list
|
|
340
|
-
model:
|
|
341
|
-
id: "{date[month]}"
|
|
342
|
-
title: "{catalog[title]}: {date[month]}"
|
|
343
|
-
description: "{catalog[description]}: {date[month]};"
|
|
344
|
-
extent:
|
|
345
|
-
spatial:
|
|
346
|
-
bbox:
|
|
347
|
-
- - "{catalog[extent][spatial][bbox][0][0]}"
|
|
348
|
-
- "{catalog[extent][spatial][bbox][0][1]}"
|
|
349
|
-
- "{catalog[extent][spatial][bbox][0][2]}"
|
|
350
|
-
- "{catalog[extent][spatial][bbox][0][3]}"
|
|
351
|
-
temporal:
|
|
352
|
-
interval:
|
|
353
|
-
- - "{date[min]}"
|
|
354
|
-
- "{date[max]}"
|
|
355
|
-
|
|
356
|
-
days_list:
|
|
357
|
-
child_key: day
|
|
358
|
-
parent_key: month
|
|
359
|
-
model:
|
|
360
|
-
id: day
|
|
361
|
-
title: "{parent_catalog[title]} / day"
|
|
362
|
-
description: "{parent_catalog[description]}\n\n- Filter by day"
|
|
363
|
-
|
|
364
|
-
day:
|
|
365
|
-
parent_key: days_list
|
|
366
|
-
model:
|
|
367
|
-
id: "{date[day]}"
|
|
368
|
-
title: "{catalog[title]}: {date[day]}"
|
|
369
|
-
description: "{catalog[description]}: {date[day]};"
|
|
370
|
-
extent:
|
|
371
|
-
spatial:
|
|
372
|
-
bbox:
|
|
373
|
-
- - "{catalog[extent][spatial][bbox][0][0]}"
|
|
374
|
-
- "{catalog[extent][spatial][bbox][0][1]}"
|
|
375
|
-
- "{catalog[extent][spatial][bbox][0][2]}"
|
|
376
|
-
- "{catalog[extent][spatial][bbox][0][3]}"
|
|
377
|
-
temporal:
|
|
378
|
-
interval:
|
|
379
|
-
- - "{date[min]}"
|
|
380
|
-
- "{date[max]}"
|
|
381
|
-
|
|
382
|
-
cloud_covers_list:
|
|
383
|
-
child_key: cloud_cover
|
|
384
|
-
model:
|
|
385
|
-
id: cloud_cover
|
|
386
|
-
title: "{parent_catalog[title]} / Max cloud cover"
|
|
387
|
-
description: "{parent_catalog[description]}\n\n- Filter by maximum cloud cover %"
|
|
388
|
-
|
|
389
|
-
cloud_cover:
|
|
390
|
-
parent_key: cloud_covers_list
|
|
391
|
-
model:
|
|
392
|
-
id: "{cloud_cover}"
|
|
393
|
-
title: "{catalog[title]}: {cloud_cover}%"
|
|
394
|
-
description: "{catalog[description]}: {cloud_cover}%;"
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
locations_catalogs:
|
|
398
|
-
|
|
399
|
-
locations_list:
|
|
400
|
-
catalog_type: location_list
|
|
401
|
-
child_key: "$.shp_location.name"
|
|
402
|
-
path: "$.shp_location.path"
|
|
403
|
-
attr: "$.shp_location.attr"
|
|
404
|
-
parent_key: "$.shp_location.parent.name"
|
|
405
|
-
parent:
|
|
406
|
-
key: "$.shp_location.parent.name"
|
|
407
|
-
attr: "$.shp_location.parent.attr"
|
|
408
|
-
model:
|
|
409
|
-
id: "$.shp_location.name"
|
|
410
|
-
self_title: "$.shp_location.name"
|
|
411
|
-
title: "{parent_catalog[title]} / {catalog[self_title]}"
|
|
412
|
-
description: "{parent_catalog[description]}\n\n- Filter by {catalog[self_title]}"
|
|
413
|
-
|
|
414
|
-
location:
|
|
415
|
-
catalog_type: location
|
|
416
|
-
parent_key: "{locations_list}"
|
|
417
|
-
model:
|
|
418
|
-
id: "{feature[id]}"
|
|
419
|
-
title: "{catalog[title]}: {feature[id]}"
|
|
420
|
-
description: "{catalog[description]}: {feature[id]};"
|
|
421
|
-
extent:
|
|
422
|
-
spatial:
|
|
423
|
-
bbox: '{feature[geometry]#to_bounds_lists}'
|
|
424
|
-
temporal:
|
|
425
|
-
interval:
|
|
426
|
-
- - "{catalog[extent][temporal][interval][0][0]}"
|
|
427
|
-
- "{catalog[extent][temporal][interval][0][1]}"
|
|
428
|
-
|
|
429
|
-
|
|
430
270
|
# Extensions ------------------------------------------------------------------
|
|
431
271
|
extensions:
|
|
432
272
|
oseo:
|
eodag/resources/stac_api.yml
CHANGED
|
@@ -799,7 +799,7 @@ components:
|
|
|
799
799
|
description: |
|
|
800
800
|
Sentinel-2 is a wide-swath, high-resolution, multi-spectral
|
|
801
801
|
imaging mission...
|
|
802
|
-
license:
|
|
802
|
+
license: other
|
|
803
803
|
keywords:
|
|
804
804
|
- copernicus
|
|
805
805
|
- esa
|
|
@@ -1416,7 +1416,7 @@ components:
|
|
|
1416
1416
|
description: |-
|
|
1417
1417
|
License(s) of the data as a SPDX
|
|
1418
1418
|
[License identifier](https://spdx.org/licenses/). Alternatively, use
|
|
1419
|
-
`
|
|
1419
|
+
`other` if the license is not on the SPDX license list or
|
|
1420
1420
|
`various` if multiple licenses apply. In these two cases links to the
|
|
1421
1421
|
license texts SHOULD be added, see the `license` link relation type.
|
|
1422
1422
|
|
|
@@ -15,53 +15,63 @@
|
|
|
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
|
-
|
|
19
|
-
priority: # Lower value means lower priority (Default:
|
|
20
|
-
search:
|
|
18
|
+
aws_eos:
|
|
19
|
+
priority: # Lower value means lower priority (Default: 0)
|
|
20
|
+
search: # Search parameters configuration
|
|
21
|
+
search_auth:
|
|
22
|
+
credentials:
|
|
23
|
+
api_key:
|
|
24
|
+
download_auth:
|
|
25
|
+
credentials:
|
|
26
|
+
aws_access_key_id:
|
|
27
|
+
aws_secret_access_key:
|
|
28
|
+
aws_profile:
|
|
21
29
|
download:
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
30
|
+
output_dir:
|
|
31
|
+
cop_ads:
|
|
32
|
+
priority: # Lower value means lower priority (Default: 0)
|
|
33
|
+
search: # Search parameters configuration
|
|
34
|
+
download:
|
|
35
|
+
extract:
|
|
36
|
+
output_dir:
|
|
26
37
|
auth:
|
|
27
38
|
credentials:
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
theia:
|
|
39
|
+
apikey:
|
|
40
|
+
cop_cds:
|
|
31
41
|
priority: # Lower value means lower priority (Default: 0)
|
|
32
|
-
search:
|
|
42
|
+
search: # Search parameters configuration
|
|
33
43
|
download:
|
|
34
44
|
extract:
|
|
35
45
|
output_dir:
|
|
36
|
-
dl_url_params:
|
|
37
46
|
auth:
|
|
38
47
|
credentials:
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
usgs:
|
|
48
|
+
apikey:
|
|
49
|
+
cop_dataspace:
|
|
42
50
|
priority: # Lower value means lower priority (Default: 0)
|
|
43
|
-
|
|
51
|
+
search: # Search parameters configuration
|
|
52
|
+
download:
|
|
44
53
|
extract:
|
|
45
54
|
output_dir:
|
|
46
|
-
|
|
47
|
-
product_location_scheme:
|
|
55
|
+
auth:
|
|
48
56
|
credentials:
|
|
49
57
|
username:
|
|
50
58
|
password:
|
|
51
|
-
|
|
59
|
+
cop_ewds:
|
|
52
60
|
priority: # Lower value means lower priority (Default: 0)
|
|
53
|
-
|
|
61
|
+
download:
|
|
62
|
+
output_dir:
|
|
54
63
|
auth:
|
|
55
64
|
credentials:
|
|
56
65
|
apikey:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
66
|
+
cop_marine:
|
|
67
|
+
priority: # Lower value means lower priority (Default: 0)
|
|
68
|
+
search: # Search parameters configuration
|
|
60
69
|
download:
|
|
70
|
+
extract:
|
|
61
71
|
output_dir:
|
|
62
72
|
creodias:
|
|
63
73
|
priority: # Lower value means lower priority (Default: 0)
|
|
64
|
-
search:
|
|
74
|
+
search: # Search parameters configuration
|
|
65
75
|
download:
|
|
66
76
|
extract:
|
|
67
77
|
output_dir:
|
|
@@ -70,39 +80,36 @@ creodias:
|
|
|
70
80
|
username:
|
|
71
81
|
password:
|
|
72
82
|
totp: # set totp dynamically, see https://eodag.readthedocs.io/en/latest/getting_started_guide/configure.html#authenticate-using-an-otp-one-time-password-two-factor-authentication
|
|
73
|
-
|
|
83
|
+
creodias_s3:
|
|
74
84
|
priority: # Lower value means lower priority (Default: 0)
|
|
75
|
-
search:
|
|
85
|
+
search: # Search parameters configuration
|
|
76
86
|
download:
|
|
77
|
-
extract:
|
|
78
87
|
output_dir:
|
|
79
|
-
auth:
|
|
80
|
-
credentials:
|
|
81
|
-
username:
|
|
82
|
-
password:
|
|
83
|
-
astraea_eod:
|
|
84
|
-
priority: # Lower value means lower priority (Default: 0)
|
|
85
|
-
search: # Search parameters configuration
|
|
86
88
|
auth:
|
|
87
89
|
credentials:
|
|
88
90
|
aws_access_key_id:
|
|
89
91
|
aws_secret_access_key:
|
|
90
|
-
|
|
92
|
+
dedl:
|
|
93
|
+
priority: # Lower value means lower priority (Default: 0)
|
|
94
|
+
search: # Search parameters configuration
|
|
91
95
|
download:
|
|
92
96
|
output_dir:
|
|
93
|
-
usgs_satapi_aws:
|
|
94
|
-
priority: # Lower value means lower priority (Default: 0)
|
|
95
|
-
search: # Search parameters configuration
|
|
96
97
|
auth:
|
|
97
98
|
credentials:
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
username:
|
|
100
|
+
password:
|
|
101
|
+
dedt_lumi:
|
|
102
|
+
priority: # Lower value means lower priority (Default: 0)
|
|
103
|
+
search:
|
|
101
104
|
download:
|
|
102
105
|
output_dir:
|
|
106
|
+
auth:
|
|
107
|
+
credentials:
|
|
108
|
+
username:
|
|
109
|
+
password:
|
|
103
110
|
earth_search:
|
|
104
111
|
priority: # Lower value means lower priority (Default: 0)
|
|
105
|
-
search:
|
|
112
|
+
search: # Search parameters configuration
|
|
106
113
|
auth:
|
|
107
114
|
credentials:
|
|
108
115
|
aws_access_key_id:
|
|
@@ -112,12 +119,12 @@ earth_search:
|
|
|
112
119
|
output_dir:
|
|
113
120
|
earth_search_cog:
|
|
114
121
|
priority: # Lower value means lower priority (Default: 0)
|
|
115
|
-
search:
|
|
122
|
+
search: # Search parameters configuration
|
|
116
123
|
download:
|
|
117
124
|
output_dir:
|
|
118
125
|
earth_search_gcs:
|
|
119
126
|
priority: # Lower value means lower priority (Default: 0)
|
|
120
|
-
search:
|
|
127
|
+
search: # Search parameters configuration
|
|
121
128
|
auth:
|
|
122
129
|
credentials:
|
|
123
130
|
aws_access_key_id:
|
|
@@ -131,99 +138,115 @@ ecmwf:
|
|
|
131
138
|
credentials:
|
|
132
139
|
username:
|
|
133
140
|
password:
|
|
134
|
-
|
|
141
|
+
eumetsat_ds:
|
|
135
142
|
priority: # Lower value means lower priority (Default: 0)
|
|
136
|
-
search:
|
|
137
|
-
download:
|
|
138
|
-
extract:
|
|
143
|
+
search: # Search parameters configuration
|
|
139
144
|
output_dir:
|
|
140
145
|
auth:
|
|
141
146
|
credentials:
|
|
142
147
|
username:
|
|
143
148
|
password:
|
|
144
|
-
|
|
149
|
+
download:
|
|
150
|
+
output_dir:
|
|
151
|
+
geodes:
|
|
145
152
|
priority: # Lower value means lower priority (Default: 0)
|
|
146
|
-
search:
|
|
153
|
+
search: # Search parameters configuration
|
|
154
|
+
auth:
|
|
155
|
+
credentials:
|
|
156
|
+
apikey:
|
|
147
157
|
download:
|
|
148
158
|
extract:
|
|
149
159
|
output_dir:
|
|
160
|
+
geodes_s3:
|
|
161
|
+
priority: # Lower value means lower priority (Default: 0)
|
|
162
|
+
search: # Search parameters configuration
|
|
150
163
|
auth:
|
|
151
164
|
credentials:
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
priority: # Lower value means lower priority (Default: 0)
|
|
156
|
-
search: # Search parameters configuration
|
|
165
|
+
aws_access_key_id:
|
|
166
|
+
aws_secret_access_key:
|
|
167
|
+
aws_session_token:
|
|
157
168
|
download:
|
|
158
169
|
extract:
|
|
159
170
|
output_dir:
|
|
160
|
-
|
|
171
|
+
hydroweb_next:
|
|
172
|
+
priority: # Lower value means lower priority (Default: 0)
|
|
173
|
+
search: # Search parameters configuration
|
|
161
174
|
auth:
|
|
162
175
|
credentials:
|
|
163
|
-
|
|
164
|
-
|
|
176
|
+
apikey:
|
|
177
|
+
download:
|
|
178
|
+
output_dir:
|
|
165
179
|
meteoblue:
|
|
166
180
|
priority: # Lower value means lower priority (Default: 0)
|
|
167
|
-
search:
|
|
181
|
+
search: # Search parameters configuration
|
|
168
182
|
auth:
|
|
169
183
|
credentials:
|
|
170
184
|
apikey:
|
|
171
185
|
download:
|
|
172
186
|
output_dir:
|
|
173
|
-
|
|
174
|
-
priority: # Lower value means lower priority (Default:
|
|
175
|
-
search:
|
|
187
|
+
peps:
|
|
188
|
+
priority: # Lower value means lower priority (Default: 1)
|
|
189
|
+
search: # Search parameters configuration
|
|
176
190
|
download:
|
|
177
|
-
extract:
|
|
178
|
-
output_dir:
|
|
191
|
+
extract: # whether to extract the downloaded products, only applies to archived products (true or false, Default: true).
|
|
192
|
+
output_dir: # where to store downloaded products, as an absolute file path (Default: local temporary directory)
|
|
193
|
+
dl_url_params: # additional parameters to pass over to the download url as an url parameter
|
|
194
|
+
delete_archive: # whether to delete the downloaded archives (true or false, Default: true).
|
|
179
195
|
auth:
|
|
180
196
|
credentials:
|
|
181
197
|
username:
|
|
182
198
|
password:
|
|
183
199
|
planetary_computer:
|
|
184
200
|
priority: # Lower value means lower priority (Default: 0)
|
|
185
|
-
search:
|
|
186
|
-
auth:
|
|
187
|
-
credentials:
|
|
188
|
-
apikey:
|
|
189
|
-
download:
|
|
190
|
-
output_dir:
|
|
191
|
-
hydroweb_next:
|
|
192
|
-
priority: # Lower value means lower priority (Default: 0)
|
|
193
|
-
search: # Search parameters configuration
|
|
201
|
+
search: # Search parameters configuration
|
|
194
202
|
auth:
|
|
195
203
|
credentials:
|
|
196
204
|
apikey:
|
|
197
205
|
download:
|
|
198
206
|
output_dir:
|
|
199
|
-
|
|
207
|
+
sara:
|
|
200
208
|
priority: # Lower value means lower priority (Default: 0)
|
|
201
|
-
search:
|
|
209
|
+
search: # Search parameters configuration
|
|
202
210
|
download:
|
|
211
|
+
extract:
|
|
203
212
|
output_dir:
|
|
213
|
+
delete_archive:
|
|
204
214
|
auth:
|
|
205
215
|
credentials:
|
|
206
216
|
username:
|
|
207
217
|
password:
|
|
208
|
-
|
|
218
|
+
theia:
|
|
209
219
|
priority: # Lower value means lower priority (Default: 0)
|
|
210
|
-
search:
|
|
220
|
+
search: # Search parameters configuration
|
|
211
221
|
download:
|
|
222
|
+
extract:
|
|
212
223
|
output_dir:
|
|
224
|
+
dl_url_params:
|
|
213
225
|
auth:
|
|
226
|
+
credentials:
|
|
227
|
+
ident:
|
|
228
|
+
pass:
|
|
229
|
+
usgs:
|
|
230
|
+
priority: # Lower value means lower priority (Default: 0)
|
|
231
|
+
api:
|
|
232
|
+
extract:
|
|
233
|
+
output_dir:
|
|
234
|
+
dl_url_params:
|
|
235
|
+
product_location_scheme:
|
|
214
236
|
credentials:
|
|
215
237
|
username:
|
|
216
238
|
password:
|
|
217
|
-
|
|
239
|
+
usgs_satapi_aws:
|
|
218
240
|
priority: # Lower value means lower priority (Default: 0)
|
|
219
|
-
search:
|
|
220
|
-
download:
|
|
221
|
-
output_dir:
|
|
241
|
+
search: # Search parameters configuration
|
|
222
242
|
auth:
|
|
223
243
|
credentials:
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
244
|
+
aws_access_key_id:
|
|
245
|
+
aws_secret_access_key:
|
|
246
|
+
aws_profile:
|
|
247
|
+
download:
|
|
248
|
+
output_dir:
|
|
249
|
+
wekeo_cmems:
|
|
227
250
|
priority: # Lower value means lower priority (Default: 0)
|
|
228
251
|
search:
|
|
229
252
|
download:
|
|
@@ -232,28 +255,21 @@ dedt_lumi:
|
|
|
232
255
|
credentials:
|
|
233
256
|
username:
|
|
234
257
|
password:
|
|
235
|
-
|
|
258
|
+
wekeo_ecmwf:
|
|
236
259
|
priority: # Lower value means lower priority (Default: 0)
|
|
237
|
-
search:
|
|
260
|
+
search: # Search parameters configuration
|
|
238
261
|
download:
|
|
239
262
|
output_dir:
|
|
240
|
-
auth:
|
|
241
|
-
credentials:
|
|
242
|
-
username:
|
|
243
|
-
password:
|
|
244
|
-
eumetsat_ds:
|
|
245
|
-
priority: # Lower value means lower priority (Default: 0)
|
|
246
|
-
search: # Search parameters configuration
|
|
247
|
-
output_dir:
|
|
248
263
|
auth:
|
|
249
264
|
credentials:
|
|
250
265
|
username:
|
|
251
266
|
password:
|
|
252
|
-
|
|
253
|
-
output_dir:
|
|
254
|
-
cop_marine:
|
|
267
|
+
wekeo_main:
|
|
255
268
|
priority: # Lower value means lower priority (Default: 0)
|
|
256
|
-
search:
|
|
269
|
+
search: # Search parameters configuration
|
|
257
270
|
download:
|
|
258
|
-
extract:
|
|
259
271
|
output_dir:
|
|
272
|
+
auth:
|
|
273
|
+
credentials:
|
|
274
|
+
username:
|
|
275
|
+
password:
|
eodag/rest/cache.py
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
# See the License for the specific language governing permissions and
|
|
17
17
|
# limitations under the License.
|
|
18
18
|
import logging
|
|
19
|
-
from typing import Any, Callable, Coroutine,
|
|
19
|
+
from typing import Any, Callable, Coroutine, TypeVar, cast
|
|
20
20
|
|
|
21
21
|
import orjson
|
|
22
22
|
from cachetools import LRUCache
|
|
@@ -48,7 +48,7 @@ async def cached(
|
|
|
48
48
|
host_cache_key = f"{cache_key}:{host}"
|
|
49
49
|
|
|
50
50
|
try:
|
|
51
|
-
c:
|
|
51
|
+
c: dict[str, Any] = request.app.state.cache
|
|
52
52
|
|
|
53
53
|
if cached := c.get(host_cache_key):
|
|
54
54
|
logger.debug("Cache result hit")
|
eodag/rest/config.py
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
from __future__ import annotations
|
|
19
19
|
|
|
20
20
|
from functools import lru_cache
|
|
21
|
-
from typing import
|
|
21
|
+
from typing import Annotated, Union
|
|
22
22
|
|
|
23
23
|
from pydantic import Field
|
|
24
24
|
from pydantic.functional_validators import BeforeValidator
|
|
@@ -26,10 +26,9 @@ from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
26
26
|
from typing_extensions import Doc
|
|
27
27
|
|
|
28
28
|
from eodag.rest.constants import DEFAULT_MAXSIZE, DEFAULT_TTL
|
|
29
|
-
from eodag.utils import Annotated
|
|
30
29
|
|
|
31
30
|
|
|
32
|
-
def str2liststr(raw: Union[str,
|
|
31
|
+
def str2liststr(raw: Union[str, list[str]]) -> list[str]:
|
|
33
32
|
"""Convert str to list[str]"""
|
|
34
33
|
if isinstance(raw, list):
|
|
35
34
|
return raw
|
|
@@ -50,7 +49,7 @@ class Settings(BaseSettings):
|
|
|
50
49
|
stac_api_landing_id: str = "eodag-stac-api"
|
|
51
50
|
|
|
52
51
|
origin_url_blacklist: Annotated[
|
|
53
|
-
Union[str,
|
|
52
|
+
Union[str, list[str]],
|
|
54
53
|
BeforeValidator(str2liststr),
|
|
55
54
|
Doc(
|
|
56
55
|
"Hide from clients items assets' alternative URLs starting with URLs from the list"
|
eodag/rest/constants.py
CHANGED