def parse_document_to_dict(doc: BaseModel) -> Dict[str, Any]:
    # Convert to dictionary
    doc = doc.dict()

    # Check for any secret values and enum values
    for key, value in doc.items():
        if isinstance(value, SecretStr):
            doc[key] = value.get_secret_value()
        elif isinstance(value, Enum):
            doc[key] = value.value

    return doc
Example #2
0
 def update(self,
            data: BaseModel,
            msg: Message,
            cascade: bool = None,
            exclude: list = []) -> None:
     data = dict(data)
     if self.documents is not None:
         for doc in self.documents:
             for key, value in data.items():
                 if key not in exclude:
                     doc.__setattr__(key, value)
             if cascade is not None:
                 doc.save(cascade=cascade)
             else:
                 doc.save()
         msg.addMessage('Updated', self.toJSON())