You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)
The text was updated successfully, but these errors were encountered:
I think the problem is that the get method doesn't take into consideration that a value of 0 will be interpreted as None. If the property has a value of 0, then it exists, and shouldn't cause this error.
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)
The text was updated successfully, but these errors were encountered: