./devel/py-wrapt, Python module for decorators, wrappers and monkey patching

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.17.2, Package name: py312-wrapt-1.17.2, Maintainer: pkgsrc-users

A Python module for decorators, wrappers and monkey patching.

The aim of the wrapt module is to provide a transparent object proxy for
Python, which can be used as the basis for the construction of function
wrappers and decorator functions.

The wrapt module focuses very much on correctness. It therefore goes way
beyond existing mechanisms such as functools.wraps() to ensure that
decorators preserve introspectability, signatures, type checking abilities
etc. The decorators that can be constructed using this module will work in
far more scenarios than typical decorators and provide more predictable and
consistent behaviour.

To ensure that the overhead is as minimal as possible, a C extension module
is used for performance critical components. An automatic fallback to a pure
Python implementation is also provided where a target system does not have a
compiler to allow the C extension to be compiled.


Required to run:
[lang/python37]

Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 54.229 KB

Version history: (Expand)


CVS history: (Expand)


   2025-02-02 11:38:04 by Havard Eidnes | Files touched by this commit (28)
Log message:
lang/python and a number of python packages: re-do atomic64.mk issue.

Evidently, python 3.13 brought in the need to support 64-bit atomics.
This means that python extension packages built with C needs to
use mk/atomic64.mk to make -latomic available on the required 32-bit
ports.  Sadly, there is no reliable way to detect in the .mk files
whether the package is using C (or C++), so this change adds an
unconditional include of mk/atomic64.mk when the python version is
equal to or larger than 3.13 for packages using egg.mk or wheel.mk.

This undoes the individual package Makefile inclusions of mk/atomic64.mk
that I've added over the last few days.
   2025-01-18 20:45:20 by Havard Eidnes | Files touched by this commit (1)
Log message:
devel/py-wrapt: use atomic64.mk to fix build with python3.13 on macppc.
   2025-01-14 12:32:05 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-wrapt: updated to 1.17.2

Version 1.17.2

New Features

Added universal binary wheels for macOS. That is, contains both x86_64 and arm64 \ 
architectures in the same wheel.
   2025-01-11 21:27:56 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-wrapt: updated to 1.17.1

1.17.1

Bugs Fixed

Due to GitHub actions changes, binary wheels were missing for macOS Intel.
Not implemented error for __reduce__() on ObjectProxy was incorrectly displaying \ 
the error as being on __reduce_ex__().
   2024-11-23 12:06:30 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-wrapt: updated to 1.17.0

Version 1.17.0

Note that version 1.17.0 drops support for Python 3.6 and 3.7. Python version \ 
3.8 or later is required.

New Features

Add __format__() method to ObjectProxy class to allow formatting of wrapped object.
Added C extension internal flag to indicate that wrapt should be safe for Python \ 
3.13 free threading mode. Releases will include free threading variants of \ 
Python wheels. Note that as free threading is new, one should be cautious about \ 
using it in production until it has been more widely tested.

Bugs Fixed

When a normal function or builtin function which had wrapt.decorator or a \ 
function wrapper applied, was assigned as a class attribute, and the function \ 
attribute called via the class or an instance of the class, an additional \ 
argument was being passed, inserted as the first argument, which was the class \ 
or instance. This was not the correct behaviour and the class or instance should \ 
not have been passed as the first argument.
When an instance of a callable class object was wrapped which didn't not have a \ 
__get__() method for binding, and it was called in context whhere binding would \ 
be attempted, it would fail with error that __get__() did not exist when instead \ 
it should have been called directly, ignoring that binding was not possible.
The __round__ hook for the object proxy didn't accept ndigits argument.
   2024-11-11 08:29:31 by Thomas Klausner | Files touched by this commit (862)
Log message:
py-*: remove unused tool dependency

py-setuptools includes the py-wheel functionality nowadays
   2024-05-06 00:15:24 by Thomas Klausner | Files touched by this commit (2)
Log message:
py-wrapt: convert to wheel.mk

Bump PKGREVISION.
   2023-11-09 17:35:24 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-wrapt: updated to 1.16.0

wrapt-1.16.0
Unknown changes