관리-도구
편집 파일: _immutable.cpython-311.pyc
� �܋f� � � � d dl Z dd�ZdS )� N� � ImmutableFc � � � t � t � � r(� � dd� � � � � � � fd�}d� d� � D � � � � }d� ||rd|z nd |� � |� � � }|rt |� � d dlm} t |d� � � } t ||� � n5# t $ r(}t t |� � dz |z � � |�d}~ww xY w|| S )a� Produces a class that either can be used standalone or as a base class for persistent classes. This is a thin wrapper around a named tuple. Constructing a type and using it to instantiate objects: >>> Point = immutable('x, y', name='Point') >>> p = Point(1, 2) >>> p2 = p.set(x=3) >>> p Point(x=1, y=2) >>> p2 Point(x=3, y=2) Inheriting from a constructed type. In this case no type name needs to be supplied: >>> class PositivePoint(immutable('x, y')): ... __slots__ = tuple() ... def __new__(cls, x, y): ... if x > 0 and y > 0: ... return super(PositivePoint, cls).__new__(cls, x, y) ... raise Exception('Coordinates must be positive!') ... >>> p = PositivePoint(1, 2) >>> p.set(x=3) PositivePoint(x=3, y=2) >>> p.set(y=-3) Traceback (most recent call last): Exception: Coordinates must be positive! The persistent class also supports the notion of frozen members. The value of a frozen member cannot be updated. For example it could be used to implement an ID that should remain the same over time. A frozen member is denoted by a trailing underscore. >>> Point = immutable('x, y, id_', name='Point') >>> p = Point(1, 2, id_=17) >>> p.set(x=3) Point(x=3, y=2, id_=17) >>> p.set(id_=18) Traceback (most recent call last): AttributeError: Cannot set frozen members id_ �,� c �v �� d� �D � � } | r)d� d� | � � �� � S dS )Nc �B � g | ]}|� d � � �d|z ��S )�_�'%s')�endswith)�.0�fs �L/opt/cloudlinux/venv/lib64/python3.11/site-packages/pyrsistent/_immutable.py� <listcomp>z9immutable.<locals>.frozen_member_test.<locals>.<listcomp>5 s+ � �I�I�I�����C���I�&�1�*�I�I�I� z� frozen_fields = fields_to_modify & set([{frozen_members}]) if frozen_fields: raise AttributeError('Cannot set frozen members %s' % ', '.join(frozen_fields)) �, )�frozen_membersr )�format�join)r �memberss �r �frozen_member_testz%immutable.<locals>.frozen_member_test4 sN �� �I�I�g�I�I�I��� A�� ��d�i�i��&?�&?��@�@� A� �rr r c 3 � K � | ] }d |z V � � dS )r N� )r �ms r � <genexpr>zimmutable.<locals>.<genexpr>? s&