-
Notifications
You must be signed in to change notification settings - Fork 126
Closed
Labels
bugThings which are brokenThings which are broken
Milestone
Description
The code below throws a KeyError instead of giving a STACValidationError. I think it needs to be more defensive so if the "id" field is missing, and convert the KeyError into a STACValidationError. It's also possible that it's trying to process an entity that's not a STAC object and has no "id" field.
import pystac_client
pystac_client.Client.open(
'https://planetarycomputer.microsoft.com/api/stac/v1/').validate_all()The exception, from pystac/catalog.py:
Traceback (most recent call last):
File "/Users/philvarner/code/stac-api-validation-suite/stac_api_validation_suite/validate_all_error.py", line 3, in <module>
pystac_client.Client.open(
File "/Users/philvarner/.local/share/virtualenvs/stac-api-validation-suite-tzI1nfla/lib/python3.9/site-packages/pystac/catalog.py", line 679, in validate_all
child.validate_all()
File "/Users/philvarner/.local/share/virtualenvs/stac-api-validation-suite-tzI1nfla/lib/python3.9/site-packages/pystac/catalog.py", line 680, in validate_all
for item in self.get_items():
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 790, in from_dict
id = d.pop('id')
KeyError: 'id'
Metadata
Metadata
Assignees
Labels
bugThings which are brokenThings which are broken