# Utility Functions

Utility methods for marshmallow.

marshmallow.utils.callable_or_raise(obj)

  Check that an object is callable, else raise a `TypeError`.

marshmallow.utils.from_iso_date(value)

  Parse a string and return a datetime.date.

marshmallow.utils.from_iso_datetime(value)

  Parse a string and return a datetime.datetime.

  This function supports time zone offsets. When the input contains one, the output uses a timezone with a fixed offset from UTC.

marshmallow.utils.from_iso_time(value)

  Parse a string and return a datetime.time.

  This function doesn’t support time zone offsets.

marshmallow.utils.from_rfc(datestring: str) → datetime

  Parse a RFC822-formatted datetime string and return a datetime object.

  https://stackoverflow.com/questions/885015/how-to-parse-a-rfc-2822-date-time-into-a-python-datetime # noqa: B950

marshmallow.utils.get_fixed_timezone(offset: int | float | datetime.timedelta) → timezone

  Return a tzinfo instance with a fixed offset from UTC.

marshmallow.utils.get_func_args(func: Callable) → list[str]

  Given a callable, return a list of argument names. Handles `functools.partial` objects and class-based callables.

  Changed in version 3.0.0a1: Do not return bound arguments, eg. `self`.

marshmallow.utils.get_value(obj, key: int | str, default=<marshmallow.missing>)

  Helper for pulling a keyed value off various types of objects. Fields use this method by default to access attributes of the source object. For object `x` and attribute `i`, this method first tries to access `x[i]`, and then falls back to `x.i` if an exception is raised.

  Warning

  If an object `x` does not raise an exception when `x[i]` does not exist, `get_value` will never check the value `x.i`. Consider overriding `marshmallow.fields.Field.get_value` in this case.

marshmallow.utils.is_collection(obj) → bool

  Return True if `obj` is a collection type, e.g list, tuple, queryset.

marshmallow.utils.is_generator(obj) → bool

  Return True if `obj` is a generator

marshmallow.utils.is_instance_or_subclass(val, class_) → bool

  Return True if `val` is either a subclass or instance of `class_`.

marshmallow.utils.is_iterable_but_not_string(obj) → bool

  Return True if `obj` is an iterable object that isn’t a string.

marshmallow.utils.is_keyed_tuple(obj) → bool

  Return True if `obj` has keyed tuple behavior, such as namedtuples or SQLAlchemy’s KeyedTuples.

marshmallow.utils.isoformat(datetime: datetime) → str

  Return the ISO8601-formatted representation of a datetime object.

  Parameters:

    datetime (datetime) – The datetime.

marshmallow.utils.pluck(dictlist: list[dict[str, Any]], key: str)

  Extracts a list of dictionary values from a list of dictionaries.

      >>> dlist = [{'id': 1, 'name': 'foo'}, {'id': 2, 'name': 'bar'}]
      >>> pluck(dlist, 'id')
      [1, 2]

marshmallow.utils.pprint(obj, *args, **kwargs) → None

  Pretty-printing function that can pretty-print OrderedDicts like regular dictionaries. Useful for printing the output of `marshmallow.Schema.dump()`.

  Deprecated since version 3.7.0: marshmallow.pprint will be removed in marshmallow 4.

marshmallow.utils.resolve_field_instance(cls_or_instance)

  Return a Schema instance from a Schema class or instance.

  Parameters:

    cls_or_instance (type|Schema) – Marshmallow Schema class or instance.

marshmallow.utils.rfcformat(datetime: datetime) → str

  Return the RFC822-formatted representation of a datetime object.

  Parameters:

    datetime (datetime) – The datetime.

marshmallow.utils.set_value(dct: dict[str, Any], key: str, value: Any)

  Set a value in a dict. If `key` contains a ‘.’, it is assumed be a path (i.e. dot-delimited string) to the value’s location.

      >>> d = {}
      >>> set_value(d, 'foo.bar', 42)
      >>> d
      {'foo': {'bar': 42}}

marshmallow.utils.timedelta_to_microseconds(value: timedelta) → int

  Compute the total microseconds of a timedelta

  https://github.com/python/cpython/blob/bb3e0c240bc60fe08d332ff5955d54197f79751c/Lib/datetime.py#L665-L667 # noqa: B950