%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python3/dist-packages/keyring/__pycache__/
Upload File :
Create Path :
Current File : //lib/python3/dist-packages/keyring/__pycache__/_properties_compat.cpython-312.pyc

�

�e.��,�Gd�d�ZGd�d�Zy)c��eZdZdZd�Zdd�Zy)�NonDataPropertya�Much like the property builtin, but only implements __get__,
    making it a non-data property, and can be subsequently reset.

    See http://users.rcn.com/python/download/Descriptor.htm for more
    information.

    >>> class X(object):
    ...   @NonDataProperty
    ...   def foo(self):
    ...     return 3
    >>> x = X()
    >>> x.foo
    3
    >>> x.foo = 4
    >>> x.foo
    4
    c�H�|�Jd��t|�sJd��||_y)Nzfget cannot be nonezfget must be callable)�callable�fget)�selfrs  �</usr/lib/python3/dist-packages/keyring/_properties_compat.py�__init__zNonDataProperty.__init__s-����6�!6�6����~�6�6�6�~���	�Nc�,�|�|S|j|�S�N)r)r�obj�objtypes   r�__get__zNonDataProperty.__get__s���;��K��y�y��~�r
r)�__name__�
__module__�__qualname__�__doc__r	r�r
rrrs���$�
r
rc�R�eZdZdZGd�de�Zd
d�Zd
d�Zd�Zd�Z	e
d	��Zy)�
classpropertya�
    Like @property but applies at the class level.


    >>> class X(metaclass=classproperty.Meta):
    ...   val = None
    ...   @classproperty
    ...   def foo(cls):
    ...     return cls.val
    ...   @foo.setter
    ...   def foo(cls, val):
    ...     cls.val = val
    >>> X.foo
    >>> X.foo = 3
    >>> X.foo
    3
    >>> x = X()
    >>> x.foo
    3
    >>> X.foo = 4
    >>> x.foo
    4

    Setting the property on an instance affects the class.

    >>> x.foo = 5
    >>> x.foo
    5
    >>> X.foo
    5
    >>> vars(x)
    {}
    >>> X().foo
    5

    Attempting to set an attribute where no setter was defined
    results in an AttributeError:

    >>> class GetOnly(metaclass=classproperty.Meta):
    ...   @classproperty
    ...   def foo(cls):
    ...     return 'bar'
    >>> GetOnly.foo = 3
    Traceback (most recent call last):
    ...
    AttributeError: can't set attribute

    It is also possible to wrap a classmethod or staticmethod in
    a classproperty.

    >>> class Static(metaclass=classproperty.Meta):
    ...   @classproperty
    ...   @classmethod
    ...   def foo(cls):
    ...     return 'foo'
    ...   @classproperty
    ...   @staticmethod
    ...   def bar():
    ...     return 'bar'
    >>> Static.foo
    'foo'
    >>> Static.bar
    'bar'

    *Legacy*

    For compatibility, if the metaclass isn't specified, the
    legacy behavior will be invoked.

    >>> class X:
    ...   val = None
    ...   @classproperty
    ...   def foo(cls):
    ...     return cls.val
    ...   @foo.setter
    ...   def foo(cls, val):
    ...     cls.val = val
    >>> X.foo
    >>> X.foo = 3
    >>> X.foo
    3
    >>> x = X()
    >>> x.foo
    3
    >>> X.foo = 4
    >>> x.foo
    4

    Note, because the metaclass was not specified, setting
    a value on an instance does not have the intended effect.

    >>> x.foo = 5
    >>> x.foo
    5
    >>> X.foo  # should be 5
    4
    >>> vars(x)  # should be empty
    {'foo': 5}
    >>> X().foo  # should be 5
    4
    c���eZdZ�fd�Z�xZS)�classproperty.Metac���|jj|d�}t|�tur|j	||�St
�|�||�Sr)�__dict__�get�typer�__set__�super�__setattr__)r�key�valuer
�	__class__s    �rrzclassproperty.Meta.__setattr__�sH����-�-�#�#�C��.�C��C�y�M�)��{�{�4��/�/��7�&�s�E�2�2r
)rrrr�
__classcell__)r"s@r�Metar�s
���	3�	3r
r$Nc�l�|j|�|_||_|xr|j|�yyr)�_ensure_methodr�fset�setter)rrr's   rr	zclassproperty.__init__�s/���'�'��-��	���	��"����T�"�"r
c�D�|jjd|��Sr)rr)r�instance�owners   rrzclassproperty.__get__�s��-�t�y�y� � ��u�-�/�/r
c��|jstd��t|�tjurt|�}|jjd|�|�S)Nzcan't set attribute)r'�AttributeErrorrrr$r)rr+r!s   rrzclassproperty.__set__�sN���y�y� �!6�7�7���;�m�0�0�0���K�E�-�t�y�y� � ��u�-�e�4�4r
c�2�|j|�|_|Sr)r&r')rr's  rr(zclassproperty.setter�s���'�'��-��	��r
c�N�t|ttf�}|rt|�S|S)z=
        Ensure fn is a classmethod or staticmethod.
        )�
isinstance�classmethod�staticmethod)�cls�fn�needs_methods   rr&zclassproperty._ensure_method�s)��
&�b�;��*E�F�F��".�{�2��6�B�6r
r)rrrrrr$r	rrr(r1r&rr
rrr"s=��d�L3�t�3�#�
0�5���7��7r
rN)rrrr
r�<module>r6s����<G7�G7r

Zerion Mini Shell 1.0