+
    n9ex                         ^ RI HtHtHtHt ^ RIHtHtHtH	t	H
t
Ht ^ RIHtHt  ! R R]4      t ! R R]]]R7      t ! R	 R
]P$                  4      tR# )    )CheckedType_restore_pickleInvariantExceptionstore_invariants)
set_fields
check_typeis_field_ignore_extra_complaintPFIELD_NO_INITIAL	serializecheck_global_invariants)PMappmapc                   2   a a ] tR t^t oV 3R ltRtVtV ;t# )_PRecordMetac                  < \        W2R R7       \        W2RR4       \        R VR ,          P                  4        4       4      VR&   \	        R VR ,          P                  4        4       4      VR&   R	VR&   \
        \        V `  WW#4      # )
_precord_fields)name_precord_invariants__invariant__c              3   R   "   T F  w  rVP                   '       g   K  Vx  K  	  R # 5iN)	mandatory).0r   fields   &  5/usr/lib/python3/dist-packages/pyrsistent/_precord.py	<genexpr>'_PRecordMeta.__new__.<locals>.<genexpr>   s     Z(F%//(Fs   '
'_precord_mandatory_fieldsc              3   l   "   T F*  w  rVP                   \        Jg   K  WP                   3x  K,  	  R # 5ir   )initialr
   )r   kr   s   &  r   r   r      s-     }4RV[VcVck|V|#!]]#4Rs   44_precord_initial_values	__slots__ )r   r   setitemsdictsuperr   __new__)mcsr   basesdct	__class__s   &&&&r   r)   _PRecordMeta.__new__	   s    3$56%:OL Z,=(>(D(D(FZZ 	'( }C8I4J4P4P4R}} 	%& K\3/5FF    r$   )__name__
__module____qualname____firstlineno__r)   __static_attributes____classdictcell____classcell__r-   __classdict__s   @@r   r   r      s     G Gr/   r   c                   r   a a ] tR t^t oRtV 3R ltV 3R ltR tR t]	R
R l4       t
R tRR ltR	tVtV ;t# )PRecordaa  
A PRecord is a PMap with a fixed set of specified fields. Records are declared as python classes inheriting
from PRecord. Because it is a PMap it has full support for all Mapping methods such as iteration and element
access using subscript notation.

More documentation and examples of PRecord usage is available at https://github.com/tobgu/pyrsistent
c                  < R V9   d*   RV9   d#   \         \        V `  WR ,          VR,          4      # VP                  RR4      pVP                  RR4      pTpV P                  '       d<   \        R V P                  P                  4        4       4      pVP                  V4       \        V \        \        V P                  4      R7      W#R7      pVP                  4        F	  w  rgWuV&   K  	  VP                  4       # )	_precord_size_precord_buckets_factory_fieldsN_ignore_extraFc              3   ^   "   T F#  w  rT\        V4      '       d   V! 4       MT3x  K%  	  R # 5ir   )callabler   r!   vs   &  r   r   "PRecord.__new__.<locals>.<genexpr>-   s+      "S.Qda $%Xa[[aca"@.Qs   +-)pre_size)r>   r?   )r(   r:   r)   popr"   r'   r&   update_PRecordEvolverr   lenr   
persistent)	clskwargsfactory_fieldsignore_extrainitial_valueser!   rC   r-   s	   &,      r   r)   PRecord.__new__!   s     f$);v)E#.s?4KVTfMghh$5t<zz/59&&&! "S.1.I.I.O.O.Q"S SN!!&)Cs33F3F/G!HZh  F"((*DAaD + ||~r/   c                z   < V'       d#   \         \        V `  V^ ,          V^,          4      # V P                  V4      # )z
Set a field in the record. This set function differs slightly from that in the PMap
class. First of all it accepts key-value pairs. Second it accepts multiple key-value
pairs to perform one, atomic, update of multiple fields.
)r(   r:   r%   rG   )selfargsrL   r-   s   &*,r   r%   PRecord.set7   s3     $+DGT!W=={{6""r/   c                .    \        V P                  V 4      # )z$
Returns an evolver of this object.
)rH   r-   rS   s   &r   evolverPRecord.evolverE   s     t~~t44r/   c                    R P                  V P                  P                  RP                  R V P	                  4        4       4      4      # )z{0}({1})z, c              3   \   "   T F"  w  rR P                  V\        V4      4      x  K$  	  R# 5i)z{0}={1}N)formatreprrB   s   &  r   r   #PRecord.__repr__.<locals>.<genexpr>M   s(     *aT`DA9+;+;AtAw+G+GT`s   *,)r\   r-   r0   joinr&   rW   s   &r   __repr__PRecord.__repr__K   s?      !8!8!%*aTXT^T^T`*a!ac 	cr/   c                    \        W4      '       d   V# V'       d+   V P                   Uu/ uF  qDV9   g   K  WAV,          bK  	  ppV ! RRVRV/VB # u upi )a  
Factory method. Will create a new PRecord of the current type and assign the values
specified in kwargs.

:param ignore_extra: A boolean which when set to True will ignore any keys which appear in kwargs that are not
                     in the set of fields on the PRecord.
r>   r?   r$   )
isinstancer   )rK   rL   r>   rN   r!   s   &&&& r   createPRecord.createO   s^     f""M,/,?,?O,?q;lal,?FOY?Y,YRXYY Ps
   AAc                <    \         V P                  \        V 4      33# r   )r   r-   r'   rW   s   &r   
__reduce__PRecord.__reduce__`   s    d ===r/   c                N   a a \        VV 3R lS P                  4        4       4      # )zk
Serialize the current PRecord using custom serializer functions for fields where
such have been supplied.
c              3   |   <"   T F1  w  rV\        SP                  V,          P                  SV4      3x  K3  	  R # 5ir   )r   r   
serializer)r   r!   rC   r\   rS   s   &  r   r   $PRecord.serialize.<locals>.<genexpr>i   s6     k^jVZVWQ	$"6"6q"9"D"DfaPQ^js   9<)r'   r&   )rS   r\   s   ffr   r   PRecord.serialized   s     
 k^b^h^h^jkkkr/   r$   NFr   )r0   r1   r2   r3   __doc__r)   r%   rX   r`   classmethodrd   rg   r   r4   r5   r6   r7   s   @@r   r:   r:      sF     ,#5c Z Z >l lr/   r:   )	metaclassc                   X   a a ] tR t^lt oRtRV 3R lltR tV 3R ltV 3R ltRt	Vt
V ;t# )rH   c                n   < \         \        V `  V4       Wn        . V n        . V n        W0n        W@n        R # r   )r(   rH   __init___destination_cls_invariant_error_codes_missing_fieldsr>   r?   )rS   rK   original_pmapr>   r?   r-   s   &&&&&r   rt   _PRecordEvolver.__init__o   s4    ot-m< #&(#!.*r/   c                (    V P                  W4       R # r   )r%   )rS   keyoriginal_values   &&&r   __setitem___PRecordEvolver.__setitem__w   s    %r/   c                  < V P                   P                  P                  V4      pV'       d   V P                  e   W0P                  9   dQ    \	        \
        W0P                  4      '       d   VP                  W P                  R7      pMVP                  V4      pMTp\        V P                   W1V4       VP                  V4      w  rgV'       g   V P                  P                  V4       \         \"        V `K  W4      # \'        RP)                  WP                   P*                  4      4      h  \         dS   pT ;P                  TP                  ,          un	        T ;P                  TP                  ,          un        T u R p?# R p?ii ; i)N)rN   z/'{0}' is not among the specified fields for {1})ru   r   getr>   r	   r:   r?   factoryr   rv   invariant_errorsrw   missing_fieldsr   	invariantappendr(   rH   r%   AttributeErrorr\   r0   )	rS   r{   r|   r   valuerP   is_ok
error_coder-   s	   &&&     r   r%   _PRecordEvolver.setz   s1   %%5599#>##+u8L8L/L 6wGYGYZZ %nK]K] ^ %n = 't,,e%@ % 6E++22:>$3C?? !R!Y!YZ]_t_t_}_}!~ *  //13E3EE/((A,<,<<(K s%   <D- D- -F
8AF?F
F
c           
       <a V P                   oV P                  4       p\        \        V `  4       pV'       g   \        VS4      '       g    S! VP                  VP                  R 7      pMTpSP                  '       d   T ;P                  \        ;QJ d?    . V3R lSP                  \        VP                  4       4      ,
           4       F  NK  	  5M8! V3R lSP                  \        VP                  4       4      ,
           4       4      ,          un	        V P                  '       g   V P                  '       d4   \        \        V P                  4      \        V P                  4      R4      h\        VSP                   4       V# ))r=   r<   c              3   \   <"   T F!  pR P                  SP                  V4      x  K#  	  R# 5i)z{0}.{1}N)r\   r0   )r   frK   s   & r   r   -_PRecordEvolver.persistent.<locals>.<genexpr>   s/      *c.` QR)*:*:3<<*K*K.`s   ),zField invariant failed)ru   is_dirtyr(   rH   rJ   rc   _buckets_sizer   rw   tupler%   keysrv   r   r   r   )rS   r   pmresultrK   r-   s   &   @r   rJ   _PRecordEvolver.persistent   s(   ##==??D46:b#.."++RXXNFF(((  EE *c.1.K.KcRXR]R]R_N`.`*cEE *c.1.K.KcRXR]R]R_N`.`*c %c c  &&&$*>*>*>$U4+F+F%GtOcOcId%=? ? 	 (?(?@r/   )ru   r>   r?   rv   rw   )ru   rv   rw   r>   r?   rn   )r0   r1   r2   r3   r#   rt   r}   r%   rJ   r4   r5   r6   r7   s   @@r   rH   rH   l   s$     uI+&@4 r/   rH   N)pyrsistent._checked_typesr   r   r   r   pyrsistent._field_commonr   r   r	   r
   r   r   pyrsistent._pmapr   r   typer   r:   _EvolverrH   r$   r/   r   <module>r      sM    h h  (G4 G"PldK< Plf;dmm ;r/   