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.
Files changed (94) hide show
  1. eodag/api/core.py +347 -247
  2. eodag/api/product/_assets.py +44 -15
  3. eodag/api/product/_product.py +58 -47
  4. eodag/api/product/drivers/__init__.py +81 -4
  5. eodag/api/product/drivers/base.py +65 -4
  6. eodag/api/product/drivers/generic.py +65 -0
  7. eodag/api/product/drivers/sentinel1.py +97 -0
  8. eodag/api/product/drivers/sentinel2.py +95 -0
  9. eodag/api/product/metadata_mapping.py +129 -93
  10. eodag/api/search_result.py +28 -12
  11. eodag/cli.py +61 -24
  12. eodag/config.py +457 -167
  13. eodag/plugins/apis/base.py +10 -4
  14. eodag/plugins/apis/ecmwf.py +53 -23
  15. eodag/plugins/apis/usgs.py +41 -17
  16. eodag/plugins/authentication/aws_auth.py +30 -18
  17. eodag/plugins/authentication/base.py +14 -3
  18. eodag/plugins/authentication/generic.py +14 -3
  19. eodag/plugins/authentication/header.py +14 -6
  20. eodag/plugins/authentication/keycloak.py +44 -25
  21. eodag/plugins/authentication/oauth.py +18 -4
  22. eodag/plugins/authentication/openid_connect.py +192 -171
  23. eodag/plugins/authentication/qsauth.py +12 -4
  24. eodag/plugins/authentication/sas_auth.py +22 -5
  25. eodag/plugins/authentication/token.py +95 -17
  26. eodag/plugins/authentication/token_exchange.py +19 -19
  27. eodag/plugins/base.py +4 -4
  28. eodag/plugins/crunch/base.py +8 -5
  29. eodag/plugins/crunch/filter_date.py +9 -6
  30. eodag/plugins/crunch/filter_latest_intersect.py +9 -8
  31. eodag/plugins/crunch/filter_latest_tpl_name.py +8 -8
  32. eodag/plugins/crunch/filter_overlap.py +9 -11
  33. eodag/plugins/crunch/filter_property.py +10 -10
  34. eodag/plugins/download/aws.py +181 -105
  35. eodag/plugins/download/base.py +49 -67
  36. eodag/plugins/download/creodias_s3.py +40 -2
  37. eodag/plugins/download/http.py +247 -223
  38. eodag/plugins/download/s3rest.py +29 -28
  39. eodag/plugins/manager.py +176 -41
  40. eodag/plugins/search/__init__.py +6 -5
  41. eodag/plugins/search/base.py +123 -60
  42. eodag/plugins/search/build_search_result.py +1046 -355
  43. eodag/plugins/search/cop_marine.py +132 -39
  44. eodag/plugins/search/creodias_s3.py +19 -68
  45. eodag/plugins/search/csw.py +48 -8
  46. eodag/plugins/search/data_request_search.py +124 -23
  47. eodag/plugins/search/qssearch.py +531 -310
  48. eodag/plugins/search/stac_list_assets.py +85 -0
  49. eodag/plugins/search/static_stac_search.py +23 -24
  50. eodag/resources/ext_product_types.json +1 -1
  51. eodag/resources/product_types.yml +1295 -355
  52. eodag/resources/providers.yml +1819 -3010
  53. eodag/resources/stac.yml +3 -163
  54. eodag/resources/stac_api.yml +2 -2
  55. eodag/resources/user_conf_template.yml +115 -99
  56. eodag/rest/cache.py +2 -2
  57. eodag/rest/config.py +3 -4
  58. eodag/rest/constants.py +0 -1
  59. eodag/rest/core.py +157 -117
  60. eodag/rest/errors.py +181 -0
  61. eodag/rest/server.py +57 -339
  62. eodag/rest/stac.py +133 -581
  63. eodag/rest/types/collections_search.py +3 -3
  64. eodag/rest/types/eodag_search.py +41 -30
  65. eodag/rest/types/queryables.py +42 -32
  66. eodag/rest/types/stac_search.py +15 -16
  67. eodag/rest/utils/__init__.py +14 -21
  68. eodag/rest/utils/cql_evaluate.py +6 -6
  69. eodag/rest/utils/rfc3339.py +2 -2
  70. eodag/types/__init__.py +153 -32
  71. eodag/types/bbox.py +2 -2
  72. eodag/types/download_args.py +4 -4
  73. eodag/types/queryables.py +183 -73
  74. eodag/types/search_args.py +6 -6
  75. eodag/types/whoosh.py +127 -3
  76. eodag/utils/__init__.py +228 -106
  77. eodag/utils/exceptions.py +47 -26
  78. eodag/utils/import_system.py +2 -2
  79. eodag/utils/logging.py +37 -77
  80. eodag/utils/repr.py +65 -6
  81. eodag/utils/requests.py +13 -15
  82. eodag/utils/rest.py +2 -2
  83. eodag/utils/s3.py +231 -0
  84. eodag/utils/stac_reader.py +11 -11
  85. {eodag-3.0.0b3.dist-info → eodag-3.1.0.dist-info}/METADATA +81 -81
  86. eodag-3.1.0.dist-info/RECORD +113 -0
  87. {eodag-3.0.0b3.dist-info → eodag-3.1.0.dist-info}/WHEEL +1 -1
  88. {eodag-3.0.0b3.dist-info → eodag-3.1.0.dist-info}/entry_points.txt +5 -2
  89. eodag/resources/constraints/climate-dt.json +0 -13
  90. eodag/resources/constraints/extremes-dt.json +0 -8
  91. eodag/utils/constraints.py +0 -244
  92. eodag-3.0.0b3.dist-info/RECORD +0 -110
  93. {eodag-3.0.0b3.dist-info → eodag-3.1.0.dist-info}/LICENSE +0 -0
  94. {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: '$.product_type.processingLevel'
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
- # Catalogs --------------------------------------------------------------------
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:
@@ -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: proprietary
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
- `proprietary` if the license is not on the SPDX license list or
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
- peps:
19
- priority: # Lower value means lower priority (Default: 1)
20
- search: # Search parameters configuration
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
- extract: # whether to extract the downloaded products, only applies to archived products (true or false, Default: true).
23
- output_dir: # where to store downloaded products, as an absolute file path (Default: local temporary directory)
24
- dl_url_params: # additional parameters to pass over to the download url as an url parameter
25
- delete_archive: # whether to delete the downloaded archives (true or false, Default: true).
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
- username:
29
- password:
30
- theia:
39
+ apikey:
40
+ cop_cds:
31
41
  priority: # Lower value means lower priority (Default: 0)
32
- search: # Search parameters configuration
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
- ident:
40
- pass:
41
- usgs:
48
+ apikey:
49
+ cop_dataspace:
42
50
  priority: # Lower value means lower priority (Default: 0)
43
- api:
51
+ search: # Search parameters configuration
52
+ download:
44
53
  extract:
45
54
  output_dir:
46
- dl_url_params:
47
- product_location_scheme:
55
+ auth:
48
56
  credentials:
49
57
  username:
50
58
  password:
51
- aws_eos:
59
+ cop_ewds:
52
60
  priority: # Lower value means lower priority (Default: 0)
53
- search: # Search parameters configuration
61
+ download:
62
+ output_dir:
54
63
  auth:
55
64
  credentials:
56
65
  apikey:
57
- aws_access_key_id:
58
- aws_secret_access_key:
59
- aws_profile:
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: # Search parameters configuration
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
- onda:
83
+ creodias_s3:
74
84
  priority: # Lower value means lower priority (Default: 0)
75
- search: # Search parameters configuration
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
- aws_profile:
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
- aws_access_key_id:
99
- aws_secret_access_key:
100
- aws_profile:
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: # Search parameters configuration
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: # Search parameters configuration
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: # Search parameters configuration
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
- cop_ads:
141
+ eumetsat_ds:
135
142
  priority: # Lower value means lower priority (Default: 0)
136
- search: # Search parameters configuration
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
- cop_cds:
149
+ download:
150
+ output_dir:
151
+ geodes:
145
152
  priority: # Lower value means lower priority (Default: 0)
146
- search: # Search parameters configuration
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
- username:
153
- password:
154
- sara:
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
- delete_archive:
171
+ hydroweb_next:
172
+ priority: # Lower value means lower priority (Default: 0)
173
+ search: # Search parameters configuration
161
174
  auth:
162
175
  credentials:
163
- username:
164
- password:
176
+ apikey:
177
+ download:
178
+ output_dir:
165
179
  meteoblue:
166
180
  priority: # Lower value means lower priority (Default: 0)
167
- search: # Search parameters configuration
181
+ search: # Search parameters configuration
168
182
  auth:
169
183
  credentials:
170
184
  apikey:
171
185
  download:
172
186
  output_dir:
173
- cop_dataspace:
174
- priority: # Lower value means lower priority (Default: 0)
175
- search: # Search parameters configuration
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: # Search parameters configuration
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
- wekeo:
207
+ sara:
200
208
  priority: # Lower value means lower priority (Default: 0)
201
- search: # Search parameters configuration
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
- wekeo_cmems:
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
- creodias_s3:
239
+ usgs_satapi_aws:
218
240
  priority: # Lower value means lower priority (Default: 0)
219
- search: # Search parameters configuration
220
- download:
221
- output_dir:
241
+ search: # Search parameters configuration
222
242
  auth:
223
243
  credentials:
224
- aws_access_key_id:
225
- aws_secret_access_key:
226
- dedt_lumi:
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
- dedl:
258
+ wekeo_ecmwf:
236
259
  priority: # Lower value means lower priority (Default: 0)
237
- search: # Search parameters configuration
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
- download:
253
- output_dir:
254
- cop_marine:
267
+ wekeo_main:
255
268
  priority: # Lower value means lower priority (Default: 0)
256
- search: # Search parameters configuration
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, Dict, TypeVar, cast
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: Dict[str, Any] = request.app.state.cache
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 List, Union
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, List[str]]) -> List[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, List[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
@@ -24,4 +24,3 @@ CACHE_KEY_COLLECTIONS = "collections"
24
24
  CACHE_KEY_COLLECTION = "collection"
25
25
  CACHE_KEY_SEARCH = "search"
26
26
  CACHE_KEY_QUERYABLES = "queryables"
27
- CACHE_KEY_CATALOGS = "catalogs"