Skip to content

Exception if Catalog doesn't have a description field during catalog.get_children() #464

@philvarner

Description

@philvarner

pystac version 0.5.6

This exception is thrown if a Catalog doesn't have a description field:

Error https://tamn.snapplanet.io/: <class 'KeyError'> 'description'
Traceback (most recent call last):
  File "/Users/philvarner/code/stac-api-validator/stac_api_validator/validate_all.py", line 22, in <module>
    (warnings, errors) = validate_api(root)
  File "/Users/philvarner/code/stac-api-validator/stac_api_validator/validations.py", line 124, in validate_api
    for collection in catalog.get_children():
  File "/Users/philvarner/.local/share/virtualenvs/stac-api-validation-suite-tzI1nfla/lib/python3.9/site-packages/pystac/stac_object.py", line 343, in get_stac_objects
    link.resolve_stac_object(root=self.get_root())
  File "/Users/philvarner/.local/share/virtualenvs/stac-api-validation-suite-tzI1nfla/lib/python3.9/site-packages/pystac/link.py", line 146, in resolve_stac_object
    obj = STAC_IO.read_stac_object(target_href, root=root)
  File "/Users/philvarner/.local/share/virtualenvs/stac-api-validation-suite-tzI1nfla/lib/python3.9/site-packages/pystac/stac_io.py", line 131, in read_stac_object
    return cls.stac_object_from_dict(d, href=uri, root=root)
  File "/Users/philvarner/.local/share/virtualenvs/stac-api-validation-suite-tzI1nfla/lib/python3.9/site-packages/pystac/serialization/__init__.py", line 37, in stac_object_from_dict
    return Catalog.from_dict(d, href=href, root=root)
  File "/Users/philvarner/.local/share/virtualenvs/stac-api-validation-suite-tzI1nfla/lib/python3.9/site-packages/pystac/catalog.py", line 791, in from_dict
    description = d.pop('description')
KeyError: 'description'

This was thrown from this code:

    catalog: Client = Client.open("https://tamn.snapplanet.io")
    for collection in catalog.get_children():
        collection.validate()

The "bad" catalog without a description is here: https://tamn.snapplanet.io/catalogs/concepts

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions