def from_asn1_dict(asn1_dict):
asn1_type, value = asn1_dict.popitem()
registered_type = TypeRegistry.find_by_asn1_type(asn1_type)
# Instantiate condition
condition = Condition()
condition.type_id = registered_type['type_id']
condition.hash = value['fingerprint']
condition.cost = value['cost']
condition._subtypes = set()
if registered_type['class'].TYPE_CATEGORY == 'compound':
subtypes = {
TypeRegistry.find_by_type_id(type_id)['name']
for type_id in compress(
range(Condition.MAX_SAFE_SUBTYPES),
map(lambda bit: int(bit), value['subtypes'])
)
}
condition._subtypes.update(subtypes)
return condition
评论列表
文章目录