python decorators made easy.
BSD-3-CLAUSE License
Bot releases are visible (Hide)
Published by github-actions[bot] over 2 years ago
@function_decorator
now has proper type hints. This is a first step towards fixing #22. PR #23 by last-partizan.See documentation page for details.
Published by github-actions[bot] over 2 years ago
Enabling the "stack introspection" beta feature with enable_stack_introspection=True
now raises an explicit NotImplementedError
on python 3.8+. Fixed #26.
Migrated to the new project layout with nox, github-actions and separation of src
and tests
. Fixed test suite with pytest-cases>=3
. Fixed #24 and #20.
See documentation page for details.
Published by smarie over 4 years ago
setup.py
. In particular removed dependency to six
for setup and added py.typed
file, as well as set the zip_safe
flag to False. Removed tests folder from package. Fixes #19
See documentation page for details.
Published by smarie almost 5 years ago
raddessi added a pyproject.toml
- thanks! Fixed pytest-cases#65.
See documentation page for details.
Published by smarie about 5 years ago
Fixed decorated object injection issue when var-positional arguments are located before it in the signature. Fixed #14.
Added __version__
attribute to comply with PEP396, following this guide. Fixes #15.
PyPI supports markdown via long_description_content_type
: pypandoc is not required anymore. Thanks minrk!
See documentation page for details.
Published by smarie over 5 years ago
enable_stack_introspection=True
mode. It also now supports classes correctly.See documentation page for details.
Published by smarie over 5 years ago
See documentation page for details.
Published by smarie over 5 years ago
In python 2, when nested mode was used in a context where the signature contains a var-positional argument, a TypeError
was raised ; this is now fixed. Fixes #13.
See documentation page for details.
Published by smarie over 5 years ago
When flat mode was used in a context where the signature contains a var-positional argument, the arguments were not correctly injected. Fixes #12.
See documentation page for details.
Published by smarie over 5 years ago
Removed the clunky Enum
for symbols. Back to a normal class, with a custom __repr__
.
See documentation page for details.
Published by smarie over 5 years ago
Now relying on makefun>=1.5.0
where arg names changed a bit.
See documentation page for details.
Published by smarie over 5 years ago
We now provide predefined disambiguators with_parenthesis
and no_parenthesis
. Fixes #8.
Fixed KeyError
when the signature contains **kwargs
. Fixes #9.
Fixed issue when the signature only contains **kwargs
. Fixes #10
Fixed static checker problem in PyCharm with the symbols (it came back when we moved to an Enum)
Improved exception re-raising in flat mode.
Minor: fixed init file.
See documentation page for details.
Published by smarie over 5 years ago
Default-value symbols DECORATED
, WRAPPED
, F_ARGS
and F_KWARGS
now have a nicer representation. Fixes #7.
When a symbol is used in a signature where it can not be safely injected as keyword argument, an InvalidSignatureError
is now raised. Fixes #6.
See documentation page for details.
Published by smarie over 5 years ago
makefun>=1.4.0
is now required, as it fixes a major issue: #5
See documentation page for details.
Published by smarie over 5 years ago
Default-value symbols DECORATED
, WRAPPED
, F_ARGS
and F_KWARGS
are now objects and not classes any more. This prevents IDE to flag the corresponding argument as being misused (not iterable...). Fixes #4.
See documentation page for details.
Published by smarie over 5 years ago
The double-flat mode now relies on @makefun.wraps
, from makefun>=1.3.0
. Fixes #3.
Updated documentation accordingly.
See documentation page for details.
Published by smarie over 5 years ago
API changes:
'*_'
can_first_arg_be_ambiguous
parameter removed completely, it was too complex to use.callable_or_cls_firstarg_disambiguator
renamed custom_disambiguator
to be more intuitivewraps
argument renamed flat_mode_decorated_name
. It was too similar to the wording used in functools, and specific to the flat mode only. Fixes #1.Improved behaviour
TypeError
. This is because when you use the flat mode we now generate a nested mode function with a true signature.__wrapped__
trick to exposeMajor refactoring for code readability:
utils_disambiguation
now provides a clear disambiguate_call
method, and util_modes
provides a clear make_decorator_spec
to handle all the per-mode specificity and always come back to a nested case before going further.main
module (var-positional) as it was completely covered by the general case.SignatureInfo
(for static information) and DecoratorUsageInfo
(for dynamic/usage information). The information is computed in a lazy way for each to avoid unnecessary signature binding for example.Major documentation update.
See documentation page for details.
Published by smarie over 5 years ago
Fully functional with 100+ tests.
See documentation page for details.