diff --git a/dinamis_sdk/__init__.py b/dinamis_sdk/__init__.py index 9759375e836ce9712d3cb93f5db08bb063ed5b70..dfa1b29280b736d40a4679b6db149560faf4061a 100644 --- a/dinamis_sdk/__init__.py +++ b/dinamis_sdk/__init__.py @@ -1,5 +1,12 @@ """Dinamis SDK module.""" import pkg_resources __version__ = pkg_resources.require("dinamis-sdk")[0].version -from dinamis_sdk.s3 import sign_inplace # noqa +from dinamis_sdk.s3 import ( + sign, + sign_inplace, + sign_urls, + sign_item, + sign_asset, + sign_item_collection +) # noqa from dinamis_sdk import auth # noqa diff --git a/dinamis_sdk/auth.py b/dinamis_sdk/auth.py index 6c0d5101f409aff4694555f2d91c96d365a7c8a1..d2fbd211687e1750d6d846cbcec7dab5ed076c81 100644 --- a/dinamis_sdk/auth.py +++ b/dinamis_sdk/auth.py @@ -9,8 +9,8 @@ from typing import Dict import requests from pydantic import BaseModel, Field # pylint: disable = no-name-in-module import qrcode -from .utils import log, JWT_FILE, TOKEN_ENDPOINT, AUTH_BASE_URL, TOKEN_SERVER import urllib3 +from .utils import log, JWT_FILE, TOKEN_ENDPOINT, AUTH_BASE_URL, TOKEN_SERVER class JWT(BaseModel): # pylint: disable = R0903 @@ -250,6 +250,7 @@ class OAuth2Session: class TokenServer: + """Token server.""" def __init__(self, endpoint: str, total_retry=5, backoff_factor=0.8): self.endpoint = endpoint self.session = requests.Session() @@ -271,6 +272,7 @@ session = TokenServer(TOKEN_SERVER) if TOKEN_SERVER else OAuth2Session() def _get_access_token(): + """Get an access token.""" return session.get_access_token() diff --git a/dinamis_sdk/s3.py b/dinamis_sdk/s3.py index ef210fde0e040654545b2e48340d2a5ae0dac15b..0ea19ec6e24063179b66ca788ceecd36401a50d0 100644 --- a/dinamis_sdk/s3.py +++ b/dinamis_sdk/s3.py @@ -145,7 +145,7 @@ def sign_string(url: str, copy: bool = True) -> str: return sign_urls(urls=[url])[url] -def sign_urls(urls: List[str]) -> str: +def sign_urls(urls: List[str]) -> Dict[str, str]: """Sign URLs with a S3 Token. Signing URL allows read access to files in storage. @@ -487,9 +487,9 @@ def get_signed_urls( chunk_start = i_chunk * MAX_URLS chunk_end = min(chunk_start + MAX_URLS, n_urls) not_signed_urls_chunk = not_signed_urls[chunk_start:chunk_end] - params={"urls": not_signed_urls_chunk} + params = {"urls": not_signed_urls_chunk} if SIGNED_URL_DURATION_SECONDS: - params.update({"duration_seconds": SIGNED_URL_DURATION_SECONDS}) + params["duration_seconds"] = SIGNED_URL_DURATION_SECONDS response = session.post( f"{S3_SIGNING_ENDPOINT}sign_urls", params=params, diff --git a/setup.py b/setup.py index c80046c155d9610313d792f5f74743093053aad4..3655b4b9f888873bff89f29e3165219234beeb7a 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ install_requires = [ setup( name="dinamis-sdk", - version="0.1.7", + version="0.1.8", description="DINAMIS SDK", python_requires=">=3.8", author="Remi Cresson", diff --git a/tests/test_spot-6-7-drs.py b/tests/test_spot-6-7-drs.py index 814e232e42c086e1ab30e43a3eed8541b64c3f1c..eb4f285adfb0fc9e3409817777989b4c2de6c6fb 100644 --- a/tests/test_spot-6-7-drs.py +++ b/tests/test_spot-6-7-drs.py @@ -2,7 +2,7 @@ import dinamis_sdk import pystac_client api = pystac_client.Client.open( - 'https://stacapi-dinamis.apps.okd.crocc.meso.umontpellier.fr', + 'https://stacapi-cdos.apps.okd.crocc.meso.umontpellier.fr', modifier=dinamis_sdk.sign_inplace, ) res = api.search( diff --git a/tests/test_super-s2.py b/tests/test_super-s2.py index 5442f7485d0bd494b0f35fc6e0c1fd1b3218ceb2..5548f21b610621a0191024743c6f44898d0f7059 100644 --- a/tests/test_super-s2.py +++ b/tests/test_super-s2.py @@ -2,7 +2,7 @@ import dinamis_sdk import pystac_client api = pystac_client.Client.open( - 'https://stacapi-dinamis.apps.okd.crocc.meso.umontpellier.fr', + 'https://stacapi-cdos.apps.okd.crocc.meso.umontpellier.fr', modifier=dinamis_sdk.sign_inplace, ) res = api.search(