def from_json()

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