[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.189.143.150: ~ $
# -*- coding: utf-8 -*-

__author__ = 'Daniel Greenfeld'
__email__ = 'pydanny@gmail.com'
__version__ = '1.3.0'
__license__ = 'BSD'

from time import time
import threading


class cached_property(object):
    """
    A property that is only computed once per instance and then replaces itself
    with an ordinary attribute. Deleting the attribute resets the property.
    Source: https://github.com/bottlepy/bottle/commit/fa7733e075da0d790d809aa3d2f53071897e6f76
    """  # noqa

    def __init__(self, func):
        self.__doc__ = getattr(func, '__doc__')
        self.func = func

    def __get__(self, obj, cls):
        if obj is None:
            return self
        value = obj.__dict__[self.func.__name__] = self.func(obj)
        return value


class threaded_cached_property(object):
    """
    A cached_property version for use in environments where multiple threads
    might concurrently try to access the property.
    """

    def __init__(self, func):
        self.__doc__ = getattr(func, '__doc__')
        self.func = func
        self.lock = threading.RLock()

    def __get__(self, obj, cls):
        if obj is None:
            return self

        obj_dict = obj.__dict__
        name = self.func.__name__
        with self.lock:
            try:
                # check if the value was computed before the lock was acquired
                return obj_dict[name]
            except KeyError:
                # if not, do the calculation and release the lock
                return obj_dict.setdefault(name, self.func(obj))


class cached_property_with_ttl(object):
    """
    A property that is only computed once per instance and then replaces itself
    with an ordinary attribute. Setting the ttl to a number expresses how long
    the property will last before being timed out.
    """

    def __init__(self, ttl=None):
        if callable(ttl):
            func = ttl
            ttl = None
        else:
            func = None
        self.ttl = ttl
        self._prepare_func(func)

    def __call__(self, func):
        self._prepare_func(func)
        return self

    def __get__(self, obj, cls):
        if obj is None:
            return self

        now = time()
        obj_dict = obj.__dict__
        name = self.__name__
        try:
            value, last_updated = obj_dict[name]
        except KeyError:
            pass
        else:
            ttl_expired = self.ttl and self.ttl < now - last_updated
            if not ttl_expired:
                return value

        value = self.func(obj)
        obj_dict[name] = (value, now)
        return value

    def __delete__(self, obj):
        obj.__dict__.pop(self.__name__, None)

    def __set__(self, obj, value):
        obj.__dict__[self.__name__] = (value, time())

    def _prepare_func(self, func):
        self.func = func
        if func:
            self.__doc__ = func.__doc__
            self.__name__ = func.__name__
            self.__module__ = func.__module__

# Aliases to make cached_property_with_ttl easier to use
cached_property_ttl = cached_property_with_ttl
timed_cached_property = cached_property_with_ttl


class threaded_cached_property_with_ttl(cached_property_with_ttl):
    """
    A cached_property version for use in environments where multiple threads
    might concurrently try to access the property.
    """

    def __init__(self, ttl=None):
        super(threaded_cached_property_with_ttl, self).__init__(ttl)
        self.lock = threading.RLock()

    def __get__(self, obj, cls):
        with self.lock:
            return super(threaded_cached_property_with_ttl, self).__get__(obj,
                                                                          cls)

# Alias to make threaded_cached_property_with_ttl easier to use
threaded_cached_property_ttl = threaded_cached_property_with_ttl
timed_threaded_cached_property = threaded_cached_property_with_ttl

Filemanager

Name Type Size Permission Actions
Cerberus-1.3.4-py3.8.egg-info Folder 0755
PyJWT-2.1.0-py3.8.egg-info Folder 0755
__pycache__ Folder 0755
_distutils_hack Folder 0755
aiodns Folder 0755
aiodns-3.0.0-py3.8.egg-info Folder 0755
async_lru-1.0.2-py3.8.egg-info Folder 0755
async_timeout Folder 0755
async_timeout-1.3.0-py3.8.egg-info Folder 0755
attr Folder 0755
attrs-17.4.0-py3.8.egg-info Folder 0755
blinker Folder 0755
blinker-1.4-py3.8.egg-info Folder 0755
cached_property-1.3.0-py3.8.egg-info Folder 0755
cerberus Folder 0755
certifi Folder 0755
certifi-2018.4.16-py3.8.egg-info Folder 0755
chardet Folder 0755
chardet-3.0.4-py3.8.egg-info Folder 0755
click Folder 0755
click-6.6-py3.8.egg-info Folder 0755
daemon Folder 0755
distro-1.6.0-py3.8.egg-info Folder 0755
funcsigs Folder 0755
funcsigs-1.0.2-py3.8.egg-info Folder 0755
humanize Folder 0755
humanize-0.0.0-py3.8.egg-info Folder 0755
idna Folder 0755
idna-2.5-py3.8.egg-info Folder 0755
jwt Folder 0755
lockfile Folder 0755
lockfile-0.12.2-py3.8.egg-info Folder 0755
mock Folder 0755
mock-3.0.5-py3.8.egg-info Folder 0755
pbr Folder 0755
pbr-1.8.1-py3.8.egg-info Folder 0755
peewee_migrate Folder 0755
peewee_migrate-0.6.4-py3.8.egg-info Folder 0755
pkg_resources Folder 0755
ply Folder 0755
ply-3.8-py3.8.egg-info Folder 0755
pycparser Folder 0755
pycparser-2.14-py3.8.egg-info Folder 0755
python_daemon-2.3.0-py3.8.egg-info Folder 0755
python_pam-1.8.4-py3.8.egg-info Folder 0755
sentry_sdk Folder 0755
sentry_sdk-0.7.10-py3.8.egg-info Folder 0755
setuptools Folder 0755
setuptools-57.4.0.dist-info Folder 0755
six-1.12.0-py3.8.egg-info Folder 0755
typing_extensions-3.7.4.3-py3.8.egg-info Folder 0755
urllib3 Folder 0755
urllib3-1.26.6-py3.8.egg-info Folder 0755
PySocks-1.5.7-py3.8.egg-info File 322 B 0644
async_lru.py File 5.98 KB 0644
cached_property.py File 3.81 KB 0644
distro.py File 47.28 KB 0644
distutils-precedence.pth File 152 B 0644
pam.py File 7.38 KB 0644
six.py File 31.69 KB 0644
socks.py File 29.25 KB 0644
sockshandler.py File 2.84 KB 0644
typing_extensions.py File 81.76 KB 0644