1.4.10 - Type hints step 1¶
@function_decoratornow has proper type hints. This is a first step towards fixing #22. PR #23 by last-partizan.
1.4.9 - New layout and CI + Compatibility fixes.¶
Enabling the "stack introspection" beta feature with
enable_stack_introspection=Truenow raises an explicit
NotImplementedErroron python 3.8+. Fixed #26.
1.4.8 - better packaging¶
- packaging improvements: set the "universal wheel" flag to 1, and cleaned up the
setup.py. In particular removed dependency to
sixfor setup and added
py.typedfile, as well as set the
zip_safeflag to False. Removed tests folder from package. Fixes #19
1.4.7 - pyproject.toml¶
1.4.6 - Bug fix¶
Fixed decorated object injection issue when var-positional arguments are located before it in the signature. Fixed #14.
PyPI supports markdown via
long_description_content_type: pypandoc is not required anymore. Thanks minrk!
1.4.5 - Performance improvement¶
- Huge performance improvement for the
enable_stack_introspection=Truemode. It also now supports classes correctly.
1.4.4 - Reverted varpositional bugfixes now that they are handled in makefun¶
1.4.3 - Bugfix in nested mode under python 2¶
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.
1.4.2 - Bugfix in flat mode under python 2¶
In python 2, when flat mode was used in a context where the signature contains a var-positional argument, the arguments were not correctly injected. Fixes #12.
1.4.1 - Minor default symbols improvement¶
Removed the clunky
Enum for symbols. Back to a normal class, with a custom
1.4.0 - Minor dependency version update¶
Now relying on
makefun>=1.5.0 where arg names changed a bit.
1.3.0 - Predefined disambiguators and init file fix¶
We now provide predefined disambiguators
no_parenthesis. Fixes #8.
KeyErrorwhen 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.
1.2.1 - Flat and double flat symbols: additional protection and bugfix¶
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.
1.2.0 - Dependency update for important fix¶
makefun>=1.4.0 is now required, as it fixes a major issue: #5
1.1.1 - Symbols are not classes anymore¶
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.
1.1.0 - Dependency update¶
The double-flat mode now relies on
makefun>=1.3.0. Fixes #3.
Updated documentation accordingly.
1.0.0 - Refactoring + New "double-flat" mode + API changes + documentation¶
- Added support for a new "double-flat" mode so that users can create decorators creating signature-preserving function wrappers with zero level of nesting. Fixes #2.
- Generated var-positional name for kw-only methods is now
can_first_arg_be_ambiguousparameter removed completely, it was too complex to use.
custom_disambiguatorto be more intuitive
flat_mode_decorated_name. It was too similar to the wording used in functools, and specific to the flat mode only. Fixes #1.
- Now the flat mode behaves exactly like nested mode concerning signature-related
TypeError. This is because when you use the flat mode we now generate a nested mode function with a true signature.
- Now the exposed decorator uses the
__wrapped__trick to expose
Major refactoring for code readability:
- Submodules are now consistent and readable. In particular
utils_disambiguationnow provides a clear
util_modesprovides a clear
make_decorator_specto handle all the per-mode specificity and always come back to a nested case before going further.
- removed a case in the
mainmodule (var-positional) as it was completely covered by the general case.
- Information is now passed as objects through the various functions, using two main classes
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.
0.5.0 - First version¶
Fully functional with 100+ tests.