When attempting to create Location objects with '0' as a value for either the latitude or longitude, the library raises a DependentPropertiesError when it should not. See relevant portion of the StackTrace below:
country = stix2.Location( File "/usr/local/lib/python3.9/site-packages/stix2/base.py", line 232, in __init__ self._check_object_constraints() File "/usr/local/lib/python3.9/site-packages/stix2/v21/sdo.py", line 398, in _check_object_constraints self._check_properties_dependency(['longitude'], ['latitude']) File "/usr/local/lib/python3.9/site-packages/stix2/base.py", line 109, in _check_properties_dependency raise DependentPropertiesError(self.__class__, failed_dependency_pairs) stix2.exceptions.DependentPropertiesError: The property dependencies for Location: (longitude, latitude) are not met.
I've traced the issue to the stix2\base.py _check_properties_dependency method where the function uses the "not" operator to check if a property is a valid value. In this scenario, '0' is a valid Longitude and Latitude and an additional layer of checking needs to occur for Number values. Note: Issue arises at if not self.get(p)
def _check_properties_dependency(self, list_of_properties, list_of_dependent_properties):
failed_dependency_pairs = []
for p in list_of_properties:
for dp in list_of_dependent_properties:
if not self.get(p) and self.get(dp):
failed_dependency_pairs.append((p, dp))
if failed_dependency_pairs:
raise DependentPropertiesError(self.__class__, failed_dependency_pairs)
When attempting to create Location objects with '0' as a value for either the latitude or longitude, the library raises a DependentPropertiesError when it should not. See relevant portion of the StackTrace below:
country = stix2.Location( File "/usr/local/lib/python3.9/site-packages/stix2/base.py", line 232, in __init__ self._check_object_constraints() File "/usr/local/lib/python3.9/site-packages/stix2/v21/sdo.py", line 398, in _check_object_constraints self._check_properties_dependency(['longitude'], ['latitude']) File "/usr/local/lib/python3.9/site-packages/stix2/base.py", line 109, in _check_properties_dependency raise DependentPropertiesError(self.__class__, failed_dependency_pairs) stix2.exceptions.DependentPropertiesError: The property dependencies for Location: (longitude, latitude) are not met.
I've traced the issue to the stix2\base.py _check_properties_dependency method where the function uses the "not" operator to check if a property is a valid value. In this scenario, '0' is a valid Longitude and Latitude and an additional layer of checking needs to occur for Number values. Note: Issue arises at
if not self.get(p)