From 30bbf6c78164ac322c1064f16f3a766f3b1c9e03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Thu, 13 Feb 2025 17:00:49 +0100 Subject: [PATCH 01/20] wip: 1st commit --- .gitlab-ci.yml | 1 + pystac_extension_theia/s2_l2a_theia.py | 2 +- tests/extension_test.py | 8 +++----- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b8a6ac5..f809b91 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,5 +17,6 @@ stages: Tests: extends: .static_analysis_base stage: Test + allow_failure: false script: - python3 tests/extension_test.py diff --git a/pystac_extension_theia/s2_l2a_theia.py b/pystac_extension_theia/s2_l2a_theia.py index 837cdd7..da600c0 100644 --- a/pystac_extension_theia/s2_l2a_theia.py +++ b/pystac_extension_theia/s2_l2a_theia.py @@ -2,7 +2,7 @@ from stac_extension_genmeta import create_extension_cls, BaseExtensionModel from pydantic import Field -from typing import List, Final +from typing import Final SCHEMA_URI: str = ( "https://forgemia.inra.fr/umr-tetis/stac/extensions/" diff --git a/tests/extension_test.py b/tests/extension_test.py index 8d39ab6..f7c1762 100644 --- a/tests/extension_test.py +++ b/tests/extension_test.py @@ -1,11 +1,9 @@ +"""Extension implementation tests.""" + from pystac_extension_theia import S2L2ATheia, S2L2ATheiaModel from stac_extension_genmeta.testing import basic_test, is_schema_url_synced -ext_md = S2L2ATheiaModel( - archive_checksum="yyyyy", - archive_id="xxxxx", - archive_url="http://toto.fr" -) +ext_md = S2L2ATheiaModel(archive_checksum="yyyyy", archive_id="xxxxx", archive_url="http://toto.fr") # Basic tests (apply the extension to item/asset, read metadata from # extended item/asset, etc.) -- GitLab From ca19eca4730faf1ae576fe3e69c355ff1f2c5408 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Thu, 13 Feb 2025 19:40:42 +0100 Subject: [PATCH 02/20] wip: 1st commit --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f809b91..eb2e0e9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,7 +15,7 @@ stages: - Pip Tests: - extends: .static_analysis_base + extends: .static_analysis_with_pip_install stage: Test allow_failure: false script: -- GitLab From b456262ed459dfdd7b31f3c7d8d855487fc7fb2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Thu, 13 Feb 2025 20:15:20 +0100 Subject: [PATCH 03/20] wip --- json_schema/v1.0.0/schema.json | 30 ++++++++++++-------------- pyproject.toml | 2 +- pystac_extension_theia/s2_l2a_theia.py | 3 +-- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/json_schema/v1.0.0/schema.json b/json_schema/v1.0.0/schema.json index c70600a..4f6121b 100755 --- a/json_schema/v1.0.0/schema.json +++ b/json_schema/v1.0.0/schema.json @@ -1,8 +1,8 @@ { "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://forgemia.inra.fr/umr-tetis/stac/extensions/generic-metadata-example/-/raw/main/json_schema/v1.0.0/schema.json", - "title": "STAC extension from MyExtensionModel model", - "description": "STAC extension based on the MyExtensionModel model", + "$id": "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/main/json_schema/v1.1.0/schema.json", + "title": "STAC extension from S2L2ATheiaModel model", + "description": "STAC extension based on the S2L2ATheiaModel model", "oneOf": [ { "$comment": "This is the schema for STAC Items.", @@ -102,7 +102,7 @@ "stac_extensions": { "type": "array", "contains": { - "const": "https://forgemia.inra.fr/umr-tetis/stac/extensions/generic-metadata-example/-/raw/main/json_schema/v1.0.0/schema.json" + "const": "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/main/json_schema/v1.1.0/schema.json" } } } @@ -120,25 +120,23 @@ } }, "fields": { + "description": "Sentinel-2 L2A Theia extension model.", "properties": { - "prefix:name": { - "title": "Process name", + "s2-theia-l2a:archive_checksum": { + "title": "Archive checksum (md5sum)", "type": "string" }, - "prefix:authors": { - "items": { - "type": "string" - }, - "title": "Authors", - "type": "array" + "s2-theia-l2a:archive_identifier": { + "title": "Archive identifier", + "type": "string" }, - "prefix:version": { - "title": "Process version", + "s2-theia-l2a:archive_url": { + "title": "Archive URL", "type": "string" } }, - "title": "MyExtensionModel", + "title": "S2L2ATheiaModel", "type": "object" } } -} \ No newline at end of file +} diff --git a/pyproject.toml b/pyproject.toml index 7b2ee42..594794c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ dynamic = ["version"] packages = ["pystac_extension_theia"] [project.optional-dependencies] -test = ["stac-extension-genmeta[validation]", "pytest"] +test = ["stac-extension-genmeta[test]", "pytest"] [tool.setuptools.dynamic] version = { attr = "pystac_extension_theia.__version__" } diff --git a/pystac_extension_theia/s2_l2a_theia.py b/pystac_extension_theia/s2_l2a_theia.py index da600c0..bce5db8 100644 --- a/pystac_extension_theia/s2_l2a_theia.py +++ b/pystac_extension_theia/s2_l2a_theia.py @@ -5,8 +5,7 @@ from pydantic import Field from typing import Final SCHEMA_URI: str = ( - "https://forgemia.inra.fr/umr-tetis/stac/extensions/" - "pystac-extension-theia/-/raw/main/json_schema/v1.1.0/schema.json" + "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/blob/enh/json_schema/v1.0.0/schema.json?ref_type=heads" ) -- GitLab From 4ef16a8dba1b0c60282b3527a72394432f2eda4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Thu, 13 Feb 2025 20:36:12 +0100 Subject: [PATCH 04/20] wip --- json_schema/v1.0.0/schema.json | 6 +++--- pystac_extension_theia/s2_l2a_theia.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/json_schema/v1.0.0/schema.json b/json_schema/v1.0.0/schema.json index 4f6121b..f9f59d9 100755 --- a/json_schema/v1.0.0/schema.json +++ b/json_schema/v1.0.0/schema.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/main/json_schema/v1.1.0/schema.json", + "$id": "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/enh/json_schema/v1.0.0/schema.json?ref_type=heads", "title": "STAC extension from S2L2ATheiaModel model", "description": "STAC extension based on the S2L2ATheiaModel model", "oneOf": [ @@ -102,7 +102,7 @@ "stac_extensions": { "type": "array", "contains": { - "const": "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/main/json_schema/v1.1.0/schema.json" + "const": "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/enh/json_schema/v1.0.0/schema.json?ref_type=heads" } } } @@ -139,4 +139,4 @@ "type": "object" } } -} +} \ No newline at end of file diff --git a/pystac_extension_theia/s2_l2a_theia.py b/pystac_extension_theia/s2_l2a_theia.py index bce5db8..cec6fc8 100644 --- a/pystac_extension_theia/s2_l2a_theia.py +++ b/pystac_extension_theia/s2_l2a_theia.py @@ -5,7 +5,7 @@ from pydantic import Field from typing import Final SCHEMA_URI: str = ( - "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/blob/enh/json_schema/v1.0.0/schema.json?ref_type=heads" + "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/enh/json_schema/v1.0.0/schema.json?ref_type=heads" ) -- GitLab From c8884eda9357587da0d33faa481b546f5ec98ea9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Thu, 13 Feb 2025 20:45:09 +0100 Subject: [PATCH 05/20] wip --- json_schema/v1.0.0/schema.json | 4 ++-- pystac_extension_theia/__init__.py | 5 ++--- pystac_extension_theia/s2_l2a_theia.py | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/json_schema/v1.0.0/schema.json b/json_schema/v1.0.0/schema.json index f9f59d9..020aff9 100755 --- a/json_schema/v1.0.0/schema.json +++ b/json_schema/v1.0.0/schema.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/enh/json_schema/v1.0.0/schema.json?ref_type=heads", + "$id": "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/main/json_schema/v1.0.0/schema.json?ref_type=heads", "title": "STAC extension from S2L2ATheiaModel model", "description": "STAC extension based on the S2L2ATheiaModel model", "oneOf": [ @@ -102,7 +102,7 @@ "stac_extensions": { "type": "array", "contains": { - "const": "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/enh/json_schema/v1.0.0/schema.json?ref_type=heads" + "const": "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/main/json_schema/v1.0.0/schema.json?ref_type=heads" } } } diff --git a/pystac_extension_theia/__init__.py b/pystac_extension_theia/__init__.py index 9731a29..e0d6546 100644 --- a/pystac_extension_theia/__init__.py +++ b/pystac_extension_theia/__init__.py @@ -1,6 +1,5 @@ -"""Sentinel-2 L2A THEIA extension model module.""" +"""Sentinel-2 L2A THEIA extension for pystac.""" from .s2_l2a_theia import S2L2ATheia, S2L2ATheiaModel # noqa -# Remember to bump version before each new package build -__version__ = "0.0.10" +__version__ = "0.0.1" diff --git a/pystac_extension_theia/s2_l2a_theia.py b/pystac_extension_theia/s2_l2a_theia.py index cec6fc8..819f5ae 100644 --- a/pystac_extension_theia/s2_l2a_theia.py +++ b/pystac_extension_theia/s2_l2a_theia.py @@ -5,7 +5,7 @@ from pydantic import Field from typing import Final SCHEMA_URI: str = ( - "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/enh/json_schema/v1.0.0/schema.json?ref_type=heads" + "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/main/json_schema/v1.0.0/schema.json?ref_type=heads" ) -- GitLab From 75ad00c73b9cc2a2e101bdd609674961a0bdee11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Thu, 13 Feb 2025 20:45:30 +0100 Subject: [PATCH 06/20] wip --- .gitlab-ci.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index eb2e0e9..8e5dc3c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -11,9 +11,18 @@ variables: stages: - Static Analysis + - Schema - Test - Pip +Schema: + extends: .static_analysis_with_pip_install + stage: Schema + allow_failure: false + script: + - find json_schema -type f -iname "*.json" -exec sed -i "s#/-/raw/main/#/-/raw/${CI_COMMIT_REF_NAME}/#g" {} \; + - python3 -c "import pystac_extension_theia; pystac_extension_theia.S2L2ATheia.print_schema()" + Tests: extends: .static_analysis_with_pip_install stage: Test -- GitLab From 20d8f23c06b29323a5c7713db6cba4d451d3d0ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Thu, 13 Feb 2025 21:24:08 +0100 Subject: [PATCH 07/20] wip --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 594794c..74ceadd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta" name = "pystac-extension-theia" requires-python = ">=3.10" dependencies = [ - "stac-extension-genmeta", + "stac-extension-genmeta==0.1.3-dev1", "pystac[validation]" ] license = { text = "Apache-2.0" } -- GitLab From abfc6a65ba4d5509bb67def292cec4ef33da81f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Thu, 13 Feb 2025 21:57:39 +0100 Subject: [PATCH 08/20] wip --- .gitlab-ci.yml | 2 +- pyproject.toml | 2 +- pystac_extension_theia/s2_l2a_theia.py | 4 +--- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8e5dc3c..2cd24af 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,8 +20,8 @@ Schema: stage: Schema allow_failure: false script: - - find json_schema -type f -iname "*.json" -exec sed -i "s#/-/raw/main/#/-/raw/${CI_COMMIT_REF_NAME}/#g" {} \; - python3 -c "import pystac_extension_theia; pystac_extension_theia.S2L2ATheia.print_schema()" + - python3 -c "import pystac_extension_theia, stac_extension_genmeta; stac_extension_genmeta.testing.is_schema_url_synced(pystac_extension_theia.S2L2ATheia)" Tests: extends: .static_analysis_with_pip_install diff --git a/pyproject.toml b/pyproject.toml index 74ceadd..9d64cb2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta" name = "pystac-extension-theia" requires-python = ">=3.10" dependencies = [ - "stac-extension-genmeta==0.1.3-dev1", + "stac-extension-genmeta==0.1.3-dev2", "pystac[validation]" ] license = { text = "Apache-2.0" } diff --git a/pystac_extension_theia/s2_l2a_theia.py b/pystac_extension_theia/s2_l2a_theia.py index 819f5ae..e9ed86e 100644 --- a/pystac_extension_theia/s2_l2a_theia.py +++ b/pystac_extension_theia/s2_l2a_theia.py @@ -4,9 +4,7 @@ from stac_extension_genmeta import create_extension_cls, BaseExtensionModel from pydantic import Field from typing import Final -SCHEMA_URI: str = ( - "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/main/json_schema/v1.0.0/schema.json?ref_type=heads" -) +SCHEMA_URI: str = "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/main/json_schema/v1.0.0/schema.json?ref_type=heads" NS: Final = "s2-theia-l2a:" -- GitLab From 591e08cb898eff1031bf5eae379d4d1fd151e350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Thu, 13 Feb 2025 22:07:08 +0100 Subject: [PATCH 09/20] wip --- .gitlab-ci.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2cd24af..eb2e0e9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -11,18 +11,9 @@ variables: stages: - Static Analysis - - Schema - Test - Pip -Schema: - extends: .static_analysis_with_pip_install - stage: Schema - allow_failure: false - script: - - python3 -c "import pystac_extension_theia; pystac_extension_theia.S2L2ATheia.print_schema()" - - python3 -c "import pystac_extension_theia, stac_extension_genmeta; stac_extension_genmeta.testing.is_schema_url_synced(pystac_extension_theia.S2L2ATheia)" - Tests: extends: .static_analysis_with_pip_install stage: Test -- GitLab From 2e3e39af3c9ffe4afe905710d9546c90cbf2b71d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Fri, 14 Feb 2025 10:48:50 +0100 Subject: [PATCH 10/20] change extension names --- .gitlab-ci.yml | 21 ++----------------- pyproject.toml | 10 ++++----- .../__init__.py | 2 +- .../sentinel2_l2a.py | 6 +++--- tests/extension_test.py | 15 ++++++------- 5 files changed, 19 insertions(+), 35 deletions(-) rename {pystac_extension_theia => pystac_extension_sentinel2_theia}/__init__.py (54%) rename pystac_extension_theia/s2_l2a_theia.py => pystac_extension_sentinel2_theia/sentinel2_l2a.py (77%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index eb2e0e9..d573b57 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,22 +1,5 @@ include: - - project: "cdos-pub/pycode-quality" + - project: "umr-tetis/stac/extensions/pydantic-pystac-extensions" ref: "main" file: - - ".gitlab/ci/static-analysis.yml" - - ".gitlab/ci/pip.yml" - -variables: - PIP_EXTRA_INDEX_URL: https://forgemia.inra.fr/api/v4/projects/10919/packages/pypi/simple - PACKAGE_INSTALL_EXTRAS: "[test]" - -stages: - - Static Analysis - - Test - - Pip - -Tests: - extends: .static_analysis_with_pip_install - stage: Test - allow_failure: false - script: - - python3 tests/extension_test.py + - ".gitlab/ci/base.yml" diff --git a/pyproject.toml b/pyproject.toml index 9d64cb2..ae0ba8a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,20 +3,20 @@ requires = ["setuptools >= 61.0", "wheel"] build-backend = "setuptools.build_meta" [project] -name = "pystac-extension-theia" +name = "pystac-extension-sentinel2-theia" requires-python = ">=3.10" dependencies = [ - "stac-extension-genmeta==0.1.3-dev2", + "pydantic-pystac-extensions", "pystac[validation]" ] license = { text = "Apache-2.0" } dynamic = ["version"] [tool.setuptools] -packages = ["pystac_extension_theia"] +packages = ["pystac_extension_sentinel2_theia"] [project.optional-dependencies] -test = ["stac-extension-genmeta[test]", "pytest"] +test = ["pydantic-pystac-extensions[test]"] [tool.setuptools.dynamic] -version = { attr = "pystac_extension_theia.__version__" } +version = { attr = "pystac_extension_sentinel2_theia.__version__" } diff --git a/pystac_extension_theia/__init__.py b/pystac_extension_sentinel2_theia/__init__.py similarity index 54% rename from pystac_extension_theia/__init__.py rename to pystac_extension_sentinel2_theia/__init__.py index e0d6546..e804721 100644 --- a/pystac_extension_theia/__init__.py +++ b/pystac_extension_sentinel2_theia/__init__.py @@ -1,5 +1,5 @@ """Sentinel-2 L2A THEIA extension for pystac.""" -from .s2_l2a_theia import S2L2ATheia, S2L2ATheiaModel # noqa +from .s2_l2a import Sentinel2L2AModel, Sentinel2L2A # noqa __version__ = "0.0.1" diff --git a/pystac_extension_theia/s2_l2a_theia.py b/pystac_extension_sentinel2_theia/sentinel2_l2a.py similarity index 77% rename from pystac_extension_theia/s2_l2a_theia.py rename to pystac_extension_sentinel2_theia/sentinel2_l2a.py index e9ed86e..c878718 100644 --- a/pystac_extension_theia/s2_l2a_theia.py +++ b/pystac_extension_sentinel2_theia/sentinel2_l2a.py @@ -1,6 +1,6 @@ """Sentinel-2 L2A THEIA extension implementation.""" -from stac_extension_genmeta import create_extension_cls, BaseExtensionModel +from pydantic_pystac_extensions import create_extension_cls, BaseExtensionModel from pydantic import Field from typing import Final @@ -13,7 +13,7 @@ ARCHIVE_IDENTIFIER: Final = NS + "archive_identifier" ARCHIVE_URL: Final = NS + "archive_url" -class S2L2ATheiaModel(BaseExtensionModel): +class Sentinel2L2AModel(BaseExtensionModel): """Sentinel-2 L2A Theia extension model.""" archive_checksum: str = Field(title="Archive checksum (md5sum)", alias=ARCHIVE_CHECKSUM) @@ -22,4 +22,4 @@ class S2L2ATheiaModel(BaseExtensionModel): # Extension class -S2L2ATheia = create_extension_cls(model_cls=S2L2ATheiaModel, schema_uri=SCHEMA_URI) +Sentinel2L2A = create_extension_cls(model_cls=Sentinel2L2AModel, schema_uri=SCHEMA_URI) diff --git a/tests/extension_test.py b/tests/extension_test.py index f7c1762..63c25bf 100644 --- a/tests/extension_test.py +++ b/tests/extension_test.py @@ -1,13 +1,14 @@ """Extension implementation tests.""" -from pystac_extension_theia import S2L2ATheia, S2L2ATheiaModel -from stac_extension_genmeta.testing import basic_test, is_schema_url_synced +from pystac_extension_theia import Sentinel2L2AModel, Sentinel2L2A +from pydantic_pystac_extensions.testing import basic_test, is_schema_url_synced -ext_md = S2L2ATheiaModel(archive_checksum="yyyyy", archive_id="xxxxx", archive_url="http://toto.fr") + +# Check that the online schema is in sync with the actual schema of the class +is_schema_url_synced(Sentinel2L2A) + +ext_md = Sentinel2L2AModel(archive_checksum="yyyyy", archive_id="xxxxx", archive_url="http://toto.fr") # Basic tests (apply the extension to item/asset, read metadata from # extended item/asset, etc.) -basic_test(ext_md, S2L2ATheia) - -# Check that the online schema is in sync with the actual schema of the class -is_schema_url_synced(S2L2ATheia) +basic_test(ext_md, Sentinel2L2A) -- GitLab From dcc3fd5dfd34343f62443d6a03415c32ccbdccb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Fri, 14 Feb 2025 11:03:20 +0100 Subject: [PATCH 11/20] change extension names --- tests/extension_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/extension_test.py b/tests/extension_test.py index 63c25bf..f8354f7 100644 --- a/tests/extension_test.py +++ b/tests/extension_test.py @@ -1,6 +1,6 @@ """Extension implementation tests.""" -from pystac_extension_theia import Sentinel2L2AModel, Sentinel2L2A +from pystac_extension_sentinel2_theia import Sentinel2L2AModel, Sentinel2L2A from pydantic_pystac_extensions.testing import basic_test, is_schema_url_synced -- GitLab From d2404d01b984466c2b11e033c2204f715cc9e368 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Fri, 14 Feb 2025 11:07:16 +0100 Subject: [PATCH 12/20] change extension names --- pystac_extension_sentinel2_theia/sentinel2_l2a.py | 6 ++++-- tests/extension_test.py | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/pystac_extension_sentinel2_theia/sentinel2_l2a.py b/pystac_extension_sentinel2_theia/sentinel2_l2a.py index c878718..3a3f656 100644 --- a/pystac_extension_sentinel2_theia/sentinel2_l2a.py +++ b/pystac_extension_sentinel2_theia/sentinel2_l2a.py @@ -1,8 +1,8 @@ """Sentinel-2 L2A THEIA extension implementation.""" +from typing import Final from pydantic_pystac_extensions import create_extension_cls, BaseExtensionModel from pydantic import Field -from typing import Final SCHEMA_URI: str = "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/main/json_schema/v1.0.0/schema.json?ref_type=heads" @@ -16,7 +16,9 @@ ARCHIVE_URL: Final = NS + "archive_url" class Sentinel2L2AModel(BaseExtensionModel): """Sentinel-2 L2A Theia extension model.""" - archive_checksum: str = Field(title="Archive checksum (md5sum)", alias=ARCHIVE_CHECKSUM) + archive_checksum: str = Field( + title="Archive checksum (md5sum)", alias=ARCHIVE_CHECKSUM + ) archive_id: str = Field(title="Archive identifier", alias=ARCHIVE_IDENTIFIER) archive_url: str = Field(title="Archive URL", alias=ARCHIVE_URL) diff --git a/tests/extension_test.py b/tests/extension_test.py index f8354f7..06896a9 100644 --- a/tests/extension_test.py +++ b/tests/extension_test.py @@ -7,7 +7,9 @@ from pydantic_pystac_extensions.testing import basic_test, is_schema_url_synced # Check that the online schema is in sync with the actual schema of the class is_schema_url_synced(Sentinel2L2A) -ext_md = Sentinel2L2AModel(archive_checksum="yyyyy", archive_id="xxxxx", archive_url="http://toto.fr") +ext_md = Sentinel2L2AModel( + archive_checksum="yyyyy", archive_id="xxxxx", archive_url="http://toto.fr" +) # Basic tests (apply the extension to item/asset, read metadata from # extended item/asset, etc.) -- GitLab From b0ab8b58884a31d01cda4a049cf1b2337e1db1d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Fri, 14 Feb 2025 11:14:21 +0100 Subject: [PATCH 13/20] change extension names --- pystac_extension_sentinel2_theia/__init__.py | 2 +- pystac_extension_sentinel2_theia/sentinel2_l2a.py | 5 ++++- tests/extension_test.py | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pystac_extension_sentinel2_theia/__init__.py b/pystac_extension_sentinel2_theia/__init__.py index e804721..a014c5a 100644 --- a/pystac_extension_sentinel2_theia/__init__.py +++ b/pystac_extension_sentinel2_theia/__init__.py @@ -1,5 +1,5 @@ """Sentinel-2 L2A THEIA extension for pystac.""" -from .s2_l2a import Sentinel2L2AModel, Sentinel2L2A # noqa +from .sentinel2_l2a import Sentinel2L2AModel, Sentinel2L2A # noqa __version__ = "0.0.1" diff --git a/pystac_extension_sentinel2_theia/sentinel2_l2a.py b/pystac_extension_sentinel2_theia/sentinel2_l2a.py index 3a3f656..6eec6b2 100644 --- a/pystac_extension_sentinel2_theia/sentinel2_l2a.py +++ b/pystac_extension_sentinel2_theia/sentinel2_l2a.py @@ -4,7 +4,10 @@ from typing import Final from pydantic_pystac_extensions import create_extension_cls, BaseExtensionModel from pydantic import Field -SCHEMA_URI: str = "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/main/json_schema/v1.0.0/schema.json?ref_type=heads" +SCHEMA_URI: str = ( + "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/" + "-/raw/main/json_schema/v1.0.0/schema.json?ref_type=heads" +) NS: Final = "s2-theia-l2a:" diff --git a/tests/extension_test.py b/tests/extension_test.py index 06896a9..aaddc3f 100644 --- a/tests/extension_test.py +++ b/tests/extension_test.py @@ -1,7 +1,7 @@ """Extension implementation tests.""" -from pystac_extension_sentinel2_theia import Sentinel2L2AModel, Sentinel2L2A from pydantic_pystac_extensions.testing import basic_test, is_schema_url_synced +from pystac_extension_sentinel2_theia import Sentinel2L2AModel, Sentinel2L2A # Check that the online schema is in sync with the actual schema of the class -- GitLab From d225fa2c8dd09f9d17d068b0bdc7d772c025ffa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Fri, 14 Feb 2025 11:16:08 +0100 Subject: [PATCH 14/20] change extension names --- tests/extension_test.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/extension_test.py b/tests/extension_test.py index aaddc3f..3097fef 100644 --- a/tests/extension_test.py +++ b/tests/extension_test.py @@ -4,13 +4,13 @@ from pydantic_pystac_extensions.testing import basic_test, is_schema_url_synced from pystac_extension_sentinel2_theia import Sentinel2L2AModel, Sentinel2L2A -# Check that the online schema is in sync with the actual schema of the class -is_schema_url_synced(Sentinel2L2A) +def test_extension_schema(): + """Check that the online schema is in sync with the actual schema of the class.""" + is_schema_url_synced(Sentinel2L2A) -ext_md = Sentinel2L2AModel( - archive_checksum="yyyyy", archive_id="xxxxx", archive_url="http://toto.fr" -) - -# Basic tests (apply the extension to item/asset, read metadata from -# extended item/asset, etc.) -basic_test(ext_md, Sentinel2L2A) +def test_extension_instanciation(): + """Apply the extension to item/asset, read metadata from pystac objects.""" + ext_md = Sentinel2L2AModel( + archive_checksum="yyyyy", archive_id="xxxxx", archive_url="http://toto.fr" + ) + basic_test(ext_md, Sentinel2L2A) -- GitLab From 206383d38f543a476134986d9b748ddac0c1882b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Fri, 14 Feb 2025 11:23:35 +0100 Subject: [PATCH 15/20] change extension names --- json_schema/v1.0.0/schema.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/json_schema/v1.0.0/schema.json b/json_schema/v1.0.0/schema.json index 020aff9..d66e974 100755 --- a/json_schema/v1.0.0/schema.json +++ b/json_schema/v1.0.0/schema.json @@ -1,8 +1,8 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/main/json_schema/v1.0.0/schema.json?ref_type=heads", - "title": "STAC extension from S2L2ATheiaModel model", - "description": "STAC extension based on the S2L2ATheiaModel model", + "title": "STAC extension from Sentinel2L2AModel model", + "description": "STAC extension based on the Sentinel2L2AModel model", "oneOf": [ { "$comment": "This is the schema for STAC Items.", @@ -135,7 +135,7 @@ "type": "string" } }, - "title": "S2L2ATheiaModel", + "title": "Sentinel2L2AModel", "type": "object" } } -- GitLab From 944d0d49a294ff480ca21b0fbdcc8d6b40ef91f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Fri, 14 Feb 2025 11:27:45 +0100 Subject: [PATCH 16/20] change extension names --- json_schema/{v1.0.0 => v1.1.0}/schema.json | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename json_schema/{v1.0.0 => v1.1.0}/schema.json (100%) diff --git a/json_schema/v1.0.0/schema.json b/json_schema/v1.1.0/schema.json similarity index 100% rename from json_schema/v1.0.0/schema.json rename to json_schema/v1.1.0/schema.json -- GitLab From d105dddd5a2321f7260a60bea48ada26eb0808de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Fri, 14 Feb 2025 11:31:21 +0100 Subject: [PATCH 17/20] change extension names --- pystac_extension_sentinel2_theia/sentinel2_l2a.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pystac_extension_sentinel2_theia/sentinel2_l2a.py b/pystac_extension_sentinel2_theia/sentinel2_l2a.py index 6eec6b2..9878eba 100644 --- a/pystac_extension_sentinel2_theia/sentinel2_l2a.py +++ b/pystac_extension_sentinel2_theia/sentinel2_l2a.py @@ -5,8 +5,8 @@ from pydantic_pystac_extensions import create_extension_cls, BaseExtensionModel from pydantic import Field SCHEMA_URI: str = ( - "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/" - "-/raw/main/json_schema/v1.0.0/schema.json?ref_type=heads" + "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-sentinel2-theia" + "/-/raw/main/json_schema/v1.1.0/schema.json?ref_type=heads" ) -- GitLab From 60b7f5ec8ae371d3f05ade2c39335a81b165c4b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Fri, 14 Feb 2025 11:33:05 +0100 Subject: [PATCH 18/20] change extension names --- json_schema/v1.1.0/schema.json | 6 +++--- tests/extension_test.py | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/json_schema/v1.1.0/schema.json b/json_schema/v1.1.0/schema.json index d66e974..0d36dd8 100755 --- a/json_schema/v1.1.0/schema.json +++ b/json_schema/v1.1.0/schema.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/main/json_schema/v1.0.0/schema.json?ref_type=heads", + "$id": "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-sentinel2-theia/-/raw/main/json_schema/v1.1.0/schema.json?ref_type=heads", "title": "STAC extension from Sentinel2L2AModel model", "description": "STAC extension based on the Sentinel2L2AModel model", "oneOf": [ @@ -102,7 +102,7 @@ "stac_extensions": { "type": "array", "contains": { - "const": "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-theia/-/raw/main/json_schema/v1.0.0/schema.json?ref_type=heads" + "const": "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-sentinel2-theia/-/raw/main/json_schema/v1.1.0/schema.json?ref_type=heads" } } } @@ -139,4 +139,4 @@ "type": "object" } } -} \ No newline at end of file +} diff --git a/tests/extension_test.py b/tests/extension_test.py index 3097fef..2bfc789 100644 --- a/tests/extension_test.py +++ b/tests/extension_test.py @@ -8,6 +8,7 @@ def test_extension_schema(): """Check that the online schema is in sync with the actual schema of the class.""" is_schema_url_synced(Sentinel2L2A) + def test_extension_instanciation(): """Apply the extension to item/asset, read metadata from pystac objects.""" ext_md = Sentinel2L2AModel( -- GitLab From 4d94dbf187e50e59c5d666ee9d89b003ef248cb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Fri, 14 Feb 2025 13:52:28 +0100 Subject: [PATCH 19/20] change extension names --- json_schema/v1.1.0/schema.json | 142 ------------------ .../sentinel2_l2a.py | 3 +- 2 files changed, 1 insertion(+), 144 deletions(-) delete mode 100755 json_schema/v1.1.0/schema.json diff --git a/json_schema/v1.1.0/schema.json b/json_schema/v1.1.0/schema.json deleted file mode 100755 index 0d36dd8..0000000 --- a/json_schema/v1.1.0/schema.json +++ /dev/null @@ -1,142 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-sentinel2-theia/-/raw/main/json_schema/v1.1.0/schema.json?ref_type=heads", - "title": "STAC extension from Sentinel2L2AModel model", - "description": "STAC extension based on the Sentinel2L2AModel model", - "oneOf": [ - { - "$comment": "This is the schema for STAC Items.", - "allOf": [ - { - "type": "object", - "required": [ - "type", - "properties", - "assets", - "links" - ], - "properties": { - "type": { - "const": "Feature" - }, - "properties": { - "$ref": "#/definitions/fields" - }, - "assets": { - "$ref": "#/definitions/assets" - }, - "links": { - "$ref": "#/definitions/links" - } - } - }, - { - "$ref": "#/definitions/stac_extensions" - } - ] - }, - { - "$comment": "This is the schema for STAC Collections.", - "allOf": [ - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "const": "Collection" - }, - "assets": { - "$ref": "#/definitions/assets" - }, - "item_assets": { - "$ref": "#/definitions/assets" - }, - "links": { - "$ref": "#/definitions/links" - } - } - }, - { - "$ref": "#/definitions/fields" - }, - { - "$ref": "#/definitions/stac_extensions" - } - ] - }, - { - "$comment": "This is the schema for STAC Catalogs.", - "allOf": [ - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "const": "Catalog" - }, - "links": { - "$ref": "#/definitions/links" - } - } - }, - { - "$ref": "#/definitions/fields" - }, - { - "$ref": "#/definitions/stac_extensions" - } - ] - } - ], - "definitions": { - "stac_extensions": { - "type": "object", - "required": [ - "stac_extensions" - ], - "properties": { - "stac_extensions": { - "type": "array", - "contains": { - "const": "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-sentinel2-theia/-/raw/main/json_schema/v1.1.0/schema.json?ref_type=heads" - } - } - } - }, - "links": { - "type": "array", - "items": { - "$ref": "#/definitions/fields" - } - }, - "assets": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/fields" - } - }, - "fields": { - "description": "Sentinel-2 L2A Theia extension model.", - "properties": { - "s2-theia-l2a:archive_checksum": { - "title": "Archive checksum (md5sum)", - "type": "string" - }, - "s2-theia-l2a:archive_identifier": { - "title": "Archive identifier", - "type": "string" - }, - "s2-theia-l2a:archive_url": { - "title": "Archive URL", - "type": "string" - } - }, - "title": "Sentinel2L2AModel", - "type": "object" - } - } -} diff --git a/pystac_extension_sentinel2_theia/sentinel2_l2a.py b/pystac_extension_sentinel2_theia/sentinel2_l2a.py index 9878eba..9080dd7 100644 --- a/pystac_extension_sentinel2_theia/sentinel2_l2a.py +++ b/pystac_extension_sentinel2_theia/sentinel2_l2a.py @@ -5,8 +5,7 @@ from pydantic_pystac_extensions import create_extension_cls, BaseExtensionModel from pydantic import Field SCHEMA_URI: str = ( - "https://forgemia.inra.fr/umr-tetis/stac/extensions/pystac-extension-sentinel2-theia" - "/-/raw/main/json_schema/v1.1.0/schema.json?ref_type=heads" + "https://forgemia.inra.fr/umr-tetis/stac/extensions/schemas/-/raw/main/theia/v1.1.0/schema.json?ref_type=heads" ) -- GitLab From f8bb9cea871a2c2f8180695886cf93ae488c37a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi?= <remi.cresson@inrae.fr> Date: Fri, 14 Feb 2025 13:55:13 +0100 Subject: [PATCH 20/20] change extension names --- pystac_extension_sentinel2_theia/sentinel2_l2a.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pystac_extension_sentinel2_theia/sentinel2_l2a.py b/pystac_extension_sentinel2_theia/sentinel2_l2a.py index 9080dd7..b6ee010 100644 --- a/pystac_extension_sentinel2_theia/sentinel2_l2a.py +++ b/pystac_extension_sentinel2_theia/sentinel2_l2a.py @@ -5,7 +5,8 @@ from pydantic_pystac_extensions import create_extension_cls, BaseExtensionModel from pydantic import Field SCHEMA_URI: str = ( - "https://forgemia.inra.fr/umr-tetis/stac/extensions/schemas/-/raw/main/theia/v1.1.0/schema.json?ref_type=heads" + "https://forgemia.inra.fr/umr-tetis/stac/extensions/schemas/" + "-/raw/main/theia/v1.1.0/schema.json?ref_type=heads" ) -- GitLab