python-decopatch

python decorators made easy.

BSD-3-CLAUSE License

Downloads
851.2K
Stars
24
Committers
4

Bot releases are hidden (Show)

python-decopatch - 1.4.8 - better packaging

Published by smarie over 4 years ago

  • packaging improvements: set the "universal wheel" flag to 1, and cleaned up the 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.

python-decopatch - 1.4.7 - pyproject.toml

Published by smarie almost 5 years ago

raddessi added a pyproject.toml - thanks! Fixed pytest-cases#65.

See documentation page for details.

python-decopatch - 1.4.6 - Bug fix

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.

python-decopatch - 1.4.5 - Performance improvement

Published by smarie over 5 years ago

  • Huge performance improvement for the enable_stack_introspection=True mode. It also now supports classes correctly.

See documentation page for details.

python-decopatch - 1.4.4 - Reverted varpositional bugfixes now that they are handled in makefun

Published by smarie over 5 years ago

See documentation page for details.

python-decopatch - 1.4.3 - Bugfix in nested mode under python 2

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.

python-decopatch - 1.4.2 - Bugfix in flat mode

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.

python-decopatch - 1.4.1 - Minor default symbols improvement

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.

python-decopatch - 1.4.0 - Minor dependency version update

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.

python-decopatch - 1.3.0 - Predefined disambiguators and init file fix

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.

python-decopatch - 1.2.1 - Flat and double flat symbols: additional protection and bugfix

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.

python-decopatch - 1.2.0 - Dependency update for important fix

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.

python-decopatch - 1.1.1 - Symbols are not classes anymore

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.

python-decopatch - 1.1.0 - Dependency update

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.

python-decopatch - 1.0.0 - Refactoring + New "double-flat" mode + API changes + documentation

Published by smarie over 5 years ago

API changes:

  • 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_ambiguous parameter removed completely, it was too complex to use.
  • callable_or_cls_firstarg_disambiguator renamed custom_disambiguator to be more intuitive
  • wraps 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

  • 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_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.
  • removed a case in the main module (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.

See documentation page for details.

python-decopatch - 0.5.0 - First version

Published by smarie over 5 years ago

Fully functional with 100+ tests.

See documentation page for details.

Package Rankings
Top 17.02% on Alpine-v3.16
Top 13.53% on Alpine-v3.18
Top 38.26% on Conda-forge.org
Top 5.75% on Pypi.org
Top 17.9% on Alpine-edge
Top 13.32% on Alpine-v3.15
Top 18.91% on Alpine-v3.17
Badges
Extracted from project README
Python versions Build Status Tests Status Coverage Status codecov Flake8 Status Documentation PyPI Downloads Downloads per week GitHub stars
Related Projects