From 00ba66e8af41c4b34d97475e6225369276c3199d Mon Sep 17 00:00:00 2001
From: Cresson Remi <remi.cresson@irstea.fr>
Date: Tue, 21 May 2024 20:19:53 +0200
Subject: [PATCH 1/2] fix: bug in sign_item_collection

---
 dinamis_sdk/s3.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dinamis_sdk/s3.py b/dinamis_sdk/s3.py
index 0ea19ec..fa2e592 100644
--- a/dinamis_sdk/s3.py
+++ b/dinamis_sdk/s3.py
@@ -283,7 +283,7 @@ def sign_item_collection(
     urls = [
         asset.href
         for item in item_collection
-        for asset in item.values()
+        for asset in item.assets.values()
     ]
     signed_urls = sign_urls(urls=urls)
     for item in item_collection:
-- 
GitLab


From f716bbc6b8f08b28a2a1ea9156039ccf6b25886e Mon Sep 17 00:00:00 2001
From: Cresson Remi <remi.cresson@irstea.fr>
Date: Tue, 21 May 2024 20:29:03 +0200
Subject: [PATCH 2/2] Update 3 files

- /setup.py
- /dinamis_sdk/utils.py
- /tests/test_super-s2.py
---
 dinamis_sdk/utils.py   | 30 +++++++++++++++---------------
 setup.py               |  3 +--
 tests/test_super-s2.py |  4 ++++
 3 files changed, 20 insertions(+), 17 deletions(-)

diff --git a/dinamis_sdk/utils.py b/dinamis_sdk/utils.py
index 7b990ed..60414d8 100644
--- a/dinamis_sdk/utils.py
+++ b/dinamis_sdk/utils.py
@@ -9,26 +9,26 @@ import requests
 logging.basicConfig(level=os.environ.get("LOGLEVEL") or "INFO")
 log = logging.getLogger("dinamis_sdk")
 
-def _get_seconds(env_var_name: str) -> int:
+
+def _get_seconds(env_var_name: str, default: int) -> int:
     val = os.environ.get(env_var_name)
     if val:
         if val.isdigit():
-            return int(val)
-    return None
+            log.info(
+                "Using %s = %s seconds",
+                env_var_name,
+                val
+            )           
+        return int(val)
+    return default
 
-# Signed TTL margin default to 1800 seconds (30 minutes), or env. var.
-if (ttl_margin_from_env := _get_seconds("DINAMIS_SDK_TTL_MARGIN")):
-    log.info(
-        "Setting TTL margin from environment variable to %s seconds",
-        ttl_margin_from_env
-    )
-SIGNED_URL_TTL_MARGIN = ttl_margin_from_env or 1800
 
-if (SIGNED_URL_DURATION_SECONDS := _get_seconds("DINAMIS_SDK_DURATION_SECONDS")):
-    log.info(
-        "Setting duration seconds from environment variable to %s seconds",
-        SIGNED_URL_DURATION_SECONDS
-    )
+# Signed TTL margin default to 1800 seconds (30 minutes), or env. var.
+SIGNED_URL_TTL_MARGIN = _get_seconds("DINAMIS_SDK_TTL_MARGIN", 1800)
+SIGNED_URL_DURATION_SECONDS = _get_seconds(
+    "DINAMIS_SDK_DURATION_SECONDS", 
+    None
+)
 
 MAX_URLS = 64
 S3_STORAGE_DOMAIN = "meso.umontpellier.fr"
diff --git a/setup.py b/setup.py
index 3655b4b..b10cbd1 100644
--- a/setup.py
+++ b/setup.py
@@ -4,7 +4,6 @@ install_requires = [
     "requests",
     "qrcode",
     "appdirs",
-    "pydantic",
     "pystac",
     "pystac_client",
     "pydantic>=1.7.3",
@@ -13,7 +12,7 @@ install_requires = [
 
 setup(
     name="dinamis-sdk",
-    version="0.1.8",
+    version="0.1.9",
     description="DINAMIS SDK",
     python_requires=">=3.8",
     author="Remi Cresson",
diff --git a/tests/test_super-s2.py b/tests/test_super-s2.py
index 5548f21..28966b6 100644
--- a/tests/test_super-s2.py
+++ b/tests/test_super-s2.py
@@ -1,5 +1,6 @@
 import dinamis_sdk
 import pystac_client
+import pystac
 
 api = pystac_client.Client.open(
    'https://stacapi-cdos.apps.okd.crocc.meso.umontpellier.fr',
@@ -13,3 +14,6 @@ res = api.search(
 urls = [item.assets['img'].href for item in res.items()]
 assert len(urls) == 672
 
+# ItemCollection (bug #17)
+ic = pystac.item_collection.ItemCollection(res.items())
+dinamis_sdk.sign_inplace(ic)
\ No newline at end of file
-- 
GitLab