12345678910111213141516171819202122232425 |
- """Python compatiblity utilities."""
- from __future__ import absolute_import, unicode_literals
- from functools import (
- WRAPPER_ASSIGNMENTS, WRAPPER_UPDATES,
- update_wrapper as _update_wrapper,
- partial,
- )
- __all__ = ['update_wrapper', 'wraps']
- def update_wrapper(wrapper, wrapped, *args, **kwargs):
- """Update wrapper, also setting .__wrapped__."""
- wrapper = _update_wrapper(wrapper, wrapped, *args, **kwargs)
- wrapper.__wrapped__ = wrapped
- return wrapper
- def wraps(wrapped,
- assigned=WRAPPER_ASSIGNMENTS,
- updated=WRAPPER_UPDATES):
- """Backport of Python 3.5 wraps that adds .__wrapped__."""
- return partial(update_wrapper, wrapped=wrapped,
- assigned=assigned, updated=updated)
|