Source code for marshmallow_utils.fields.nestedattr
# -*- coding: utf-8 -*-
#
# Copyright (C) 2020 CERN.
#
# Marshmallow-Utils is free software; you can redistribute it and/or modify
# it under the terms of the MIT License; see LICENSE file for more details.
"""Nested attribute."""
from marshmallow import fields, missing
class AttributeAccessorFieldMixin:
"""Marshmallow field mixin for attribute-based serialization."""
def get_value(self, obj, attr, accessor=None, default=missing):
"""Return the value for a given key from an object attribute."""
attribute = getattr(self, "attribute", None)
check_key = attr if attribute is None else attribute
return getattr(obj, check_key, default)
[docs]class NestedAttribute(AttributeAccessorFieldMixin, fields.Nested):
"""Nested object attribute field."""