
    9i                         S r SSKJr  SSKrSSKJr  SSKr  " S S5      r\" \\R$                  5      r\" S\R(                  5      r                          SS jrSS	 jrSS
 jrSSS jjrg)z6
some helper functions that might be generally useful
    )annotationsN)partialc                  6    \ rS rSrSrSS jrS	S jrS
S jrSrg)LazyEval   a  
Lightweight wrapper around lazily evaluated func(*args, **kwargs).

func is only evaluated when any attribute of its return value is accessed.
Every attribute access is passed through to the wrapped value.
(This only excludes special cases like method-wrappers, e.g., __hash__.)
The sole additional attribute is the lazy_self function which holds the
return value (or, prior to evaluation, func and arguments), in its closure.
c                P   ^ ^^^ SUUUU 4S jjn[         R                  T SU5        g )Nc                 P   >^  T" T0 TD6m [         R                  TSU 4S j5        T $ )N	lazy_selfc                    > T $ N )return_values   P/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/ruamel/yaml/util.py<lambda>6LazyEval.__init__.<locals>.lazy_self.<locals>.<lambda>!   s    ,    object__setattr__)r   argsfunckwargsselfs   @r   r
   $LazyEval.__init__.<locals>.lazy_self   s+    00Lt[2FGr   r
   )returnAnyr   )r   r   r   r   r
   s   ```` r   __init__LazyEval.__init__   s!    	  	 
 	4i8r   c                `    [         R                  U S5      nUS:X  a  U$ [        U" 5       U5      $ )Nr
   )r   __getattribute__getattr)r   namer
   s      r   r    LazyEval.__getattribute__&   s1    ++D+>	;y{D))r   c                8    [        U R                  5       X5        g r   )setattrr
   )r   r"   values      r   r   LazyEval.__setattr__,   s     $.r   r   N)r   zCallable[..., Any]r   r   r   r   r   None)r"   strr   r   )r"   r)   r&   r   r   r(   )	__name__
__module____qualname____firstlineno____doc__r   r    r   __static_attributes__r   r   r   r   r      s    9*/r   r   a  ^(?P<year>[0-9][0-9][0-9][0-9])
       -(?P<month>[0-9][0-9]?)
       -(?P<day>[0-9][0-9]?)
       (?:((?P<t>[Tt])|[ \t]+)   # explictly not retaining extra spaces
       (?P<hour>[0-9][0-9]?)
       :(?P<minute>[0-9][0-9])
       :(?P<second>[0-9][0-9])
       (?:\.(?P<fraction>[0-9]*))?
        (?:[ \t]*(?P<tz>Z|(?P<tz_sign>[-+])(?P<tz_hour>[0-9][0-9]?)
       (?::(?P<tz_minute>[0-9][0-9]))?))?)?$c           
     6   Sn[        U 5      n [        U5      n[        U5      nUc  [        R                  " XU5      $ [        U5      n[        U5      n[        U5      nSnU(       af  US S n[        U5      S:  a  US-  n[        U5      S:  a  M  [        U5      n[        U5      S:  a  [        US   5      S:  a  US-  nX:  a  SnOUnOSnS nS nU	(       aR  [        U
5      n
U(       a  [        U5      OSn[        R                  " XS9nU	S:X  a  U* n[        R
                  " UUS	9nO-US
:X  a'  [        R
                  " [        R                  " SS9US	9nX:  a  [        R                  " SS9* n[        R                  " XX$XVX5      nU(       a  UU-  nU$ )Ni?B r      0      )hoursminutes-)r"   Z)r5   )seconds)intdatetimedatelen	timedeltatimezone)yearmonthdaythourminutesecondfractiontztz_signtz_hour	tz_minuteMAX_FRACfracfrac_stzinfodeltatddatas                      r   create_timestamprS   A   s    Ht9DJE
c(C|}}T#..t9D[F[FD"1&kAocMF &kAo6{x=1Xa[!1A!5AID?HHFEg,&/C	NQ	
 c>B""2B/	s""8#5#5A#>RH##A.. T#VXVDKr   c                "   SSK Jn  SS jn[        U [        5      (       a  U nO7[        U [        5      (       a  U R                  S5      nOU R                  5       nSnSnSnSnSn	UR                  5        H  n
U
R                  5       nUR                  5       nUR                  S5      (       a8  U" U
5      nX-
  nUS-   nX   S:X  a  US-  nX   S:X  a  M  X   S	:X  a  Mk  X-
  n  OpUc,  Ub)  U(       a"  SnX   S
;   a  US-  nX   S
;   a  M  X:  a  X-
  nUR                  S5      (       a%  U" U
5      n	SnX   S:X  a  US-  nX   S:X  a  M  UnM  SnM     Uc  Ub  UnSU;  a  U" 5       OUR                  S5      nUR                  " U40 UD6Xg4$ )a`  guess the indent and block sequence indent of yaml stream/string

returns round_trip_loaded stream, indent level, block sequence indent
- block sequence indent is the number of spaces before a dash relative to previous indent
- if there are no block sequences, indent is taken from nested mappings, block sequence
  indent is unset (None) in that case
r4   )YAMLc                t    SnU[        U 5      :  a&  X   S:X  a  US-  nU[        U 5      :  a
  X   S:X  a  M  U$ )Nr    r4   )r=   )lineidxs     r   leading_spaces.load_yaml_guess_indent.<locals>.leading_spaces   s?    CIo$)s"21HC CIo$)s"2
r   zutf-8Nr   z- rW   #z -:yaml)rX   r   r   r:   )mainrU   
isinstancer)   bytesdecoderead
splitlinesrstriplstrip
startswithendswithpopload)streamkwrU   rZ   yaml_str
map_indentindentblock_seq_indentprev_line_key_only
key_indentrX   rlinellinel_srY   r^   s                   r   load_yaml_guess_indentrv      s     &#	FE	"	"==);;=JFJ##%D!! &C"/'C)s"q )s"yC%F"4"@UC)t#q )t#' 5
>>#'-JC)s"q )s"!$!5 &6 ~*02%46266&>D99X$$f>>r   c              #  N  #    SSK Jn  [        X5      (       d   eU R                   H  nUR	                  5       (       d  M  Uv   M      [        U 5       H  nUR	                  5       (       d  M  Uv   M      U R                   H  nUR	                  5       (       d  M  Uv   M      g7f)zj
walks over a ConfigObj (INI file with comments) generating
corresponding YAML output (including comments
r   )	ConfigObjN)	configobjrx   r`   initial_commentstrip_walk_sectionfinal_comment)cfgrx   css       r   configobj_walkerr      s~     
 $c%%%%  7799G ! 37799G   7799G s   ;B%)B%.*B%	B%c              #    #    SSK Jn  [        X5      (       d   eSU-  nU R                   H  nU R                  U    H  nX5R                  5       -   v   M     X   nSU;   a/  US-   nSU-   UR                  5       R                  SSU-   5      -   nOSU;   a  SUR                  SS5      -   S-   nU U S	U 3nU R                  U   nU(       a  US
U-   -  nUv   M     U R                   Hp  nU R                  U    H  nX5R                  5       -   v   M     U U S3nU R                  U   nU(       a  US
U-   -  nUv   [        X   US-   S9 H  n	U	v   M	     Mr     g 7f)Nr   )Sectionz  
z|
r]   'z''z: rW   r4   )level)
ry   r   r`   scalarscommentsr{   replaceinline_commentssectionsr|   )
r   r   r   ro   r"   r   xirX   vals
             r   r|   r|      sk    !a!!!!E\F		D!A779$$ "G19A	AGGI--dD1H==AAXaiiT**S0A$r!%d#C!GOD
  

D!A779$$ "$q!d#C!GOD
 	:CI ; s   EE )r@   r   rA   r   rB   r   rC   r   rD   r   rE   r   rF   r   rG   r   rH   r   rI   r   rJ   r   rK   r   r   z'Union[datetime.datetime, datetime.date])rk   StreamTextTyperl   r   r   r   )r~   r   r   r   )r   )r   r   r   r:   r   r   )r.   
__future__r   r;   	functoolsr   retypingr   DictOptionalListTextCallableUnioncompatr   r   compileRegExpXtimestamp_regexprS   rv   r   r|   r   r   r   <module>r      s    #   	 	
/ /: 
2::	&	0 DD @
@@ 
@ 	@
 @ @ @ @ 	@ @ @ @ -@P;?|&r   