""" Commonly useful filters for :func:`attr.asdict`. """ from __future__ import absolute_import, division, print_function from ._compat import isclass from ._make import Attribute def _split_what(what): """ Returns a tuple of `frozenset`s of classes and attributes. """ return ( frozenset(cls for cls in what if isclass(cls)), frozenset(cls for cls in what if isinstance(cls, Attribute)), ) def include(*what): """ Whitelist *what*. :param what: What to whitelist. :type what: :class:`list` of :class:`type` or :class:`attr.Attribute`\ s :rtype: :class:`callable` """ cls, attrs = _split_what(what) def include_(attribute, value): return value.__class__ in cls or attribute in attrs return include_ def exclude(*what): """ Blacklist *what*. :param what: What to blacklist. :type what: :class:`list` of classes or :class:`attr.Attribute`\ s. :rtype: :class:`callable` """ cls, attrs = _split_what(what) def exclude_(attribute, value): return value.__class__ not in cls and attribute not in attrs return exclude_
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
__init__.py | File | 1.13 KB | 0644 |
|
_compat.py | File | 4.19 KB | 0644 |
|
_config.py | File | 514 B | 0644 |
|
_funcs.py | File | 7.71 KB | 0644 |
|
_make.py | File | 48.14 KB | 0644 |
|
converters.py | File | 531 B | 0644 |
|
exceptions.py | File | 1.08 KB | 0644 |
|
filters.py | File | 1.12 KB | 0644 |
|
validators.py | File | 4.84 KB | 0644 |
|