Metadata-Version: 2.1
Name: ExtensionClass
Version: 4.5.0
Summary: Metaclass for subclassable extension types
Home-page: https://github.com/zopefoundation/ExtensionClass
Author: Zope Foundation and Contributors
Author-email: zope-dev@zope.org
License: ZPL 2.1
Description: ====================================================
         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), 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``).
        
        
        ===========
         Changelog
        ===========
        
        4.5.0 (2020-10-07)
        ==================
        
        - Drop support for Python 3.4.
        
        - Add support for Python 3.8 and 3.9.
        
        - Fix accessing ``__parent__`` when it is defined as a class attribute
          that is ``None`` (e.g., in subclasses of
          ``zope.conatiner.contained.Contained``). See `issue 24
          <https://github.com/zopefoundation/ExtensionClass/issues/24>`_.
        
        4.4.0 (2018-10-05)
        ==================
        
        - Fail if C extensions couldn't be compiled on compatible platforms.
        
        - Add Appveyor configuration to automate building Windows eggs
        
        - Add support for Python 3.7.
        
        - Fix getting attributes that are data descriptors in the Python
          implementation.
        
        - Reach and automatically maintain 100% test coverage.
        
        4.3.0 (2017-02-22)
        ==================
        
        - Drop support for Python 3.3.
        
        - Remove unused C macro from ``ExtensionClass.h``.
        
        - Fix C compilation under Windows.
        
        4.2.1 (2017-02-02)
        ==================
        
        - Fix problems with computed attribute and property wrapping.
        
        4.2.0 (2017-01-18)
        ==================
        
        - Port the C extension to Python 3.
        
        - Add support for Python 3.5 and 3.6.
        
        - Drop support for Python 2.6, 3.2.
        
        4.1.2 (2015-04-03)
        ==================
        
        - Fix calling of ``__class_init__`` hook by Python implementation.
        
        4.1.1 (2015-03-20)
        ==================
        
        - Avoid wrapping ``__parent__`` in pure-Python version.  Matches
          change made to C version in afb8488.  See issue #3.
        
        4.1 (2014-12-18)
        ================
        
        - Housekeeping changes only.
        
        4.1b1 (2014-11-12)
        ==================
        
        - Added compatibility with Python 3.4.
        
        4.1a1 (2013-05-04)
        ==================
        
        - Added compatibility with Python 3.2 and 3.3 using the Python reference
          implementation.
        
        - Add Python reference implementation. Used by default on PyPy.
        
        4.0 (2013-02-24)
        ================
        
        - Added trove classifiers to project metadata.
        
        4.0a1 (2011-12-13)
        ==================
        
        - Don't create wrappers when retrieving parent pointers.
        
        2.13.2 (2010-06-16)
        ===================
        
        - LP #587760: Handle tp_basicsize correctly.
        
        2.13.1 (2010-04-03)
        ===================
        
        - Removed undeclared testing dependency on zope.testing.
        
        - Removed cruft in ``pickle/pickle.c`` related to removed ``__getnewargs__``.
        
        2.13.0 (2010-02-22)
        ===================
        
        - Avoid defining ``__getnewargs__`` as not to defeat the ZODB persistent
          reference optimization. Refs https://bugs.launchpad.net/zope2/+bug/143657.
          In order to take advantage of this optimization, you need to re-save your
          objects.
        
        2.12.0 (2010-02-14)
        ===================
        
        - Removed old build artifacts and some metadata cleanup.
        
        - Added support for method cache in ExtensionClass. Patch contributed by
          Yoshinori K. Okuji. See https://bugs.launchpad.net/zope2/+bug/486182.
        
        2.11.3 (2009-08-02)
        ===================
        
        - Further 64-bit fixes (Python 2.4 compatibility).
        
        2.11.2 (2009-08-02)
        ===================
        
        - Fixed 64-bit compatibility issues for Python 2.5.x / 2.6.x.  See
          http://www.python.org/dev/peps/pep-0353/ for details.
        
        2.11.1 (2009-02-19)
        ===================
        
        - Initial egg release.
        
Platform: UNKNOWN
Classifier: Development Status :: 6 - Mature
Classifier: Environment :: Web Environment
Classifier: Framework :: Zope2
Classifier: License :: OSI Approved :: Zope Public License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Provides-Extra: test
