
    5j              
          S SK r S SKrS SKJrJrJrJrJrJr  S SK	J
r
JrJr  \R                  " S5      r\R                  " S5      rS rS\S\
4S	 jrS
 rS\4S jrS\S\\S4   4S jrS\S\\\   \\   4   S\4S jrS\\\\4   S\4S jrS\\\\4   S\4S jrSSS.S\4S jjrS\\\4   S\4S jr S\S\4S jr!S\\\\"\\\\\"4      4   S\\\\\"4      4S jr#g)    N)SetListTupleUnion	GeneratorIterable)ParseResulturlparseParseResultBytesz(.)([A-Z][a-z]+)z([a-z0-9])([A-Z])c                 8   U (       d  U $ SU ;   aK  U R                  S5       Vs/ s H  n[        U5      PM     nnSR                  U5      n U R                  5       $ [        R	                  SU 5      n [
        R	                  SU 5      n U R                  5       $ s  snf )N_z\1_\2)splitcamel_to_snakejoin	pattern_1sub	pattern_2lower)swwordss      V/root/lseg-credit/backend/venv/lib/python3.13/site-packages/lseg/data/_tools/_utils.pyr   r   
   s    
ax,-GGCL9Lq"L9HHUO 779 MM(A&MM(A&779 :s   Burlreturnc           	         SS K nUR                  nUR                  S:X  Ga0  UR                  S::  d!  UR                  S:X  Ga  UR                  S:  a  [        U 5      n[        U[        5      (       a  U$ UR                  nUR                  nUR                  nUR                  nUR                  nUR                  S5      n	U(       d&  U(       a  U	S:  a  US U	 R                  5       XiS-   S  pdU(       aB  US   R                  5       (       a  US   R!                  5       (       d  U(       a  U SU 3OUnSn[#        UUUUR$                  UUS9n
U
$ [        U 5      n
U
$ )Nr            : )schemenetlocpathparamsqueryfragment)sysversion_infomajorminormicror
   
isinstancer   r!   r"   r#   r%   r&   findr   isasciiisalphar	   r$   )r   r'   py_verresult_urlparser!   r"   r#   r%   r&   iresults              r   	parse_urlr4      s?   F||qfllb0V\\R5GFLL[\L\"3-o'788"" '' ''##%%"++IIcN$1q58>>+Ta%']D6!9,,..fQi6G6G6I6I)-fXQtf%6DF"))
 M #M    c                 x    U S:X  a  [        S5      eU R                  S5      (       a  U(       d  [        S5      eg g )Nr    z2Requested URL is missing, please provide valid URLz
{universe}zCPath parameter 'universe' is missing, please provide path parameter)
ValueErrorendswith)r   path_parameterss     r   (validate_endpoint_request_url_parametersr:   ?   s:    
byMNN
||L!!/^__ +:!r5   class_c                     [        [        R                  " U R                  5      R                  5      nUR                  SS 5        UR                  5       $ )Nself)dictinspect	signature__init__
parameterspopkeys)r;   cls_init_attributess     r   inspect_parameters_without_selfrF   G   sA    w00ALLMFD)##%%r5   version.c                 R    [        [        [        U R                  S5      5      5      $ )N.)tuplemapintr   )rG   s    r   version_to_tuplerM   M   s    S'--,-..r5   r   
substringsc                 .   ^  [        U 4S jU 5       5      $ )Nc              3   6   >#    U  H  oT;   d  M
  Uv   M     g 7fN ).0substrr   s     r   	<genexpr>%has_any_substrings.<locals>.<genexpr>R   s     >J&A+vvJs   		)any)r   rN   s   ` r   has_any_substringsrX   Q   s    >J>>>r5   lc                 Z    [        [        R                  U 5      R                  5       5      $ rQ   )listr>   fromkeysrD   rY   s    r   get_unique_listr^   U   s    a %%'((r5   c                 ,    [         R                  U 5      $ rQ   )r>   r\   r]   s    r   get_unique_dictr`   Y   s    ==r5    z{}={})delimtemplatec                 V   ^ U R                  U4S jUR                  5        5       5      $ )Nc              3      >#    U  H6  u  p[        U[        5      (       d	  U(       d  M#  TR                  X5      v   M8     g 7frQ   )r,   rL   format)rS   kvrc   s      r   rU   fill.<locals>.<genexpr>^   s3     b*UVX[J\J\`a+hooa++s
   "AA)r   items)rb   rc   kwargss    ` r   fillrl   ]   s    ::bbbbr5   oc                 >    [        U [        5      (       a  SU  S3$ U  $ )N')r,   str)rm   s    r   quotesrq   a   s#    !!S))Qqc85!5r5   c                     [        U [        5      (       aR  U R                  S5      (       a  U S S n OU R                  S5      (       a  U S S n U R                  S5      (       a  U S S n U $ )NZz-0000z.000)r,   rp   r8   )r   s    r   tz_replacerrw   e   s`    !S::c??#2AZZ  #2A::f#2AHr5   argc                 ^    [        U [        [        [        45      (       a  U /$ [	        U 5      $ rQ   )r,   rp   rL   floatr[   )rx   s    r   ensure_listr{   p   s'    #S%())u9r5   )$r?   retypingr   r   r   r   r   r   urllib.parser	   r
   r   compiler   r   r   rp   r4   r:   objectrF   rL   rM   boolrX   r[   rK   r^   r>   r`   rl   rq   rw   rz   r{   rR   r5   r   <module>r      sp    	 ? ? @ @JJ)*	JJ*+	#3 #; #L`&F &/c /eCHo /?# ?5cCH1D+E ?$ ?)uT3	12 )t )uT3	12 t   cc c6eCM" 6s 63 3 U3UHU3U?5K,LLM RVW\]`begl]lWmRn r5   