diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-29 11:14:13 +0000 | 
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-29 11:14:13 +0000 | 
| commit | a3ca4d498b922753101469ebb9355d112b0f58af (patch) | |
| tree | 407d62d2bf1d8d3f9b009229b0e540f6d5fd87bc | |
| parent | 6b814c54d3cbc37c1e6acdf0163d43cac8633c09 (diff) | |
automatic import of python-stac-pydantic
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-stac-pydantic.spec | 418 | ||||
| -rw-r--r-- | sources | 1 | 
3 files changed, 420 insertions, 0 deletions
@@ -0,0 +1 @@ +/stac-pydantic-2.0.3.tar.gz diff --git a/python-stac-pydantic.spec b/python-stac-pydantic.spec new file mode 100644 index 0000000..9dfa305 --- /dev/null +++ b/python-stac-pydantic.spec @@ -0,0 +1,418 @@ +%global _empty_manifest_terminate_build 0 +Name:		python-stac-pydantic +Version:	2.0.3 +Release:	1 +Summary:	Pydantic data models for the STAC spec +License:	MIT +URL:		https://github.com/stac-utils/stac-pydantic +Source0:	https://mirrors.nju.edu.cn/pypi/web/packages/c3/44/8bb64915e137cbfc05950bf62d2325a2c92d4a5fe983b154d880a43ceac1/stac-pydantic-2.0.3.tar.gz +BuildArch:	noarch + +Requires:	python3-click +Requires:	python3-pydantic +Requires:	python3-geojson-pydantic +Requires:	python3-arrow +Requires:	python3-pytest +Requires:	python3-pytest-cov +Requires:	python3-requests +Requires:	python3-shapely +Requires:	python3-dictdiffer +Requires:	python3-jsonschema + +%description +# stac-pydantic  +[Pydantic](https://pydantic-docs.helpmanual.io/) models for [STAC](https://github.com/radiantearth/stac-spec) Catalogs, Collections, Items, and the [STAC API](https://github.com/radiantearth/stac-api-spec) spec.  Initially developed by [arturo-ai](https://github.com/arturo-ai). + +## Installation +``` +pip install stac-pydantic +``` + +For local development: +``` +pip install -e .["dev"] +``` + +| stac-pydantic | stac     | +|-------------------|--------------| +| 1.1.x             | 0.9.0        | +| 1.2.x             | 1.0.0-beta.1 | +| 1.3.x             | 1.0.0-beta.2 | +| 2.0.x             | 1.0.0        | + +## Testing +Run the entire test suite: +``` +tox +``` + +Run a single test case using the standard pytest convention: +``` +pytest -v tests/test_models.py::test_item_extensions +``` + +## Usage +### Loading Models +Load data into models with standard pydantic: +```python +from stac_pydantic import Catalog + +stac_catalog = { +  "stac_version": "0.9.0", +  "id": "sample", +  "description": "This is a very basic sample catalog.", +  "links": [ +    { +      "href": "item.json", +      "rel": "item" +    } +  ] +} + +catalog = Catalog(**stac_catalog) +assert catalog.id == "sample" +assert catalog.links[0].href == "item.json" +``` + +### Extensions +STAC defines many extensions which let the user customize the data in their catalog. `stac-pydantic.extensions.validate_extensions` will validate a `dict`, `Item`, `Collection` or `Catalog` against the schema urls provided in the `stac_extensions` property:  + +```python +from stac_pydantic import Item +from stac_pydantic.extensions import validate_extensions + +stac_item = { +    "id": "12345", +    "type": "Feature", +    "stac_extensions": [ +        "https://stac-extensions.github.io/eo/v1.0.0/schema.json"  +    ], +    "geometry": { "type": "Point", "coordinates": [0, 0] }, +    "properties": { +        "datetime": "2020-03-09T14:53:23.262208+00:00", +        "eo:cloud_cover": 25, +    }, +    "links": [], +    "assets": [], +} + +model = Item(**stac_item)  +validate_extensions(model, reraise_exception=True) +assert getattr(model.properties, "eo:cloud_cover") == 25  +``` + +The complete list of current STAC Extensions can be found [here](https://stac-extensions.github.io/). + +#### Vendor Extensions +The same procedure described above works for any STAC Extension schema as long as it can be loaded from a public url. + +### Exporting Models +Most STAC extensions are namespaced with a colon (ex `eo:gsd`) to keep them distinct from other extensions.  Because +Python doesn't support the use of colons in variable names, we use [Pydantic aliasing](https://pydantic-docs.helpmanual.io/usage/model_config/#alias-generator) +to add the namespace upon model export.  This requires [exporting](https://pydantic-docs.helpmanual.io/usage/exporting_models/) +the model with the `by_alias = True` parameter.  A convenience method (``to_dict()``) is provided to export models with +extension namespaces: + +```python +item_dict = item.to_dict() +assert item_dict['properties']['landsat:row'] == item.properties.row == 250 +``` + +### CLI +``` +Usage: stac-pydantic [OPTIONS] COMMAND [ARGS]... + +  stac-pydantic cli group + +Options: +  --help  Show this message and exit. + +Commands: +  validate-item  Validate STAC Item +``` + + + + +%package -n python3-stac-pydantic +Summary:	Pydantic data models for the STAC spec +Provides:	python-stac-pydantic +BuildRequires:	python3-devel +BuildRequires:	python3-setuptools +BuildRequires:	python3-pip +%description -n python3-stac-pydantic +# stac-pydantic  +[Pydantic](https://pydantic-docs.helpmanual.io/) models for [STAC](https://github.com/radiantearth/stac-spec) Catalogs, Collections, Items, and the [STAC API](https://github.com/radiantearth/stac-api-spec) spec.  Initially developed by [arturo-ai](https://github.com/arturo-ai). + +## Installation +``` +pip install stac-pydantic +``` + +For local development: +``` +pip install -e .["dev"] +``` + +| stac-pydantic | stac     | +|-------------------|--------------| +| 1.1.x             | 0.9.0        | +| 1.2.x             | 1.0.0-beta.1 | +| 1.3.x             | 1.0.0-beta.2 | +| 2.0.x             | 1.0.0        | + +## Testing +Run the entire test suite: +``` +tox +``` + +Run a single test case using the standard pytest convention: +``` +pytest -v tests/test_models.py::test_item_extensions +``` + +## Usage +### Loading Models +Load data into models with standard pydantic: +```python +from stac_pydantic import Catalog + +stac_catalog = { +  "stac_version": "0.9.0", +  "id": "sample", +  "description": "This is a very basic sample catalog.", +  "links": [ +    { +      "href": "item.json", +      "rel": "item" +    } +  ] +} + +catalog = Catalog(**stac_catalog) +assert catalog.id == "sample" +assert catalog.links[0].href == "item.json" +``` + +### Extensions +STAC defines many extensions which let the user customize the data in their catalog. `stac-pydantic.extensions.validate_extensions` will validate a `dict`, `Item`, `Collection` or `Catalog` against the schema urls provided in the `stac_extensions` property:  + +```python +from stac_pydantic import Item +from stac_pydantic.extensions import validate_extensions + +stac_item = { +    "id": "12345", +    "type": "Feature", +    "stac_extensions": [ +        "https://stac-extensions.github.io/eo/v1.0.0/schema.json"  +    ], +    "geometry": { "type": "Point", "coordinates": [0, 0] }, +    "properties": { +        "datetime": "2020-03-09T14:53:23.262208+00:00", +        "eo:cloud_cover": 25, +    }, +    "links": [], +    "assets": [], +} + +model = Item(**stac_item)  +validate_extensions(model, reraise_exception=True) +assert getattr(model.properties, "eo:cloud_cover") == 25  +``` + +The complete list of current STAC Extensions can be found [here](https://stac-extensions.github.io/). + +#### Vendor Extensions +The same procedure described above works for any STAC Extension schema as long as it can be loaded from a public url. + +### Exporting Models +Most STAC extensions are namespaced with a colon (ex `eo:gsd`) to keep them distinct from other extensions.  Because +Python doesn't support the use of colons in variable names, we use [Pydantic aliasing](https://pydantic-docs.helpmanual.io/usage/model_config/#alias-generator) +to add the namespace upon model export.  This requires [exporting](https://pydantic-docs.helpmanual.io/usage/exporting_models/) +the model with the `by_alias = True` parameter.  A convenience method (``to_dict()``) is provided to export models with +extension namespaces: + +```python +item_dict = item.to_dict() +assert item_dict['properties']['landsat:row'] == item.properties.row == 250 +``` + +### CLI +``` +Usage: stac-pydantic [OPTIONS] COMMAND [ARGS]... + +  stac-pydantic cli group + +Options: +  --help  Show this message and exit. + +Commands: +  validate-item  Validate STAC Item +``` + + + + +%package help +Summary:	Development documents and examples for stac-pydantic +Provides:	python3-stac-pydantic-doc +%description help +# stac-pydantic  +[Pydantic](https://pydantic-docs.helpmanual.io/) models for [STAC](https://github.com/radiantearth/stac-spec) Catalogs, Collections, Items, and the [STAC API](https://github.com/radiantearth/stac-api-spec) spec.  Initially developed by [arturo-ai](https://github.com/arturo-ai). + +## Installation +``` +pip install stac-pydantic +``` + +For local development: +``` +pip install -e .["dev"] +``` + +| stac-pydantic | stac     | +|-------------------|--------------| +| 1.1.x             | 0.9.0        | +| 1.2.x             | 1.0.0-beta.1 | +| 1.3.x             | 1.0.0-beta.2 | +| 2.0.x             | 1.0.0        | + +## Testing +Run the entire test suite: +``` +tox +``` + +Run a single test case using the standard pytest convention: +``` +pytest -v tests/test_models.py::test_item_extensions +``` + +## Usage +### Loading Models +Load data into models with standard pydantic: +```python +from stac_pydantic import Catalog + +stac_catalog = { +  "stac_version": "0.9.0", +  "id": "sample", +  "description": "This is a very basic sample catalog.", +  "links": [ +    { +      "href": "item.json", +      "rel": "item" +    } +  ] +} + +catalog = Catalog(**stac_catalog) +assert catalog.id == "sample" +assert catalog.links[0].href == "item.json" +``` + +### Extensions +STAC defines many extensions which let the user customize the data in their catalog. `stac-pydantic.extensions.validate_extensions` will validate a `dict`, `Item`, `Collection` or `Catalog` against the schema urls provided in the `stac_extensions` property:  + +```python +from stac_pydantic import Item +from stac_pydantic.extensions import validate_extensions + +stac_item = { +    "id": "12345", +    "type": "Feature", +    "stac_extensions": [ +        "https://stac-extensions.github.io/eo/v1.0.0/schema.json"  +    ], +    "geometry": { "type": "Point", "coordinates": [0, 0] }, +    "properties": { +        "datetime": "2020-03-09T14:53:23.262208+00:00", +        "eo:cloud_cover": 25, +    }, +    "links": [], +    "assets": [], +} + +model = Item(**stac_item)  +validate_extensions(model, reraise_exception=True) +assert getattr(model.properties, "eo:cloud_cover") == 25  +``` + +The complete list of current STAC Extensions can be found [here](https://stac-extensions.github.io/). + +#### Vendor Extensions +The same procedure described above works for any STAC Extension schema as long as it can be loaded from a public url. + +### Exporting Models +Most STAC extensions are namespaced with a colon (ex `eo:gsd`) to keep them distinct from other extensions.  Because +Python doesn't support the use of colons in variable names, we use [Pydantic aliasing](https://pydantic-docs.helpmanual.io/usage/model_config/#alias-generator) +to add the namespace upon model export.  This requires [exporting](https://pydantic-docs.helpmanual.io/usage/exporting_models/) +the model with the `by_alias = True` parameter.  A convenience method (``to_dict()``) is provided to export models with +extension namespaces: + +```python +item_dict = item.to_dict() +assert item_dict['properties']['landsat:row'] == item.properties.row == 250 +``` + +### CLI +``` +Usage: stac-pydantic [OPTIONS] COMMAND [ARGS]... + +  stac-pydantic cli group + +Options: +  --help  Show this message and exit. + +Commands: +  validate-item  Validate STAC Item +``` + + + + +%prep +%autosetup -n stac-pydantic-2.0.3 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then +	find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then +	find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then +	find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then +	find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then +	find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-stac-pydantic -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 29 2023 Python_Bot <Python_Bot@openeuler.org> - 2.0.3-1 +- Package Spec generated @@ -0,0 +1 @@ +62089505a0402ff9f30a65c3d1e3ab9b  stac-pydantic-2.0.3.tar.gz  | 
