in modular_sdk/models/pynamodb_extension/base_model.py [0:0]
def from_json(cls, model_json: dict,
attributes_to_get: Optional[List] = None,
instance: Optional[_T] = None) -> models.Model:
_id = model_json.pop('_id', None)
instance = instance or cls()
if attributes_to_get:
to_get = set(
attr.attr_name if isinstance(attr, Attribute) else attr
for attr in attributes_to_get
)
model_json = {k: v for k, v in model_json.items() if k in to_get}
attribute_values = {k: json_to_attribute_value(v) for k, v in
model_json.items()}
# if uncommented, custom DynamicAttribute won't work due to
# attr_type property
# instance._update_attribute_types(attribute_values)
instance.deserialize(attribute_values)
instance.mongo_id = _id
return instance