Metadata-Version: 1.1
Name: Dickens
Version: 2.1.1
Summary: Additional decorators implementing the descriptor interface
Home-page: https://github.com/dssg/dickens
Author: Center for Data Science and Public Policy
Author-email: datascifellows@gmail.com
License: UNKNOWN
Description: =======
        Dickens
        =======
        
        Additional Python decorators implementing the descriptor interface.
        
        Use cases
        =========
        
        Like the built-in decorator, ``property``, these classes are initialized by and wrap a function, generally within the context of a class, in order to modify its behavior.
        
        cached property
        ---------------
        
        This decorator functions much like a read-only ``property``, with the difference that, upon access, it records its result in the instance's object data dictionary, which reference takes precedence in look-ups, thereby replacing itself for that object::
        
            from descriptors import cachedproperty
        
            @cachedproperty
            def circumference(self):
                return 2 * math.pi * self.radius
        
        class property
        --------------
        
        A read-only ``property`` for class methods::
        
            from descriptors import classproperty
        
            @classproperty
            def badpi(cls):
                return 22 / 7
        
        cached class property
        ---------------------
        
        A class ``property``, which caches its result in the data dictionary of the class from which it was invoked, (under another name, so as not to interfere with inheritance of the property)::
        
            from descriptors import cachedclassproperty
        
            @cachedclassproperty
            def badpi(cls):
                return 22 / 7
        
        class-only method
        -----------------
        
        A class method that **cannot** be accessed as an instance method::
        
            from descriptors import classonlymethod
        
            @classonlymethod
            def circumference(cls, radius):
                return 2 * cls.pi * radius
        
        The class-only method *may* be overshadowed by instance data set under the same name.
        
        Otherwise, instance access raises ``AttributeError`` (and such that it is forwarded to and *may* be handled by the instance's ``__getattr__``).
        
        Installation
        ============
        
        Dickens is a Python distribution, which may be installed via ``easy_install`` or ``pip``, *e.g.*::
        
            pip install Dickens
        
        ...or, from source::
        
            python setup.py install
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
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 :: 3.10
