
    =OOf                         d dl mZ 	 d dlZd dlmZ d dlZ	  G d d      Z eeej"                        Z edej&                        Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddZdd	Zddd
Zy)    )annotationsN)partialc                  (    e Zd ZdZddZddZddZy)	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                L     d fd}t         j                   d|       y )Nc                 N      i  t         j                  d fd        S )N	lazy_selfc                      S N )return_values   Q/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/ruamel/yaml/util.py<lambda>z6LazyEval.__init__.<locals>.lazy_self.<locals>.<lambda>    s    ,     object__setattr__)r   argsfunckwargsselfs   @r   r	   z$LazyEval.__init__.<locals>.lazy_self   s+    00Lt[2FGr   r	   )returnAnyr   )r   r   r   r   r	   s   ```` r   __init__zLazyEval.__init__   s!    	  	 
 	4i8r   c                ^    t         j                  | d      }|dk(  r|S t         |       |      S )Nr	   )r   __getattribute__getattr)r   namer	   s      r   r   zLazyEval.__getattribute__%   s1    ++D+>	;y{D))r   c                :    t        | j                         ||       y r   )setattrr	   )r   r   values      r   r   zLazyEval.__setattr__+   s     $.r   N)r   zCallable[..., Any]r   r   r   r   r   None)r   strr   r   )r   r#   r!   r   r   r"   )__name__
__module____qualname____doc__r   r   r   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           
        d}t        |       } t        |      }t        |      }|t        j                  | ||      S t        |      }t        |      }t        |      }d}|ra|d d }t        |      dk  r|dz  }t        |      dk  rt        |      }t        |      dkD  rt        |d         dkD  r|dz  }||kD  rd}n|}nd}d }d }|	rQt        |
      }
|rt        |      nd}t        j                  |
|      }|	dk(  r| }t        j
                  ||	      }n0|d
k(  r+t        j
                  t        j                  d      |	      }||kD  rt        j                  d       }t        j                  | |||||||      }|r||z  }|S )Ni?B r      0      )hoursminutes-)r   Z)r-   )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_timestamprK   @   s    Ht9DJE
c(C|}}T5#..t9D[F[FD"1&kAocMF &kAo6{x=1Xa[!1A!5AID(?HHFEg,&/C	NQ	9
 c>B""2B/	s""8#5#5A#>RHh##A.. T5#tVVXvVDKr   c                   ddl m} dd}t        | t              r| }n2t        | t              r| j                  d      }n| j                         }d}d}d}d}d}	|j                         D ]  }
|
j                         }|j                         }|j                  d      r8 ||
      }||	z
  }|dz   }|
|   dk(  r|dz  }|
|   dk(  r|
|   d	k(  re||	z
  } n^|$|"|r d}|
|   d
v r|dz  }|
|   d
v r||kD  r||z
  }|j                  d      r# ||
      }	d}|
|   dk(  r|dz  }|
|   dk(  r|}d} |||} |       } |j                  |fi |||fS )at  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
    r,   )YAMLc                n    d}|t        |       k  r$| |   dk(  r|dz  }|t        |       k  r	| |   dk(  r|S )Nr    r,   )r5   )lineidxs     r   leading_spacesz.load_yaml_guess_indent.<locals>.leading_spaces   sC    CIo$s)s"21HC CIo$s)s"2
r   zutf-8Nr   z- rO   #z -:)rP   r   r   r2   )mainrM   
isinstancer#   bytesdecoderead
splitlinesrstriplstrip
startswithendswithload)streamkwrM   rR   yaml_str
map_indentindentblock_seq_indentprev_line_key_only
key_indentrP   rlinellinel_srQ   yamls                   r   load_yaml_guess_indentrl      s     &#	FE	"==);;=JFJ##% "D! &C"Z/'Cs)s"q s)s"CyC:%F"4"@UCs)t#q s)t#'' #55
>>#'-JCs)s"q s)s"!$!5"6 ~*06D499X$$f.>>>r   c              #    K   ddl m} t        | |      sJ | j                  D ]  }|j	                         s|  t        |       D ]  }|j	                         s|  | j                  D ]  }|j	                         s|  yw)zv
    walks over a ConfigObj (INI file with comments) generating
    corresponding YAML output (including comments
    r   )	ConfigObjN)	configobjrn   rV   initial_commentstrip_walk_sectionfinal_comment)cfgrn   css       r   configobj_walkerrw      s     
 $c9%%%   779G 3 779G  779Gs   4B	$B	%B	B	c              #    K   ddl m} t        | |      sJ d|z  }| j                  D ]  }| j                  |   D ]  }||j                         z     | |   }d|v r/|dz   }d|z   |j                         j                  dd|z         z   }nd|v rd|j                  dd      z   dz   }| | d	| }| j                  |   }|r|d
|z   z  }|  | j                  D ]k  }| j                  |   D ]  }||j                         z     | | d}| j                  |   }|r|d
|z   z  }| t        | |   |dz         D ]  }	|	  m y w)Nr   )Sectionz  
z|
rT   'z''z: rO   r,   )level)
ro   ry   rV   scalarscommentsrq   replaceinline_commentssectionsrr   )
rv   r|   ry   rd   r   ru   xirP   vals
             r   rr   rr      s    !a!!!E\F		 D! 	%A1779$$	%dG19A	AGGI--dD1H==AAXaiiT**S0A$r!%d#C!GOD
 

 	D! 	%A1779$$	%$q!d#C!GOD
 4	: 	CI		s   E	E)r8   r   r9   r   r:   r   r;   r   r<   r   r=   r   r>   r   r?   r   r@   r   rA   r   rB   r   rC   r   r   z'Union[datetime.datetime, datetime.date])r`   StreamTextTypera   r   r   r   )rt   r   r   r   )r   )rv   r   r|   r2   r   r   )
__future__r   r3   	functoolsr   retypingr   DictOptionalListTextCallableUnioncompatr   r   compileRegExpXtimestamp_regexprK   rl   rw   rr   r   r   r   <module>r      s    "   	 	
/ /: 
2::	&	0 DD @
@@ 
@ 	@
 @ @ @ @ 	@ @ @ @ -@P;?|&r   