eodag 2.12.1__py3-none-any.whl → 3.0.0b2__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 +440 -321
- eodag/api/product/__init__.py +5 -1
- eodag/api/product/_assets.py +57 -2
- eodag/api/product/_product.py +89 -68
- eodag/api/product/metadata_mapping.py +181 -66
- eodag/api/search_result.py +48 -1
- eodag/cli.py +20 -6
- eodag/config.py +95 -6
- eodag/plugins/apis/base.py +8 -165
- eodag/plugins/apis/ecmwf.py +36 -24
- eodag/plugins/apis/usgs.py +40 -24
- eodag/plugins/authentication/aws_auth.py +2 -2
- eodag/plugins/authentication/header.py +31 -6
- eodag/plugins/authentication/keycloak.py +13 -84
- eodag/plugins/authentication/oauth.py +3 -3
- eodag/plugins/authentication/openid_connect.py +256 -46
- eodag/plugins/authentication/qsauth.py +3 -0
- eodag/plugins/authentication/sas_auth.py +8 -1
- eodag/plugins/authentication/token.py +92 -46
- eodag/plugins/authentication/token_exchange.py +120 -0
- eodag/plugins/download/aws.py +86 -91
- eodag/plugins/download/base.py +72 -40
- eodag/plugins/download/http.py +607 -264
- eodag/plugins/download/s3rest.py +28 -15
- eodag/plugins/manager.py +74 -57
- eodag/plugins/search/__init__.py +36 -0
- eodag/plugins/search/base.py +225 -18
- eodag/plugins/search/build_search_result.py +389 -32
- eodag/plugins/search/cop_marine.py +378 -0
- eodag/plugins/search/creodias_s3.py +15 -14
- eodag/plugins/search/csw.py +5 -7
- eodag/plugins/search/data_request_search.py +44 -20
- eodag/plugins/search/qssearch.py +508 -203
- eodag/plugins/search/static_stac_search.py +99 -36
- eodag/resources/constraints/climate-dt.json +13 -0
- eodag/resources/constraints/extremes-dt.json +8 -0
- eodag/resources/ext_product_types.json +1 -1
- eodag/resources/product_types.yml +1897 -34
- eodag/resources/providers.yml +3539 -3277
- eodag/resources/stac.yml +48 -54
- eodag/resources/stac_api.yml +71 -25
- eodag/resources/stac_provider.yml +5 -0
- eodag/resources/user_conf_template.yml +51 -3
- eodag/rest/__init__.py +6 -0
- eodag/rest/cache.py +70 -0
- eodag/rest/config.py +68 -0
- eodag/rest/constants.py +27 -0
- eodag/rest/core.py +757 -0
- eodag/rest/server.py +397 -258
- eodag/rest/stac.py +438 -307
- eodag/rest/types/collections_search.py +44 -0
- eodag/rest/types/eodag_search.py +232 -43
- eodag/rest/types/{stac_queryables.py → queryables.py} +81 -43
- eodag/rest/types/stac_search.py +277 -0
- eodag/rest/utils/__init__.py +216 -0
- eodag/rest/utils/cql_evaluate.py +119 -0
- eodag/rest/utils/rfc3339.py +65 -0
- eodag/types/__init__.py +99 -9
- eodag/types/bbox.py +15 -14
- eodag/types/download_args.py +31 -0
- eodag/types/search_args.py +58 -7
- eodag/types/whoosh.py +81 -0
- eodag/utils/__init__.py +72 -9
- eodag/utils/constraints.py +37 -37
- eodag/utils/exceptions.py +23 -17
- eodag/utils/repr.py +113 -0
- eodag/utils/requests.py +138 -0
- eodag/utils/rest.py +104 -0
- eodag/utils/stac_reader.py +100 -16
- {eodag-2.12.1.dist-info → eodag-3.0.0b2.dist-info}/METADATA +65 -44
- eodag-3.0.0b2.dist-info/RECORD +110 -0
- {eodag-2.12.1.dist-info → eodag-3.0.0b2.dist-info}/WHEEL +1 -1
- {eodag-2.12.1.dist-info → eodag-3.0.0b2.dist-info}/entry_points.txt +6 -5
- eodag/plugins/apis/cds.py +0 -540
- eodag/rest/utils.py +0 -1133
- eodag-2.12.1.dist-info/RECORD +0 -94
- {eodag-2.12.1.dist-info → eodag-3.0.0b2.dist-info}/LICENSE +0 -0
- {eodag-2.12.1.dist-info → eodag-3.0.0b2.dist-info}/top_level.txt +0 -0
eodag/utils/stac_reader.py
CHANGED
|
@@ -27,8 +27,9 @@ from urllib.request import urlopen
|
|
|
27
27
|
import concurrent.futures
|
|
28
28
|
import orjson
|
|
29
29
|
import pystac
|
|
30
|
+
from pystac.stac_object import STACObjectType
|
|
30
31
|
|
|
31
|
-
from eodag.utils import HTTP_REQ_TIMEOUT
|
|
32
|
+
from eodag.utils import HTTP_REQ_TIMEOUT, get_ssl_context
|
|
32
33
|
from eodag.utils.exceptions import STACOpenerError
|
|
33
34
|
|
|
34
35
|
logger = logging.getLogger("eodag.utils.stac_reader")
|
|
@@ -38,10 +39,11 @@ class _TextOpener:
|
|
|
38
39
|
"""Exhaust read methods for pystac.StacIO in the order defined
|
|
39
40
|
in the openers list"""
|
|
40
41
|
|
|
41
|
-
def __init__(self, timeout: int) -> None:
|
|
42
|
+
def __init__(self, timeout: int, ssl_verify: bool) -> None:
|
|
42
43
|
self.openers = [self.read_local_json, self.read_http_remote_json]
|
|
43
44
|
# Only used by read_http_remote_json
|
|
44
45
|
self.timeout = timeout
|
|
46
|
+
self.ssl_verify = ssl_verify
|
|
45
47
|
|
|
46
48
|
@staticmethod
|
|
47
49
|
def read_local_json(url: str, as_json: bool = False) -> Any:
|
|
@@ -54,13 +56,14 @@ class _TextOpener:
|
|
|
54
56
|
with open(url) as f:
|
|
55
57
|
return f.read()
|
|
56
58
|
except OSError:
|
|
57
|
-
|
|
58
|
-
raise STACOpenerError
|
|
59
|
+
raise STACOpenerError("read_local_json is not the right STAC opener")
|
|
59
60
|
|
|
60
61
|
def read_http_remote_json(self, url: str, as_json: bool = False) -> Any:
|
|
61
62
|
"""Read JSON remote HTTP file"""
|
|
63
|
+
ssl_ctx = get_ssl_context(self.ssl_verify)
|
|
64
|
+
|
|
62
65
|
try:
|
|
63
|
-
res = urlopen(url, timeout=self.timeout)
|
|
66
|
+
res = urlopen(url, timeout=self.timeout, context=ssl_ctx)
|
|
64
67
|
content_type = res.getheader("Content-Type")
|
|
65
68
|
if content_type is None:
|
|
66
69
|
encoding = "utf-8"
|
|
@@ -79,17 +82,19 @@ class _TextOpener:
|
|
|
79
82
|
f"{url} with a timeout of {self.timeout} seconds"
|
|
80
83
|
) from None
|
|
81
84
|
else:
|
|
82
|
-
|
|
83
|
-
|
|
85
|
+
raise STACOpenerError(
|
|
86
|
+
"read_http_remote_json is not the right STAC opener"
|
|
87
|
+
)
|
|
84
88
|
|
|
85
89
|
def __call__(self, url: str, as_json: bool = False) -> Any:
|
|
90
|
+
openers = self.openers[:]
|
|
86
91
|
res = None
|
|
87
|
-
while
|
|
92
|
+
while openers:
|
|
88
93
|
try:
|
|
89
|
-
res =
|
|
94
|
+
res = openers[0](url, as_json)
|
|
90
95
|
except STACOpenerError:
|
|
91
96
|
# Remove the opener that just failed
|
|
92
|
-
|
|
97
|
+
openers.pop(0)
|
|
93
98
|
if res is not None:
|
|
94
99
|
break
|
|
95
100
|
if res is None:
|
|
@@ -102,6 +107,7 @@ def fetch_stac_items(
|
|
|
102
107
|
recursive: bool = False,
|
|
103
108
|
max_connections: int = 100,
|
|
104
109
|
timeout: int = HTTP_REQ_TIMEOUT,
|
|
110
|
+
ssl_verify: bool = True,
|
|
105
111
|
) -> List[Dict[str, Any]]:
|
|
106
112
|
"""Fetch STAC item from a single item file or items from a catalog.
|
|
107
113
|
|
|
@@ -112,14 +118,16 @@ def fetch_stac_items(
|
|
|
112
118
|
:param max_connections: (optional) Maximum number of connections for HTTP requests
|
|
113
119
|
:type max_connections: int
|
|
114
120
|
:param timeout: (optional) Timeout in seconds for each internal HTTP request
|
|
115
|
-
:type timeout:
|
|
121
|
+
:type timeout: int
|
|
122
|
+
:param ssl_verify: (optional) SSL Verification for HTTP request
|
|
123
|
+
:type ssl_verify: bool
|
|
116
124
|
:returns: The items found in `stac_path`
|
|
117
125
|
:rtype: :class:`list`
|
|
118
126
|
"""
|
|
119
127
|
|
|
120
128
|
# URI opener used by PySTAC internally, instantiated here
|
|
121
129
|
# to retrieve the timeout.
|
|
122
|
-
_text_opener = _TextOpener(timeout)
|
|
130
|
+
_text_opener = _TextOpener(timeout, ssl_verify)
|
|
123
131
|
pystac.StacIO.read_text = _text_opener
|
|
124
132
|
|
|
125
133
|
stac_obj = pystac.read_file(stac_path)
|
|
@@ -142,6 +150,8 @@ def _fetch_stac_items_from_catalog(
|
|
|
142
150
|
_text_opener: Callable[[str, bool], Any],
|
|
143
151
|
) -> List[Any]:
|
|
144
152
|
"""Fetch items from a STAC catalog"""
|
|
153
|
+
items: List[Dict[Any, Any]] = []
|
|
154
|
+
|
|
145
155
|
# pystac cannot yet return links from a single file catalog, see:
|
|
146
156
|
# https://github.com/stac-utils/pystac/issues/256
|
|
147
157
|
extensions: Optional[Union[List[str], str]] = getattr(cat, "stac_extensions", None)
|
|
@@ -151,8 +161,7 @@ def _fetch_stac_items_from_catalog(
|
|
|
151
161
|
items = [feature for feature in cat.to_dict()["features"]]
|
|
152
162
|
return items
|
|
153
163
|
|
|
154
|
-
# Making the links absolutes allow for both relative and absolute links
|
|
155
|
-
# to be handled.
|
|
164
|
+
# Making the links absolutes allow for both relative and absolute links to be handled.
|
|
156
165
|
if not recursive:
|
|
157
166
|
hrefs: List[Optional[str]] = [
|
|
158
167
|
link.get_absolute_href() for link in cat.get_item_links()
|
|
@@ -164,7 +173,6 @@ def _fetch_stac_items_from_catalog(
|
|
|
164
173
|
link.get_absolute_href() for link in parent_catalog.get_item_links()
|
|
165
174
|
]
|
|
166
175
|
|
|
167
|
-
items: List[Dict[Any, Any]] = []
|
|
168
176
|
if hrefs:
|
|
169
177
|
logger.debug("Fetching %s items", len(hrefs))
|
|
170
178
|
with concurrent.futures.ThreadPoolExecutor(
|
|
@@ -176,5 +184,81 @@ def _fetch_stac_items_from_catalog(
|
|
|
176
184
|
for future in concurrent.futures.as_completed(future_to_href):
|
|
177
185
|
item = future.result()
|
|
178
186
|
if item:
|
|
179
|
-
items.append(
|
|
187
|
+
items.append(item)
|
|
180
188
|
return items
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
def fetch_stac_collections(
|
|
192
|
+
stac_path: str,
|
|
193
|
+
collection: Optional[str] = None,
|
|
194
|
+
max_connections: int = 100,
|
|
195
|
+
timeout: int = HTTP_REQ_TIMEOUT,
|
|
196
|
+
ssl_verify: bool = True,
|
|
197
|
+
) -> List[Dict[str, Any]]:
|
|
198
|
+
"""Fetch STAC collection(s) from a catalog.
|
|
199
|
+
|
|
200
|
+
:param stac_path: A STAC object filepath
|
|
201
|
+
:type stac_path: str
|
|
202
|
+
:param collection: the collection to fetch
|
|
203
|
+
:type collection: Optional[str]
|
|
204
|
+
:param max_connections: (optional) Maximum number of connections for HTTP requests
|
|
205
|
+
:type max_connections: int
|
|
206
|
+
:param timeout: (optional) Timeout in seconds for each internal HTTP request
|
|
207
|
+
:type timeout: int
|
|
208
|
+
:param ssl_verify: (optional) SSL Verification for HTTP request
|
|
209
|
+
:type ssl_verify: bool
|
|
210
|
+
:returns: The collection(s) found in `stac_path`
|
|
211
|
+
:rtype: :class:`list`
|
|
212
|
+
"""
|
|
213
|
+
|
|
214
|
+
# URI opener used by PySTAC internally, instantiated here to retrieve the timeout.
|
|
215
|
+
_text_opener = _TextOpener(timeout, ssl_verify)
|
|
216
|
+
pystac.StacIO.read_text = _text_opener
|
|
217
|
+
|
|
218
|
+
stac_obj = pystac.read_file(stac_path)
|
|
219
|
+
if isinstance(stac_obj, pystac.Catalog):
|
|
220
|
+
return _fetch_stac_collections_from_catalog(
|
|
221
|
+
stac_obj, collection, max_connections, _text_opener
|
|
222
|
+
)
|
|
223
|
+
else:
|
|
224
|
+
raise STACOpenerError(f"{stac_path} must be a STAC catalog")
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
def _fetch_stac_collections_from_catalog(
|
|
228
|
+
cat: pystac.Catalog,
|
|
229
|
+
collection: Optional[str],
|
|
230
|
+
max_connections: int,
|
|
231
|
+
_text_opener: Callable[[str, bool], Any],
|
|
232
|
+
) -> List[Any]:
|
|
233
|
+
"""Fetch collections from a STAC catalog"""
|
|
234
|
+
collections: List[Dict[Any, Any]] = []
|
|
235
|
+
|
|
236
|
+
# Making the links absolutes allow for both relative and absolute links to be handled.
|
|
237
|
+
hrefs: List[Optional[str]] = [
|
|
238
|
+
link.get_absolute_href()
|
|
239
|
+
for link in cat.get_child_links()
|
|
240
|
+
if collection is not None and link.title == collection
|
|
241
|
+
]
|
|
242
|
+
if len(hrefs) == 0:
|
|
243
|
+
hrefs = [link.get_absolute_href() for link in cat.get_child_links()]
|
|
244
|
+
|
|
245
|
+
if hrefs:
|
|
246
|
+
with concurrent.futures.ThreadPoolExecutor(
|
|
247
|
+
max_workers=max_connections
|
|
248
|
+
) as executor:
|
|
249
|
+
future_to_href = (
|
|
250
|
+
executor.submit(_text_opener, str(href), True) for href in hrefs
|
|
251
|
+
)
|
|
252
|
+
for future in concurrent.futures.as_completed(future_to_href):
|
|
253
|
+
fetched_collection = future.result()
|
|
254
|
+
if (
|
|
255
|
+
fetched_collection
|
|
256
|
+
and fetched_collection["type"] == STACObjectType.COLLECTION
|
|
257
|
+
and (
|
|
258
|
+
collection is None
|
|
259
|
+
or collection is not None
|
|
260
|
+
and fetched_collection.get("id") == collection
|
|
261
|
+
)
|
|
262
|
+
):
|
|
263
|
+
collections.append(fetched_collection)
|
|
264
|
+
return collections
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: eodag
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.0.0b2
|
|
4
4
|
Summary: Earth Observation Data Access Gateway
|
|
5
5
|
Home-page: https://github.com/CS-SI/eodag
|
|
6
|
-
Author: CS GROUP - France
|
|
6
|
+
Author: CS GROUP - France
|
|
7
7
|
Author-email: eodag@csgroup.space
|
|
8
8
|
License: Apache 2.0
|
|
9
9
|
Project-URL: Bug Tracker, https://github.com/CS-SI/eodag/issues/
|
|
@@ -30,37 +30,38 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
30
30
|
Requires-Python: >=3.6
|
|
31
31
|
Description-Content-Type: text/x-rst
|
|
32
32
|
License-File: LICENSE
|
|
33
|
-
Requires-Dist:
|
|
34
|
-
Requires-Dist: requests
|
|
35
|
-
Requires-Dist: urllib3
|
|
36
|
-
Requires-Dist: python-dateutil
|
|
37
|
-
Requires-Dist: PyYAML
|
|
38
|
-
Requires-Dist: tqdm
|
|
39
|
-
Requires-Dist: shapely
|
|
40
|
-
Requires-Dist: pyshp
|
|
41
|
-
Requires-Dist: OWSLib >=0.27.1
|
|
42
|
-
Requires-Dist: orjson
|
|
43
|
-
Requires-Dist: geojson
|
|
44
|
-
Requires-Dist: pyproj >=2.1.0
|
|
45
|
-
Requires-Dist: usgs >=0.3.1
|
|
33
|
+
Requires-Dist: annotated-types
|
|
46
34
|
Requires-Dist: boto3
|
|
47
35
|
Requires-Dist: botocore
|
|
48
|
-
Requires-Dist:
|
|
49
|
-
Requires-Dist:
|
|
50
|
-
Requires-Dist: uvicorn
|
|
36
|
+
Requires-Dist: click
|
|
37
|
+
Requires-Dist: geojson
|
|
51
38
|
Requires-Dist: jsonpath-ng <1.6.0
|
|
52
39
|
Requires-Dist: lxml
|
|
53
|
-
Requires-Dist: Whoosh
|
|
54
|
-
Requires-Dist: pystac >=1.0.0b1
|
|
55
|
-
Requires-Dist: ecmwf-api-client
|
|
56
|
-
Requires-Dist: cdsapi
|
|
57
|
-
Requires-Dist: stream-zip
|
|
58
|
-
Requires-Dist: requests-ftp
|
|
59
40
|
Requires-Dist: pydantic >=2.1.0
|
|
60
|
-
Requires-Dist:
|
|
61
|
-
Requires-Dist:
|
|
41
|
+
Requires-Dist: pydantic-core
|
|
42
|
+
Requires-Dist: pyproj >=2.1.0
|
|
43
|
+
Requires-Dist: pyshp
|
|
44
|
+
Requires-Dist: pystac >=1.0.0b1
|
|
45
|
+
Requires-Dist: python-dateutil
|
|
46
|
+
Requires-Dist: PyYAML
|
|
47
|
+
Requires-Dist: requests
|
|
62
48
|
Requires-Dist: setuptools
|
|
49
|
+
Requires-Dist: shapely >=2.0.0
|
|
50
|
+
Requires-Dist: stream-zip
|
|
51
|
+
Requires-Dist: tqdm
|
|
52
|
+
Requires-Dist: typing-extensions >=4.8.0
|
|
53
|
+
Requires-Dist: urllib3
|
|
54
|
+
Requires-Dist: Whoosh
|
|
55
|
+
Requires-Dist: orjson ; python_version < "3.12" or platform_system != "Windows"
|
|
56
|
+
Requires-Dist: orjson <3.10.0 ; python_version >= "3.12" and platform_system == "Windows"
|
|
57
|
+
Provides-Extra: all
|
|
58
|
+
Requires-Dist: eodag[all-providers,csw,server,tutorials] ; extra == 'all'
|
|
59
|
+
Provides-Extra: all-providers
|
|
60
|
+
Requires-Dist: eodag[ecmwf,usgs] ; extra == 'all-providers'
|
|
61
|
+
Provides-Extra: csw
|
|
62
|
+
Requires-Dist: OWSLib >=0.27.1 ; extra == 'csw'
|
|
63
63
|
Provides-Extra: dev
|
|
64
|
+
Requires-Dist: eodag[all-providers,csw,server] ; extra == 'dev'
|
|
64
65
|
Requires-Dist: pytest ; extra == 'dev'
|
|
65
66
|
Requires-Dist: pytest-cov ; extra == 'dev'
|
|
66
67
|
Requires-Dist: py >=1.8.2 ; extra == 'dev'
|
|
@@ -78,20 +79,28 @@ Requires-Dist: pre-commit ; extra == 'dev'
|
|
|
78
79
|
Requires-Dist: responses <0.24.0 ; extra == 'dev'
|
|
79
80
|
Requires-Dist: fastapi[all] ; extra == 'dev'
|
|
80
81
|
Requires-Dist: stdlib-list ; extra == 'dev'
|
|
82
|
+
Requires-Dist: boto3-stubs[essential] ; extra == 'dev'
|
|
83
|
+
Requires-Dist: types-lxml ; extra == 'dev'
|
|
81
84
|
Provides-Extra: docs
|
|
85
|
+
Requires-Dist: eodag[all] ; extra == 'docs'
|
|
82
86
|
Requires-Dist: sphinx ; extra == 'docs'
|
|
83
|
-
Requires-Dist: sphinx-book-theme
|
|
87
|
+
Requires-Dist: sphinx-book-theme ; extra == 'docs'
|
|
84
88
|
Requires-Dist: sphinx-copybutton ; extra == 'docs'
|
|
85
|
-
Requires-Dist:
|
|
86
|
-
Requires-Dist: sphinxcontrib-devhelp <1.0.6 ; extra == 'docs'
|
|
87
|
-
Requires-Dist: sphinxcontrib-htmlhelp <2.0.5 ; extra == 'docs'
|
|
88
|
-
Requires-Dist: sphinxcontrib-qthelp <1.0.7 ; extra == 'docs'
|
|
89
|
-
Requires-Dist: sphinxcontrib-serializinghtml <1.1.10 ; extra == 'docs'
|
|
90
|
-
Requires-Dist: sphinxcontrib-jquery ; extra == 'docs'
|
|
89
|
+
Requires-Dist: sphinx-tabs ; extra == 'docs'
|
|
91
90
|
Requires-Dist: nbsphinx ; extra == 'docs'
|
|
91
|
+
Provides-Extra: ecmwf
|
|
92
|
+
Requires-Dist: ecmwf-api-client ; extra == 'ecmwf'
|
|
92
93
|
Provides-Extra: notebook
|
|
93
94
|
Requires-Dist: tqdm[notebook] ; extra == 'notebook'
|
|
95
|
+
Provides-Extra: server
|
|
96
|
+
Requires-Dist: fastapi >=0.93.0 ; extra == 'server'
|
|
97
|
+
Requires-Dist: pygeofilter ; extra == 'server'
|
|
98
|
+
Requires-Dist: starlette ; extra == 'server'
|
|
99
|
+
Requires-Dist: uvicorn[standard] ; extra == 'server'
|
|
100
|
+
Requires-Dist: pydantic-settings ; extra == 'server'
|
|
101
|
+
Requires-Dist: cachetools ; extra == 'server'
|
|
94
102
|
Provides-Extra: tutorials
|
|
103
|
+
Requires-Dist: eodag[notebook] ; extra == 'tutorials'
|
|
95
104
|
Requires-Dist: eodag-cube >=0.2.0 ; extra == 'tutorials'
|
|
96
105
|
Requires-Dist: jupyter ; extra == 'tutorials'
|
|
97
106
|
Requires-Dist: ipyleaflet >=0.10.0 ; extra == 'tutorials'
|
|
@@ -101,38 +110,44 @@ Requires-Dist: folium ; extra == 'tutorials'
|
|
|
101
110
|
Requires-Dist: imageio ; extra == 'tutorials'
|
|
102
111
|
Requires-Dist: rasterio ; extra == 'tutorials'
|
|
103
112
|
Requires-Dist: netcdf4 ; extra == 'tutorials'
|
|
113
|
+
Provides-Extra: usgs
|
|
114
|
+
Requires-Dist: usgs >=0.3.1 ; extra == 'usgs'
|
|
104
115
|
|
|
105
116
|
.. image:: https://eodag.readthedocs.io/en/latest/_static/eodag_bycs.png
|
|
106
117
|
:target: https://github.com/CS-SI/eodag
|
|
107
118
|
|
|
108
119
|
|
|
|
109
120
|
|
|
110
|
-
.. image:: https://badge.fury.io/py/eodag.svg
|
|
121
|
+
.. |pypi-badge| image:: https://badge.fury.io/py/eodag.svg
|
|
111
122
|
:target: https://badge.fury.io/py/eodag
|
|
112
123
|
|
|
113
|
-
.. image:: https://img.shields.io/conda/vn/conda-forge/eodag
|
|
124
|
+
.. |conda-badge| image:: https://img.shields.io/conda/vn/conda-forge/eodag
|
|
114
125
|
:target: https://anaconda.org/conda-forge/eodag
|
|
115
126
|
|
|
116
|
-
.. image:: https://readthedocs.org/projects/eodag/badge/?version=latest&style=flat
|
|
127
|
+
.. |rtd-badge| image:: https://readthedocs.org/projects/eodag/badge/?version=latest&style=flat
|
|
117
128
|
:target: https://eodag.readthedocs.io/en/latest/
|
|
118
129
|
|
|
119
|
-
.. image:: https://github.com/CS-SI/eodag/actions/workflows/test.yml/badge.svg
|
|
130
|
+
.. |gha-badge| image:: https://github.com/CS-SI/eodag/actions/workflows/test.yml/badge.svg
|
|
120
131
|
:target: https://github.com/CS-SI/eodag/actions
|
|
121
132
|
|
|
122
|
-
.. image:: https://img.shields.io/github/issues/CS-SI/eodag.svg
|
|
133
|
+
.. |ghi-badge| image:: https://img.shields.io/github/issues/CS-SI/eodag.svg
|
|
123
134
|
:target: https://github.com/CS-SI/eodag/issues
|
|
124
135
|
|
|
125
|
-
.. image:: https://mybinder.org/badge_logo.svg
|
|
136
|
+
.. |binder-badge| image:: https://mybinder.org/badge_logo.svg
|
|
126
137
|
:target: https://mybinder.org/v2/git/https%3A%2F%2Fgithub.com%2FCS-SI%2Feodag.git/master?filepath=docs%2Fnotebooks%2Fintro_notebooks.ipynb
|
|
127
138
|
|
|
139
|
+
|pypi-badge| |conda-badge| |rtd-badge| |gha-badge| |ghi-badge| |binder-badge|
|
|
140
|
+
|
|
128
141
|
|
|
|
129
142
|
|
|
130
|
-
.. image:: https://img.shields.io/pypi/l/eodag.svg
|
|
143
|
+
.. |license-badge| image:: https://img.shields.io/pypi/l/eodag.svg
|
|
131
144
|
:target: https://pypi.org/project/eodag/
|
|
132
145
|
|
|
133
|
-
.. image:: https://img.shields.io/pypi/pyversions/eodag.svg
|
|
146
|
+
.. |versions-badge| image:: https://img.shields.io/pypi/pyversions/eodag.svg
|
|
134
147
|
:target: https://pypi.org/project/eodag/
|
|
135
148
|
|
|
149
|
+
|license-badge| |versions-badge|
|
|
150
|
+
|
|
136
151
|
|
|
|
137
152
|
|
|
138
153
|
..
|
|
@@ -184,6 +199,9 @@ And with ``conda`` from the `conda-forge channel <https://anaconda.org/conda-for
|
|
|
184
199
|
|
|
185
200
|
conda install -c conda-forge eodag
|
|
186
201
|
|
|
202
|
+
**[New in v3.0.0]** Please note that EODAG comes with a minimal set of dependencies. If you want more features, please install using one of
|
|
203
|
+
the `available extras <https://eodag.readthedocs.io/en/latest/getting_started_guide/install.html#optional-dependencies>`_.
|
|
204
|
+
|
|
187
205
|
Usage
|
|
188
206
|
=====
|
|
189
207
|
|
|
@@ -202,7 +220,7 @@ Example usage for interacting with the api in your Python code:
|
|
|
202
220
|
|
|
203
221
|
dag = EODataAccessGateway()
|
|
204
222
|
|
|
205
|
-
search_results
|
|
223
|
+
search_results = dag.search(
|
|
206
224
|
productType='S2_MSI_L1C',
|
|
207
225
|
geom={'lonmin': 1, 'latmin': 43.5, 'lonmax': 2, 'latmax': 44}, # accepts WKT polygons, shapely.geometry, ...
|
|
208
226
|
start='2021-01-01',
|
|
@@ -216,10 +234,13 @@ This will search for Sentinel 2 level-1C products on the default provider and re
|
|
|
216
234
|
an estimated total number of products matching the search criteria. And then it will download these products. Please
|
|
217
235
|
check the `Python API User Guide <https://eodag.readthedocs.io/en/latest/api_user_guide.html>`_ for more details.
|
|
218
236
|
|
|
237
|
+
**[New in v3.0.0]** `search() <https://eodag.readthedocs.io/en/latest/notebooks/api_user_guide/4_search.html#search()>`_
|
|
238
|
+
method now returns only a single ``SearchResult`` instead of a 2 values tuple.
|
|
239
|
+
|
|
219
240
|
STAC REST API
|
|
220
241
|
-------------
|
|
221
242
|
|
|
222
|
-
An eodag instance can be exposed through a STAC compliant REST api from the command line:
|
|
243
|
+
An eodag instance can be exposed through a STAC compliant REST api from the command line (``eodag[server]`` needed):
|
|
223
244
|
|
|
224
245
|
.. code-block:: bash
|
|
225
246
|
|
|
@@ -277,7 +298,7 @@ An eodag instance can be exposed through a STAC compliant REST api from the comm
|
|
|
277
298
|
|
|
278
299
|
.. code-block:: bash
|
|
279
300
|
|
|
280
|
-
docker run -p 5000:5000 --rm csspace/eodag-server:
|
|
301
|
+
docker run -p 5000:5000 --rm csspace/eodag-server:3.0.0b2
|
|
281
302
|
|
|
282
303
|
You can also browse over your STAC API server using `STAC Browser <https://github.com/radiantearth/stac-browser>`_.
|
|
283
304
|
Simply run:
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
eodag/__init__.py,sha256=PwOPGPlRIeXvq5KFGlz4-obHsyeSgGPNCpQxiRt2mug,1696
|
|
2
|
+
eodag/cli.py,sha256=v3cyHFuH2LJVu7d_wKeKlPikFjO0H3I81nqTKGel0Gk,28704
|
|
3
|
+
eodag/config.py,sha256=pBM-fxbSphzFyK2q9Yw8MBEYKC3K5X_W7LiliBThgZc,26994
|
|
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/core.py,sha256=w57S2sQ2INT1t-3_WWkkgpmzxSgAr34Vx_EtzMZ1LcA,106980
|
|
8
|
+
eodag/api/search_result.py,sha256=8_iZOJQF4x1uXq6IAegUnp5hxArqq9ylu1orJO2lrsc,8043
|
|
9
|
+
eodag/api/product/__init__.py,sha256=1PjvzrIDj22xHX67vzUt9WuAvO2CACku5xKaIx2ivuQ,994
|
|
10
|
+
eodag/api/product/_assets.py,sha256=fnucgOPT9D5NzFhKceiW7kBW-hcuZrOMjwXK6v57W6k,6663
|
|
11
|
+
eodag/api/product/_product.py,sha256=89Wkufl2ZjeiMLoOgUyloFW3cf_lIDfqOFjqssv4-lg,23570
|
|
12
|
+
eodag/api/product/metadata_mapping.py,sha256=AysipreYzax47iHR2e4C_6ZFh9KnhfNhi6uicOYpdEs,70755
|
|
13
|
+
eodag/api/product/drivers/__init__.py,sha256=mURgF0RpptZec5DIoCryNW4N_41g1Lao4BitMZ0dWZw,912
|
|
14
|
+
eodag/api/product/drivers/base.py,sha256=LObZ7LSJo7B5UGtRX9RjCJKle2rslAtSlwAjc__FpUU,1910
|
|
15
|
+
eodag/plugins/__init__.py,sha256=KQkD5aVwb9I6C-Rmi5ABEG1-j8w5FP1zKN12vagsT9Y,739
|
|
16
|
+
eodag/plugins/base.py,sha256=I-kxG83mh805kZldrgl--VTVBzDNtyE8f_MRkm1VLCY,2689
|
|
17
|
+
eodag/plugins/manager.py,sha256=h0TAM545suuwxOOp3_ysvdJEVJRz2P7V-5QSZAxbW1M,15480
|
|
18
|
+
eodag/plugins/apis/__init__.py,sha256=PyY4f7P2iu3MkLPnw5eOrVew2fuavbBL3Asci3Ulwoo,744
|
|
19
|
+
eodag/plugins/apis/base.py,sha256=MMGoyeRw72cS5EkRVmHsSpyh5BcPsL1EmzjKKG7zwMA,2669
|
|
20
|
+
eodag/plugins/apis/ecmwf.py,sha256=rZaQSKelB-MPsGNixK9T52-kLK0zxh2ZZMluPdsWP_I,10007
|
|
21
|
+
eodag/plugins/apis/usgs.py,sha256=M7YNM43zLOo92pIhPECKvi_Oldz4lwTtCgDJCtKO4Bs,16358
|
|
22
|
+
eodag/plugins/authentication/__init__.py,sha256=_LVw42Bb1IhGAZH5xHRaS4b1iFoF9e27KDZOyoSoJHY,1039
|
|
23
|
+
eodag/plugins/authentication/aws_auth.py,sha256=0-obK1rbF3D1o9D2Gejr8v9jaMn2Yh8f0EATq8DiG3c,2393
|
|
24
|
+
eodag/plugins/authentication/base.py,sha256=3UjNfOe1zAZbVG7CXi6CrOPG5ltwtl1ZUk3BtbpzSn4,2166
|
|
25
|
+
eodag/plugins/authentication/generic.py,sha256=cgC7VTFUPzqTbTHgoWTdnzlQ1i26hIUoKQOfkwta9Ps,1846
|
|
26
|
+
eodag/plugins/authentication/header.py,sha256=mAduHrwu4rhJpneuvocQ765XRxMICZij614TfgxM_J4,3922
|
|
27
|
+
eodag/plugins/authentication/keycloak.py,sha256=eJIIldEyh63MKZOWnEAxPyzSEZEU2Aw7R8BITEyqkT8,5964
|
|
28
|
+
eodag/plugins/authentication/oauth.py,sha256=x39Fcx6x1mOwc5BlukrJCVnGVu1XhU6ikRCWsQip5q0,1545
|
|
29
|
+
eodag/plugins/authentication/openid_connect.py,sha256=Xk6gfAMyZSc1IHgVMuRb3q15WvN4m1qawIs0BMZeVdU,22419
|
|
30
|
+
eodag/plugins/authentication/qsauth.py,sha256=54bI9V6cn6LcLR5q2lKBVuY3BqiKG5zdIeYBrgRj6zI,3614
|
|
31
|
+
eodag/plugins/authentication/sas_auth.py,sha256=cOpXqKHKXM-PWXCEbpZzDoa5hWjKT512k8aYC-HgeHM,3939
|
|
32
|
+
eodag/plugins/authentication/token.py,sha256=yBFD4tkDUCtwKg6hAKbEp0Op9SM4B9ELzJnA1SIrYGM,8073
|
|
33
|
+
eodag/plugins/authentication/token_exchange.py,sha256=KsWXNw-zywh3t8AvAyFOYqWHP6PmsdfAeb53xp-gj_M,4447
|
|
34
|
+
eodag/plugins/crunch/__init__.py,sha256=58D7kJhEpHJWobIKaNFPynfbSqAWgS90BiHzitqS5Ds,746
|
|
35
|
+
eodag/plugins/crunch/base.py,sha256=ceVbBFo73BhlQaaww6K_ReVziv_a_W-RUQBeQD908_U,1297
|
|
36
|
+
eodag/plugins/crunch/filter_date.py,sha256=bX1rr-p1Eoa6gksqu2xKYBXZEeLUwWfv6UEVlHvKqXM,4525
|
|
37
|
+
eodag/plugins/crunch/filter_latest_intersect.py,sha256=mXgiOCbeCEgMwYAZ7GQzfKW0ANBSnkOtarmpJi3pp0E,4531
|
|
38
|
+
eodag/plugins/crunch/filter_latest_tpl_name.py,sha256=5I2ewq5al2KzJFyEiY971De1vbARTaJ4_TA0gQvhCbM,3848
|
|
39
|
+
eodag/plugins/crunch/filter_overlap.py,sha256=9Vdb01RXDl90oCIz_2mLlHqBZSkq1c7pYV6r7zMY5IQ,7361
|
|
40
|
+
eodag/plugins/crunch/filter_property.py,sha256=jMyHL1bhj7EhPWq8A-k1FoOpOFKtvGvJ0hZjCxq561Y,3419
|
|
41
|
+
eodag/plugins/download/__init__.py,sha256=zqszaeNgYP0YHlZDkLMf6odcwNw0KrAahGpcA-l0kAw,740
|
|
42
|
+
eodag/plugins/download/aws.py,sha256=QRNkQ1cBn483DhGVtwCBFtktVAgFPuxRrgMREwki17I,56076
|
|
43
|
+
eodag/plugins/download/base.py,sha256=Ypmnl30qZS3_bsPRPI93zm2CbypqZgsokuyAaVLi37o,32017
|
|
44
|
+
eodag/plugins/download/creodias_s3.py,sha256=xAg_wxBiQ2PrIW9PYvLIU9bJAjl1PnRRumirE-b19Uo,2255
|
|
45
|
+
eodag/plugins/download/http.py,sha256=NBfTpczp83UllU0bdmEkHqHf2IMzgmv5fnpsPyW7ibw,55259
|
|
46
|
+
eodag/plugins/download/s3rest.py,sha256=Xp1Ui7sHYR0a2J-yAt4vlnzIPw2xhgPNikyjvqzRSG8,14635
|
|
47
|
+
eodag/plugins/search/__init__.py,sha256=j-Hqf3MTJUd5fkza5GV6R5zmHzfED4qRfNjCfHGHpjk,1882
|
|
48
|
+
eodag/plugins/search/base.py,sha256=NGUNMaLH5p0dqkUESXit8V63k2_hm5YbItMjJU_63gc,16076
|
|
49
|
+
eodag/plugins/search/build_search_result.py,sha256=hceTjAa704g0SU0RkQmX0ZhJG1Tz3GN47_2t0hBgru4,22199
|
|
50
|
+
eodag/plugins/search/cop_marine.py,sha256=RaNSWNXG-COp50jCyOznwX2aqWidmgLmXeZ41zTMdR8,15102
|
|
51
|
+
eodag/plugins/search/creodias_s3.py,sha256=zDlavnkLe9vngnkDJvhkPglRKZm77dLljiAW3Prb6Nk,5645
|
|
52
|
+
eodag/plugins/search/csw.py,sha256=qZkjd_HtZwmCSOqeCEgJUJ9GEgfKks0VmwRi12zjrQU,9664
|
|
53
|
+
eodag/plugins/search/data_request_search.py,sha256=w7rykBm-ZBC24nKD4RFWQKw_rQWvwCffrQbteUJZN04,18619
|
|
54
|
+
eodag/plugins/search/qssearch.py,sha256=Ljn_hxag3PE8CQCDAhdCalMVe_W0ccIh4ZM0LsLEPLY,72473
|
|
55
|
+
eodag/plugins/search/static_stac_search.py,sha256=9dbX_Nw-R6VpeRNctgFyuuNCS0892Wj58rvvKE2MiEE,8691
|
|
56
|
+
eodag/resources/ext_product_types.json,sha256=EfOhi4Dub-sP_i4unfiUH1RZ7ACy4NDM54FitL4AhtU,1550087
|
|
57
|
+
eodag/resources/locations_conf_template.yml,sha256=_eBv-QKHYMIKhY0b0kp4Ee33RsayxN8LWH3kDXxfFSk,986
|
|
58
|
+
eodag/resources/product_types.yml,sha256=L8N9vRaylB3VlQSE7dmtCB9ARu8tCpeWsKcAfCcGkN4,362918
|
|
59
|
+
eodag/resources/providers.yml,sha256=YwJF4qRxr33C_IfBD-S0zk2eyL3ZX_SuTXvNnhm-3uI,255877
|
|
60
|
+
eodag/resources/stac.yml,sha256=PWIwzr-du7XfV7Jz3F9tTeMkZzUbh1gVTYnJkwVoch0,15204
|
|
61
|
+
eodag/resources/stac_api.yml,sha256=3wz1rAfxb_IWJHBdIONA7JPpAYVJpo9pzlSPFwfb41s,68893
|
|
62
|
+
eodag/resources/stac_provider.yml,sha256=2yfdnuhJYV1f5el3aFkunoPqHAcD8oCDzvASbmldIvY,6703
|
|
63
|
+
eodag/resources/user_conf_template.yml,sha256=1bw00c4tPhtumz2Euq5bD8-yX_mrTqOAH2DTmC5myDA,7512
|
|
64
|
+
eodag/resources/constraints/climate-dt.json,sha256=4JjtzvOKdRTi22d2R0rqVpJbfO7TWfpdDqttRSyGsaI,247814
|
|
65
|
+
eodag/resources/constraints/extremes-dt.json,sha256=b7AVXWWdygqHPRdqR8gxStkJy5ou6ds2utfAJzaVyQA,5507
|
|
66
|
+
eodag/resources/shp/ne_110m_admin_0_map_units.VERSION.txt,sha256=CHSo_jbv-4d4D0MYRbWn2FvmV_K9mYzo7qznF4YNO3g,7
|
|
67
|
+
eodag/resources/shp/ne_110m_admin_0_map_units.cpg,sha256=FG1nif_gM6UpfBrQRuamLuNTGbhrAhRE8FtuoqqKH0o,6
|
|
68
|
+
eodag/resources/shp/ne_110m_admin_0_map_units.dbf,sha256=uEEO22hZ_crWxMNhuQ_ix889c1Us1awYXAglxbf1K-s,393747
|
|
69
|
+
eodag/resources/shp/ne_110m_admin_0_map_units.prj,sha256=oaohy2UQUlLMiTy3HhYS1Kurl_7z3A3LYcOmVf_TbNo,148
|
|
70
|
+
eodag/resources/shp/ne_110m_admin_0_map_units.shp,sha256=GMVJQ1pe0JfaJnVfAew0MvembDJDkfUs0To2Qc82Aos,181628
|
|
71
|
+
eodag/resources/shp/ne_110m_admin_0_map_units.shx,sha256=N74fDl6sQAljmHQ_e9DO7suO6BXuwC0LwmriAnDBH-U,1564
|
|
72
|
+
eodag/rest/__init__.py,sha256=v4SI9gLuFP81YXi5_k98lvVNGzz6h8YZ_aUdhKAbE2M,916
|
|
73
|
+
eodag/rest/cache.py,sha256=zGqVt8AAbqwhRmWmAbRPLMJgEb1ZD67WO-QnWwoe3a4,2103
|
|
74
|
+
eodag/rest/config.py,sha256=mNXmixiRBpV_39sUlrl_r2H7PFyYfHyvvv1mxy49xjg,2141
|
|
75
|
+
eodag/rest/constants.py,sha256=HJgCQcMgSdBgwYX9-ozNlrFT-htU2-lxLGuGqp1nR6E,977
|
|
76
|
+
eodag/rest/core.py,sha256=pcC5r3nlQCBcI25jgoP4TaKk24GTMhX97ZawRXfCXWg,25462
|
|
77
|
+
eodag/rest/server.py,sha256=9N2wrwKCMAh5vVh-eff4B21KCwTcONMST9Kj2VfkhM0,26727
|
|
78
|
+
eodag/rest/server.wsgi,sha256=ssM4JQi8tZpOYj03CTdM0weyUF1b3Lbh38pdD-vBfXs,152
|
|
79
|
+
eodag/rest/stac.py,sha256=62tQ8NrAP1d3byRgMvB3G-PotevGnMeW_KNcph2YuBw,54998
|
|
80
|
+
eodag/rest/templates/README,sha256=qFgCBE6XC4YiXkpPoSHkYbMTQr8Zg5Wc5eAKVcooXmw,57
|
|
81
|
+
eodag/rest/types/__init__.py,sha256=Bu0C3dzXHe8kocnz2PIHV0GjQWlAQas6ToIfwusNPQs,742
|
|
82
|
+
eodag/rest/types/collections_search.py,sha256=76dvL9y_Cq0ERoJdAn6btXx-0EFWxlfPYSoO7xkFA7c,1533
|
|
83
|
+
eodag/rest/types/eodag_search.py,sha256=y00Ur1aPe5uXHLZfokQ4xr47mNoExW2kUexlYPjFSe4,13934
|
|
84
|
+
eodag/rest/types/queryables.py,sha256=KdhdvB2WMx__ga2WLhqg9q08LWVTi5fgJESOc9QixcM,6378
|
|
85
|
+
eodag/rest/types/stac_search.py,sha256=mrjAHvxshfNihY7CX_MzaJVgGWe7rW2TLPuPAxy9Uu4,8919
|
|
86
|
+
eodag/rest/utils/__init__.py,sha256=D6SWRK_UF3yY-s1PweehJ1Oesnyw6ySMrhxQzjn3dJs,6544
|
|
87
|
+
eodag/rest/utils/cql_evaluate.py,sha256=cren4gxNyi_3gIEq0CADpqyi5sVnr93rY26CXWCyM3Y,4106
|
|
88
|
+
eodag/rest/utils/rfc3339.py,sha256=qZTC9vo7ZcA-vEVKva3ActhPcXWDZ8iH-ZPXy_zp4Ic,2265
|
|
89
|
+
eodag/types/__init__.py,sha256=d4Zj9Cdrk3HSv3c9mRUv1WhiQAjihdNMUJu-Ckk8eGE,11471
|
|
90
|
+
eodag/types/bbox.py,sha256=okc8oFgvoSTQnXJew740i41HArAoSD36Xjr_XmZ1Q4M,4373
|
|
91
|
+
eodag/types/download_args.py,sha256=0w6CSa_avJjgQkheqH0igGT7ZPariJ7ylrX8BsMX9-4,1005
|
|
92
|
+
eodag/types/queryables.py,sha256=oELD822--6aZiJGG82eIH3HLKHcmUpXW-gL5TtaN-WQ,6010
|
|
93
|
+
eodag/types/search_args.py,sha256=GvcKwYjaR_qiN8e2zX4v8oM70jcdqSmz6TmXrlpPJUo,5695
|
|
94
|
+
eodag/types/whoosh.py,sha256=mbvv-H1SHrUoo4vZtJJKzrHCh_4K-dlL-ulGyiyO1hI,2585
|
|
95
|
+
eodag/utils/__init__.py,sha256=hTBj4rpGCzKxvowfxRvfmyqQ8cTzNaexJgIiXeLaVhY,50147
|
|
96
|
+
eodag/utils/constraints.py,sha256=-UeU617odFupb-cYJoFq1Ztwv-XczA8sNj3Jm-dmi7M,9831
|
|
97
|
+
eodag/utils/exceptions.py,sha256=B4OYQD8yZfgS6HK4h-o-uTK0zDlIWzQXUGuvxJZHTSE,3564
|
|
98
|
+
eodag/utils/import_system.py,sha256=D6VqgkfcQFVfz82aJYILOMRIsY-fM5xcTAcBohyDpuc,4020
|
|
99
|
+
eodag/utils/logging.py,sha256=YcgiOb8iUzMGGoW_ppuZm77bKi96MpDyMANBvu0Bu4k,5143
|
|
100
|
+
eodag/utils/notebook.py,sha256=QkN9a6E9oinkUaBXeze0iYKusgqbMvV680dMrfm69Ao,2621
|
|
101
|
+
eodag/utils/repr.py,sha256=6ocR8WyatAvh0oAM40bj_FvIt_XMmu-sW0nPxbH9UnM,3683
|
|
102
|
+
eodag/utils/requests.py,sha256=Uy7CdkllPtVLRQ-GiZe4cOmLfUAEp8cyzPGVoXhE95g,4914
|
|
103
|
+
eodag/utils/rest.py,sha256=K5aVbbWOKHx7ncyvsDSJVgSOt9H8QW3bwaRQGdz9_B0,3491
|
|
104
|
+
eodag/utils/stac_reader.py,sha256=QPRK10fnJE5MHlcNmHqv2Wugu_a8y5Z3jBAd2zKuLBI,9507
|
|
105
|
+
eodag-3.0.0b2.dist-info/LICENSE,sha256=4MAecetnRTQw5DlHtiikDSzKWO1xVLwzM5_DsPMYlnE,10172
|
|
106
|
+
eodag-3.0.0b2.dist-info/METADATA,sha256=iURP2bGJkxeYDuhuLQ2Bg7jmFyVzgmn7lTUj6ZpB9-0,15081
|
|
107
|
+
eodag-3.0.0b2.dist-info/WHEEL,sha256=mguMlWGMX-VHnMpKOjjQidIo1ssRlCFu4a4mBpz1s2M,91
|
|
108
|
+
eodag-3.0.0b2.dist-info/entry_points.txt,sha256=XKlXM_KuExc_-smc9Gf5MptkNkb-zFgz7bOX9kU7d8Y,2340
|
|
109
|
+
eodag-3.0.0b2.dist-info/top_level.txt,sha256=025IMTmVe5eDjIPP4KEFQKespOPMQdne4U4jOy8nftM,6
|
|
110
|
+
eodag-3.0.0b2.dist-info/RECORD,,
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
eodag = eodag.cli:eodag
|
|
3
3
|
|
|
4
4
|
[eodag.plugins.api]
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
UsgsApi = eodag.plugins.apis.usgs:UsgsApi
|
|
5
|
+
EcmwfApi = eodag.plugins.apis.ecmwf:EcmwfApi [ecmwf]
|
|
6
|
+
UsgsApi = eodag.plugins.apis.usgs:UsgsApi [usgs]
|
|
8
7
|
|
|
9
8
|
[eodag.plugins.auth]
|
|
10
9
|
AwsAuth = eodag.plugins.authentication.aws_auth:AwsAuth
|
|
@@ -14,6 +13,7 @@ HttpQueryStringAuth = eodag.plugins.authentication.qsauth:HttpQueryStringAuth
|
|
|
14
13
|
KeycloakOIDCPasswordAuth = eodag.plugins.authentication.keycloak:KeycloakOIDCPasswordAuth
|
|
15
14
|
OAuth = eodag.plugins.authentication.oauth:OAuth
|
|
16
15
|
OIDCAuthorizationCodeFlowAuth = eodag.plugins.authentication.openid_connect:OIDCAuthorizationCodeFlowAuth
|
|
16
|
+
OIDCTokenExchangeAuth = eodag.plugins.authentication.token_exchange:OIDCTokenExchangeAuth
|
|
17
17
|
SASAuth = eodag.plugins.authentication.sas_auth:SASAuth
|
|
18
18
|
TokenAuth = eodag.plugins.authentication.token:TokenAuth
|
|
19
19
|
|
|
@@ -31,9 +31,10 @@ HTTPDownload = eodag.plugins.download.http:HTTPDownload
|
|
|
31
31
|
S3RestDownload = eodag.plugins.download.s3rest:S3RestDownload
|
|
32
32
|
|
|
33
33
|
[eodag.plugins.search]
|
|
34
|
-
AwsSearch = eodag.plugins.search.qssearch:AwsSearch
|
|
35
34
|
BuildPostSearchResult = eodag.plugins.search.build_search_result:BuildPostSearchResult
|
|
36
|
-
|
|
35
|
+
BuildSearchResult = eodag.plugins.search.build_search_result:BuildSearchResult
|
|
36
|
+
CSWSearch = eodag.plugins.search.csw:CSWSearch [csw]
|
|
37
|
+
CopMarineSearch = eodag.plugins.search.cop_marine:CopMarineSearch
|
|
37
38
|
CreodiasS3Search = eodag.plugins.search.creodias_s3:CreodiasS3Search
|
|
38
39
|
DataRequestSearch = eodag.plugins.search.data_request_search:DataRequestSearch
|
|
39
40
|
ODataV4Search = eodag.plugins.search.qssearch:ODataV4Search
|