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.
Currently the CIF and BinaryCIF container classes use the default mixin implementation of
__contains__()
. However, this default implementation usesHence, 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.