utils.py 735 B

1234567891011121314151617181920
  1. def remove_fields(obj, fields: set[str]):
  2. """Remove fields from an object.
  3. Parameters:
  4. - obj: The dictionary, or list of dictionaries to remove fields from
  5. - fields (set[str]): A set of field names to remove from the object
  6. """
  7. if isinstance(obj, dict):
  8. for field in fields:
  9. if field in obj:
  10. del obj[field]
  11. for _, value in obj.items():
  12. remove_fields(value, fields)
  13. elif isinstance(obj, list) or isinstance(obj, tuple):
  14. for item in obj:
  15. remove_fields(item, fields)
  16. elif hasattr(obj, '__dataclass_fields__'):
  17. raise ValueError(
  18. 'Object must not contain dataclass, consider converting to dict first'
  19. )