PHP 8.0.30
Preview: classinit.py Size: 1.81 KB
//opt/alt/python37/lib/python3.7/site-packages/paste/util/classinit.py

# (c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org)
# Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php

class ClassInitMeta(type):

    def __new__(meta, class_name, bases, new_attrs):
        cls = type.__new__(meta, class_name, bases, new_attrs)
        if (new_attrs.has_key('__classinit__')
            and not isinstance(cls.__classinit__, staticmethod)):
            setattr(cls, '__classinit__',
                    staticmethod(cls.__classinit__.im_func))
        if hasattr(cls, '__classinit__'):
            cls.__classinit__(cls, new_attrs)
        return cls

def build_properties(cls, new_attrs):
    """
    Given a class and a new set of attributes (as passed in by
    __classinit__), create or modify properties based on functions
    with special names ending in __get, __set, and __del.
    """
    for name, value in new_attrs.items():
        if (name.endswith('__get') or name.endswith('__set')
            or name.endswith('__del')):
            base = name[:-5]
            if hasattr(cls, base):
                old_prop = getattr(cls, base)
                if not isinstance(old_prop, property):
                    raise ValueError(
                        "Attribute %s is a %s, not a property; function %s is named like a property"
                        % (base, type(old_prop), name))
                attrs = {'fget': old_prop.fget,
                         'fset': old_prop.fset,
                         'fdel': old_prop.fdel,
                         'doc': old_prop.__doc__}
            else:
                attrs = {}
            attrs['f' + name[-3:]] = value
            if name.endswith('__get') and value.__doc__:
                attrs['doc'] = value.__doc__
            new_prop = property(**attrs)
            setattr(cls, base, new_prop)

Directory Contents

Dirs: 3 × Files: 25

Name Size Perms Modified Actions
looper DIR
- drwxr-xr-x 2021-10-11 07:57:11
Edit Download
template DIR
- drwxr-xr-x 2021-10-11 07:57:11
Edit Download
- drwxr-xr-x 2021-10-11 07:57:11
Edit Download
1.81 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
1.34 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
863 B lrw-r--r-- 2011-12-21 17:12:02
Edit Download
2.36 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
10.91 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
97.09 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
1.40 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
3.75 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
786 B lrw-r--r-- 2011-12-21 17:12:02
Edit Download
3.04 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
18.68 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
9.05 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
1.20 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
3.88 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
6.44 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
11.14 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
83.85 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
2.42 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
5.50 KB lrw-r--r-- 2019-12-10 18:23:38
Edit Download
16.35 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
23.73 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
8.02 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
1.45 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
5.39 KB lrw-r--r-- 2011-12-21 17:12:02
Edit Download
86 B lrw-r--r-- 2011-12-21 17:12:02
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).