diff --git a/json_schema/v1.0.0/schema.json b/json_schema/v1.0.0/schema.json index 23f30364016f1d89d7e344800d458a868fb53d3e..e2fc3c424c7cc563a8fdd9f31360cd6eb5e6e06a 100755 --- a/json_schema/v1.0.0/schema.json +++ b/json_schema/v1.0.0/schema.json @@ -120,6 +120,7 @@ } }, "fields": { + "description": "Extension metadata model.", "properties": { "prefix:name": { "title": "Process name", @@ -141,4 +142,4 @@ "type": "object" } } -} \ No newline at end of file +} diff --git a/pydantic_pystac_extensions_example/__init__.py b/pydantic_pystac_extensions_example/__init__.py index 426540f2987ce3f425103fddac0c4ca1499017f0..03b57f3214d780fc610c0696a8ab2cb9fbe56df2 100644 --- a/pydantic_pystac_extensions_example/__init__.py +++ b/pydantic_pystac_extensions_example/__init__.py @@ -1,4 +1,6 @@ -from .my_extension import MyExtension, MyExtensionModel +"""pydantic-pystac-extensions implementation example.""" + +from .my_extension import MyExtension, MyExtensionModel # noqa # Remember to bump version before each new package build -__version__ = "0.0.10" \ No newline at end of file +__version__ = "0.0.10" diff --git a/pydantic_pystac_extensions_example/my_extension.py b/pydantic_pystac_extensions_example/my_extension.py index 205f16d71cb02d8e64b21b47047150f9c7f44a20..bbf127b4e1d82348f66313c3308f19c36b2e194d 100644 --- a/pydantic_pystac_extensions_example/my_extension.py +++ b/pydantic_pystac_extensions_example/my_extension.py @@ -1,5 +1,7 @@ +"""pydantic-pystac-extensions implementation example.""" + from pydantic_pystac_extensions import create_extension_cls, BaseExtensionModel -from pydantic import Field, ConfigDict +from pydantic import Field from typing import List SCHEMA_URI: str = ( @@ -8,20 +10,13 @@ SCHEMA_URI: str = ( ) -# Extension model class MyExtensionModel(BaseExtensionModel): - # Required so that one model can be instantiated with the attribute name - # rather than the alias - model_config = ConfigDict(populate_by_name=True) + """Extension metadata model.""" - # Metadata fields name: str = Field(title="Process name", alias="prefix:name") authors: List[str] = Field(title="Authors", alias="prefix:authors") version: str = Field(title="Process version", alias="prefix:version") # Extension class -MyExtension = create_extension_cls( - model_cls=MyExtensionModel, - schema_uri=SCHEMA_URI -) +MyExtension = create_extension_cls(model_cls=MyExtensionModel, schema_uri=SCHEMA_URI) diff --git a/tests/extension_test.py b/tests/extension_test.py index 64586ce9bdb98dfe87f6143edc2e906299f9f410..1eff9b4aeb3b3d3ec51b456cf1d342e45754afbc 100644 --- a/tests/extension_test.py +++ b/tests/extension_test.py @@ -1,15 +1,15 @@ -from pydantic_pystac_extensions_example import MyExtension, MyExtensionModel +"""pydantic-pystac-extensions implementation example tests.""" + from pydantic_pystac_extensions.testing import basic_test, is_schema_url_synced +from pydantic_pystac_extensions_example import MyExtension, MyExtensionModel + -ext_md = MyExtensionModel( - name="test", - authors=["michel", "denis"], - version="alpha" -) +def test_schema_sync(): + """Check that the online schema is in sync with the actual schema of the class.""" + is_schema_url_synced(MyExtension) -# Check that the online schema is in sync with the actual schema of the class -is_schema_url_synced(MyExtension) -# Basic tests (apply the extension to item/asset, read metadata from -# extended item/asset, etc.) -basic_test(ext_md, MyExtension) +def test_read_write(): + """Basic tests (apply the extension to item/asset, read metadata from stac objects.""" + ext_md = MyExtensionModel(name="test", authors=["michel", "denis"], version="alpha") + basic_test(ext_md, MyExtension)