Use cases and "how-to..."
How to customize a subtype's text rendition
In a subclass, override _excl_from_repr
, using key and/or type of value.
The most basic implementation is a no-op, excluding nothing:
def _excl_from_repr(self, k, cls):
return False
To exclude by key, though, you can do something like:
def _excl_from_repr(self, k, cls):
protected = ["reserved_metadata", "REZKEY"]
return k in protected
To exclude by value type, you can use something like:
def _excl_from_repr(self, k, cls):
return issubclass(cls, BaseOmissionType)
where BaseOmissionType
is a proxy for the name of some type of values that may
be stored in your mapping but that you prefer to not display in its text representation.
The two kinds of exclusion criteria may be combined as desired. Note that it's often advisable to invoke the superclass version of the method, but to achieve the intended effect this may be skipped.
How to exclude the object type from a text rendition
Starting in 0.12.9
, you can override the __repr__
with to use the new _render
arg, exclude_class_list
:
def __repr__(self):
# Here we want to render the data in a nice way; and we want to indicate
# the class if it's NOT a YacAttMap. If it is a YacAttMap we just want
# to give you the data without the class name.
return self._render(self._simplify_keyvalue(
self._data_for_repr(), self._new_empty_basic_map),
exclude_class_list="YacAttMap")
How to exclude classes from to_dict
conversion
Starting in 0.13.1
, you can specify a collection of classes that will be skipped in the conversion of the object to dict
.
def _excl_classes_from_todict(self):
return (pandas.DataFrame, ClassToExclude,)