##// END OF EJS Templates
tests: conditionalize the progress timestamp for Windows...
tests: conditionalize the progress timestamp for Windows It looks like for py2 on Windows, the start date is 1970. It matches the other platforms for py3, so I'm just going to match the tests and move on, given that py2 is on the way out. Differential Revision: https://phab.mercurial-scm.org/D9541

File last commit:

r41705:a5493a25 default
r46691:31ecf715 default
Show More
filters.py
52 lines | 1.1 KiB | text/x-python | PythonLexer
"""
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):
r"""
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):
r"""
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_