Metaclass for subclassable extension types
Python C C++
Latest commit cc88217 Jan 18, 2017 @hannosch hannosch Try even harder to avoid cross-pollution of tox env.
pip really tries hard to build wheels and re-uses them in pure/non-pure
environments resulting in unpredictable environments.

README.rst

ExtensionClass and ExtensionClass-related packages

ExtensionClass

This package provides a metaclass that allows classes implemented in extension modules to be subclassed in Python. Unless you need ExtensionClasses for legacy applications (e.g. Zope 2), you probably want to use Python's new-style classes (available since Python 2.2).

ComputedAttribute

This package provides a way to attach attributes to an ExtensionClass or instance that are computed by calling a callable. This works very much like property known from new-style classes, except that a ComputedAttribute can also be attached to an instance and that it honours ExtensionClass semantics (which is useful for retaining Acquisition wrappers, for example).

MethodObject

This package lets you attach additional "methods" to ExtensionClasses. These "methods" are actually implemented by subclassing the MethodObject.Method class and implementing the __call__ method there. Instances of those classes will be bound to the instances they're attached to and will receive that instance object as a first parameter (after self).