biotite
biotite copied to clipboard
Avoid deserialization of PDBx data in `__contains__()`
Currently the CIF and BinaryCIF container classes use the default mixin implementation of __contains__()
. However, this default implementation uses
try:
self[key]:
except KeyError:
return False
return True
Hence, calling __contains__()
actually gets the value, e.g. checking if a category name is in a CIF/BCIF block would automatically deserialize the category data. This counteracts the lazy deserialization behavior.
This PR explicitly implements __contains__()
for all the mentioned container classes, checking only if a key is present and thus avoid the automatic deserialization.