+
    Ĝi                        R t ^ RIt^ RIt^ RIHt ^ RIHt ^RIHt  ! R R4      t	 ! R R]	4      t
R	 t ! R
 R]
4      t ! R R]4      t ! R R]4      t ! R R]]4      t ! R R]	4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]
4      t ! R R]]4      t ! R  R!]
4      t ! R" R#]
4      t ! R$ R%]	4      t ! R& R']
4      t ! R( R)]	4      t ! R* R+]	4      t ! R, R-]
4      tR# ).z~
Based on Python Cookbook 3rd Edition, 8.13
http://chimera.labs.oreilly.com/books/1230000000393/ch08.html#_discussiuncion_130
N)DEBUG)from_ISO8601)
namespacedc                   0   a  ] tR t^t o RR ltR tRtV tR# )
DescriptorNc                \    Wn         VP                  4        F  w  r4\        WV4       K  	  R # N)nameitemssetattr)selfr	   kwkvs   &&,  b/Users/mibo/.openclaw/workspace/.venv-ak/lib/python3.14/site-packages/openpyxl/descriptors/base.py__init__Descriptor.__init__   s#    	HHJDADQ     c                6    W!P                   V P                  &   R # r   )__dict__r	   r   instancevalues   &&&r   __set__Descriptor.__set__   s    ',$))$r   )r	   r   )__name__
__module____qualname____firstlineno__r   r   __static_attributes____classdictcell____classdict__s   @r   r   r      s      
- -r   r   c                   `   a a ] tR t^t oRt]! R4      tRtRtV 3R lt	V 3R lt
R tRtVtV ;t# )Typedz Values must of a particular typeNFc                P   < \         SV `  ! V/ VB  R V P                   2V n        R# )zValues must be of type N)superr   expected_type__doc__)r   argsr   	__class__s   &*,r   r   Typed.__init__#   s*    $%"%01C1C0DEr   c                  < \        W P                  4      '       g   V P                  '       d   V P                  '       d   Ve   VP                   RV P                   RV P                   R\        V4       2p\        '       d8   VP                   RV P                   RV P                   RV R\        V4       2	p\        V4      h\        SV `%  W4       R # )N.z should be z but value is z but z is )

isinstancer'   
allow_noner*   r	   typer   	TypeErrorr&   r   )r   r   r   msgr*   s   &&& r   r   Typed.__set__'   s    %!3!344OOOOOO(9!++,Adii[DDVDVCWWefjkpfqers5%//0$))KHZHZG[[`af`ggklpqvlwkxyCn$(r   c                    V P                   # r   r(   r   s   &r   __repr__Typed.__repr__1   s    r   r5   )r   r   r   r   r(   r0   r'   r/   nestedr   r   r7   r   r    __classcell__r*   r"   s   @@r   r$   r$      s0     *JMJFF) r   r$   c                ~    \        W4      '       g    V ! V4      pV# V#    \        R\        T 4      ,           4      h; i)z9
Check value is of or can be converted to expected type.
z	expected )r.   r1   str)r'   r   s   &&r   _convertr>   5   sE     e++	>!%(E L5L	>K#m*<<==s    <c                   6   a a ] tR t^At oRtV 3R ltRtVtV ;t# )Convertiblez/Values must be convertible to a particular typec                   < V P                   '       d   Vf   V P                   '       g   \        V P                  V4      p\        SV `  W4       R # r   )r/   r>   r'   r&   r   r   r   r   r*   s   &&&r   r   Convertible.__set__D   s8    ___!2???T//7E(r    )	r   r   r   r   r(   r   r   r    r:   r;   s   @@r   r@   r@   A   s     9) )r   r@   c                   J   a a ] tR t^Kt oRt]tRtV 3R ltV 3R lt	Rt
VtV ;t# )Maxz&Values must be less than a `max` valueFc                p   < R V9  d   \        V R 4      '       g   \        R4      h\        SV `  ! R/ VB  R# )maxzmissing max valueNrD   hasattrr1   r&   r   r   r   r*   s   &,r   r   Max.__init__Q   2    ?74#7#7/002r   c                
  < V P                   '       d   Vf   V P                   '       gK   \        V P                  V4      pW P                  8  d%   \	        RP                  V P                  4      4      h\        SV `  W4       R # )NzMax value is {0})r/   r>   r'   rH   
ValueErrorformatr&   r   rB   s   &&&r   r   Max.__set__V   ]    ___!2???T//7Exx !3!:!:488!DEE(r   rD   r   r   r   r   r(   floatr'   r/   r   r   r   r    r:   r;   s   @@r   rF   rF   K   s!     0MJ
) )r   rF   c                   J   a a ] tR t^_t oRt]tRtV 3R ltV 3R lt	Rt
VtV ;t# )Minz)Values must be greater than a `min` valueFc                p   < R V9  d   \        V R 4      '       g   \        R4      h\        SV `  ! R/ VB  R# )minzmissing min valueNrD   rI   rK   s   &,r   r   Min.__init__e   rM   r   c                
  < V P                   '       d   Vf   V P                   '       gK   \        V P                  V4      pW P                  8  d%   \	        RP                  V P                  4      4      h\        SV `  W4       R # )NzMin value is {0})r/   r>   r'   rX   rO   rP   r&   r   rB   s   &&&r   r   Min.__set__j   rR   r   rD   rS   r;   s   @@r   rV   rV   _   s!     3MJ
) )r   rV   c                       ] tR t^stRtRtR# )MinMaxzAValues must be greater than `min` value and less than a `max` onerD   N)r   r   r   r   r(   r   rD   r   r   r]   r]   s   s    Kr   r]   c                   F   a a ] tR t^xt oRtRV 3R lltV 3R ltRtVtV ;t	# )Setz+Value can only be from a set of know valuesc                   < R V9   g   \        R4      h\        VR ,          4      VR &   \        SV `  ! V3/ VB  RP	                  V P
                  4      V n        R# )valueszmissing set of valueszValue must be one of {0}N)r1   setr&   r   rP   ra   r(   r   r	   r   r*   s   &&,r   r   Set.__init__{   sP    2~3442h<(8$$188Er   c                p   < W P                   9  d   \        V P                  4      h\        SV `  W4       R # r   )ra   rO   r(   r&   r   rB   s   &&&r   r   Set.__set__   s(    #T\\**(r   r5   r   
r   r   r   r   r(   r   r   r   r    r:   r;   s   @@r   r_   r_   x   s     5F) )r   r_   c                   F   a a ] tR t^t oRtRV 3R lltV 3R ltRtVtV ;t	# )NoneSetz'none' will be treated as Nonec                `   < \         SV `  ! V3/ VB  V P                  P                  R 4       R # r   )r&   r   ra   addrc   s   &&,r   r   NoneSet.__init__   s%    $$r   c                8   < VR 8X  d   Rp\         SV `  W4       R# )noneN)r&   r   rB   s   &&&r   r   NoneSet.__set__   s    F?E(r   rD   r   rg   r;   s   @@r   ri   ri      s     () )r   ri   c                       ] tR t^t]tRtR# )IntegerrD   N)r   r   r   r   intr'   r   rD   r   r   rq   rq          Mr   rq   c                       ] tR t^t]tRtR# )FloatrD   N)r   r   r   r   rT   r'   r   rD   r   r   ru   ru          Mr   ru   c                   6   a a ] tR t^t o]tV 3R ltRtVtV ;t	# )Boolc                d   < \        V\        4      '       d
   VR9   d   Rp\        SV `  W4       R# )falseFN)rz   f0)r.   r=   r&   r   rB   s   &&&r   r   Bool.__set__   s*    eS!!++(r   rD   )
r   r   r   r   boolr'   r   r   r    r:   r;   s   @@r   rx   rx      s     M) )r   rx   c                       ] tR t^t]tRtR# )StringrD   N)r   r   r   r   r=   r'   r   rD   r   r   r   r      rs   r   r   c                       ] tR t^tRtR# )TextrD   N)r   r   r   r   r   rD   r   r   r   r      s    r   r   c                       ] tR t^t]tRtR# )ASCIIrD   N)r   r   r   r   bytesr'   r   rD   r   r   r   r      rv   r   r   c                       ] tR t^t]tRtR# )TuplerD   N)r   r   r   r   tupler'   r   rD   r   r   r   r      rv   r   r   c                   B   a a ] tR t^t oRV 3R lltV 3R ltRtVtV ;t# )Lengthc                L   < R V9  d   \        R4      h\        SV `  ! R/ VB  R# )lengthzvalue length must be suppliedNrD   )r1   r&   r   rc   s   &&,r   r   Length.__init__   s'    2;<<2r   c                   < \        V4      V P                  8w  d%   \        R P                  V P                  4      4      h\        SV `  W4       R# )zValue must be length {0}N)lenr   rO   rP   r&   r   rB   s   &&&r   r   Length.__set__   s:    u:$7>>t{{KLL(r   rD   r   )	r   r   r   r   r   r   r   r    r:   r;   s   @@r   r   r      s     ) )r   r   c                   @   a a ] tR t^t oRtRV 3R lltR tRtVtV ;t	# )Defaultzt
When called returns an instance of the expected type.
Additional default values can be passed in to the descriptor
c                @   < R V9  d   / VR &   \         SV `  ! R/ VB  R# )defaultsNrD   )r&   r   rc   s   &&,r   r   Default.__init__   s$    RBzN2r   c                "    V P                  4       # r   )r'   r6   s   &r   __call__Default.__call__   s    !!##r   rD   r   )
r   r   r   r   r(   r   r   r   r    r:   r;   s   @@r   r   r      s     

$ $r   r   c                   6   a  ] tR t^t o RtR tR tR tRtV t	R# )Aliasz
Aliases can be used when either the desired attribute name is not allowed
or confusing in Python (eg. "type") or a more descriptive name is desired
(eg. "underline" for "u")
c                    Wn         R # r   alias)r   r   s   &&r   r   Alias.__init__   s    
r   c                2    \        WP                  V4       R # r   )r   r   r   s   &&&r   r   Alias.__set__   s    **e,r   c                ,    \        WP                  4      # r   )getattrr   )r   r   clss   &&&r   __get__Alias.__get__   s    x,,r   r   N)
r   r   r   r   r(   r   r   r   r   r    r!   s   @r   r   r      s     -- -r   r   c                   J   a a ] tR t^t oRtRtRV 3R lltV 3R ltRtVt	V ;t
# )MatchPatternz"Values must match a regex pattern Fc                   < R V9  d   \        V R 4      '       g   \        R4      h\        SV `  ! V3/ VB  \        P
                  ! V P                  \        P                  4      V n        R# )patternzmissing pattern valueN)	rJ   r1   r&   r   recompiler   VERBOSEtest_patternrc   s   &&,r   r   MatchPattern.__init__   sP    BwtY'?'?344$$JJt||RZZ@r   c                B  < Vf   V P                   '       g   \        R4      hV P                   '       d   Vf   V P                   '       gF   V P                  P                  V4      '       g%   \        RP	                  V P
                  4      4      h\        SV `  W4       R # )NzValue must not be nonez Value does not match pattern {0})r/   rO   r   matchrP   r   r&   r   rB   s   &&&r   r   MatchPattern.__set__   sq    =566___!2???$$**511 !C!J!J4<<!XYY(r   )r   r   )r   r   r   r   r(   r/   r   r   r   r    r:   r;   s   @@r   r   r      s     ,JA
) 
)r   r   c                   J   a a ] tR tRt o]P                  tV 3R ltRtVtV ;t	# )DateTimei  c                   < Ve#   \        V\        4      '       d    \        V4      p\        SV `  W4       R #   \         d    \        R4      hi ; i)Nz!Value must be ISO datetime format)r.   r=   r   rO   r&   r   rB   s   &&&r   r   DateTime.__set__
  sR    E3!7!7F$U+ 	(  F !DEEFs	   9 ArD   )
r   r   r   r   datetimer'   r   r   r    r:   r;   s   @@r   r   r     s     %%M) )r   r   )r(   r   r   openpyxlr   openpyxl.utils.datetimer   	namespacer   r   r$   r>   r@   rF   rV   r]   r_   ri   rq   ru   rx   r   r   r   r   r   r   r   r   r   rD   r   r   <module>r      s  
  	  0 !- -J 2	)% ))+ )()+ )(	S# 	
)* ) )c )k 
K 
); )U 
	6; 	
E 
E 
)Z )$e $-J -"): )2
)u 
)r   