+
    &*i                         R t ^ RIHt ^ RIt^ RIHt ^ RIt  ! R R4      t]! ]]P$                  4      t]! R]P(                  4      tR R ltR	 R
 ltR R ltRR R lltR# )z6
some helper functions that might be generally useful
)annotationsN)partialc                  >    ] tR t^tRtR R ltR R ltR R ltRtR	# )
LazyEvala  
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               (    V ^8  d   QhRRRRRRRR/# )   funczCallable[..., Any]argsAnykwargsreturnNone )formats   "0lib/python3.14/site-packages/ruamel/yaml/util.py__annotate__LazyEval.__annotate__   s)     9 9/ 9 9s 9t 9    c                	T   a aaa R  VVVV 3R llp\         P                  S RV4       R# )c                   V ^8  d   QhRR/# )r   r   r
   r   )r   s   "r   r   'LazyEval.__init__.<locals>.__annotate__   s     	  	 3 	 r   c                 P   <a  S! S/ SB o \         P                  SR V 3R l4       S # )	lazy_selfc                    < S # Nr   )return_values   r   <lambda>6LazyEval.__init__.<locals>.lazy_self.<locals>.<lambda>!   s    ,r   object__setattr__)r   r	   r   r   selfs   @r   r   $LazyEval.__init__.<locals>.lazy_self   s+    00Lt[2FGr   r   Nr   )r!   r   r	   r   r   s   ffjl r   __init__LazyEval.__init__   s!    	  	 
 	4i8r   c                    V ^8  d   QhRRRR/# )r   namestrr   r
   r   )r   s   "r   r   r   &   s     * *S *S *r   c                	b    \         P                  V R 4      pVR 8X  d   V# \        V! 4       V4      # )r   )r   __getattribute__getattr)r!   r&   r   s   && r   r)   LazyEval.__getattribute__&   s1    ++D+>	;y{D))r   c               $    V ^8  d   QhRRRRRR/# )r   r&   r'   valuer
   r   r   r   )r   s   "r   r   r   ,   s!     / / /C /D /r   c                	:    \        V P                  4       W4       R # r   )setattrr   )r!   r&   r-   s   &&&r   r    LazyEval.__setattr__,   s     $.r   r   N)	__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               L    V ^8  d   QhRRRRRRRRRRRRRRR	RR
RRRRRRRRR/# )r   yearr
   monthdaythourminutesecondfractiontztz_signtz_hour	tz_minuter   z'Union[datetime.datetime, datetime.date]r   )r   s   "r   r   r   A   s     @ @
@@ 
@ 	@
 @ @ @ @ 	@ @ @ @ -@r   c           
     v   R p\        V 4      p \        V4      p\        V4      pVf   \        P                  ! WV4      # \        V4      p\        V4      p\        V4      p^ pV'       dl   VR,          p\        V4      ^8  d   VR,          pK  \        V4      p\        V4      ^8  d!   \        V^,          4      ^8  d
   V^,          pW8  d   ^ pMTpM^ pRpRpV	'       d[   \        V
4      p
V'       d   \        V4      M^ p\        P                  ! WR7      pV	R8X  d   V) p\        P
                  ! VVR7      pM4VR8X  d.   \        P
                  ! \        P                  ! ^ R7      VR7      pW8  d   \        P                  ! ^R	7      ) p\        P                  ! WW$WVW4      pV'       d
   VV,          pV# )
i?B N:N   N0)hoursminutes-)r&   Z)rG   )seconds)intdatetimedatelen	timedeltatimezone)r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   MAX_FRACfracfrac_stzinfodeltatddatas   &&&&&&&&&&&&       r   create_timestamprY   A   sy    Ht9DJE
c(C|}}T#..t9D[F[FD"&kAocMF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               $    V ^8  d   QhRRRRRR/# )r   streamStreamTextTypekwr
   r   r   )r   s   "r   r   r      s!     ;? ;?> ;? ;? ;?r   c                j   ^RI Hp R R lp\        V \        4      '       d   T pM8\        V \        4      '       d   V P                  R4      pMV P                  4       pRpRpRpRp^ p	VP                  4        F  p
V
P                  4       pVP                  4       pVP                  R4      '       dK   V! V
4      pW,
          pV^,           pW,          R8X  d   V^,          pK  W,          R8X  d   Kz  W,
          p M{Vf5   Ve1   V'       d)   ^ pW,          R	9   d   V^,          pK  W8  d	   W,
          pVP                  R
4      '       d'   V! V
4      p	^ pW,          R8X  d   V^,          pK  TpK  RpK  	  Vf   Ve   TpRV9  d   V! 4       MVP                  R4      pVP                  ! V3/ VB Wg3# )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
)YAMLc                    V ^8  d   QhRRRR/# )r   liner
   r   rL   r   )r   s   "r   r   ,load_yaml_guess_indent.<locals>.__annotate__   s      S S r   c                Z    ^ pV\        V 4      8  d   W,          R8X  d   V^,          pK(  V# )     )rO   )ra   idxs   & r   leading_spaces.load_yaml_guess_indent.<locals>.leading_spaces   s)    CIo$)s"21HC
r   zutf-8Nz- re   #z -:yaml)mainr_   
isinstancer'   bytesdecoderead
splitlinesrstriplstrip
startswithendswithpopload)r[   r]   r_   rg   yaml_str
map_indentindentblock_seq_indentprev_line_key_only
key_indentra   rlinellinel_srf   rk   s   &,              r   load_yaml_guess_indentr      s     &#	FE	"	"==);;=JFJ##%D!! &C"/'C)s"qyC%F"4"@UC)t#q' 5
>>#'-JC)s"q!$!5 &6 ~*02%46266&>D99X$$f>>r   c                    V ^8  d   QhRRRR/# )r   cfgr
   r   r   )r   s   "r   r   r      s      # # r   c              #  X  "   ^ RI Hp \        W4      '       g   Q hV P                   F  pVP	                  4       '       g   K  Vx  K!  	  \        V 4       F  pVP	                  4       '       g   K  Vx  K!  	  V P                   F  pVP	                  4       '       g   K  Vx  K!  	  R# 5i)zj
walks over a ConfigObj (INI file with comments) generating
corresponding YAML output (including comments
)	ConfigObjN)	configobjr   rm   initial_commentstrip_walk_sectionfinal_comment)r   r   css   &   r   configobj_walkerr      s~     
 $c%%%%  7799G ! 37799G   7799G s   <B*)B*1*B* 
B*c               $    V ^8  d   QhRRRRRR/# )r   r   r
   levelrL   r   r   )r   s   "r   r   r      s!      S  S r   c              #  v  "   ^ RI Hp \        W4      '       g   Q hRV,          pV P                   F  pV P                  V,           F  pW5P                  4       ,           x  K  	  W,          pRV9   d@   VR,           pRV,           VP                  4       P                  RRV,           4      ,           pM'RV9   d!   RVP                  RR4      ,           R,           pV V RV 2pV P                  V,          pV'       d   VR	V,           ,          pVx  K  	  V P                   F  pV P                  V,           F  pW5P                  4       ,           x  K  	  V V R2pV P                  V,          pV'       d   VR	V,           ,          pVx  \        W,          V^,           R
7       F  p	V	x  K	  	  K  	  R# 5i)rd   )Sectionz  
z|
rj   'z''z: re   )r   N)
r   r   rm   scalarscommentsr   replaceinline_commentssectionsr   )
r   r   r   rz   r&   r   xira   vals
   &&        r   r   r      sq    !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   C<F9?A:F9:?F9)rd   )r5   
__future__r   rM   	functoolsr   retypingr
   DictOptionalListTextCallableUnioncompatr\   r   compileRegExpXtimestamp_regexprY   r   r   r   r   r   r   <module>r      sn    #   	 	
/ /: 
2::	&	0 DD @P;?|& r   