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
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())