
    E#i)                        S SK JrJrJrJrJr  S SKJr  SSK JrJ	r	  SSK
JrJr  SSKJrJr  S\\\4   S	\4S
 jrSrSrSrS\-  rS\-  r\S-  rS\-  r\S4\S4\S4\S4\S4\S4\S44rS\\\\4      S	\\\\4      4S jrS\S	\\\\4      4S jrSrS\S	\4S jr S\	S	\4S jr!S\S	\4S jr"S\S	\#4S  jr$S!\S	\#4S" jr%S#\S	\\   4S$ jr&S#\S	\\\\4      4S% jr'S&\\\4   S	\4S' jr(S(\\   S	\4S) jr)S*\S	\4S+ jr*g,)-    )AnyIterableIteratorTupleUnion)parse   )URIHash32   )denomsfrom_wei)sliding_windowtakesecondsreturnc                     [        U 5      S:X  a  g[        [        [        U 5      5      5      nSR                  S [	        SU5       5       5      $ )Nr   0s c              3   2   #    U  H  u  pU U 3v   M     g 7fN ).0amountunits      j/home/james-whalen/.local/lib/python3.13/site-packages/ccxt/static_dependencies/ethereum/utils/humanize.py	<genexpr>#humanize_seconds.<locals>.<genexpr>"   s     O:N,&vhtf%:Ns      )int_consume_leading_zero_units_humanize_secondsjoinr   )r   unit_valuess     r   humanize_secondsr%      sA    
7|q-.?G.MNK77O$q+:NOPP    <   i     im        ymwdhs
units_iterc              #   T   #    U  H  u  pUS:X  a  M  X4v     O   U  S h  vN   g  N7f)Nr   r   )r1   r   r   s      r   r!   r!   9   s3      #Q;.  # s   (&(c              #   Z   #    U n[          H  u  p#U(       d    g X-  nXC4v   X-  nM     g 7fr   )UNITS)r   	remainderdurationr   nums        r   r"   r"   F   s3     I#i	  s   )+   valuec                     [        U 5      [        S-   ::  a  U R                  5       $ U R                  5       nUS [         nUS[        -  S  nU SU 3$ )Nr   ..)lenDISPLAY_HASH_CHARShex)r9   value_as_hexheadtails       r   humanize_bytesrC   V   s]    
5z'!++yy{99;L++,D//12DV2dVr&   c                     [        U 5      $ r   )rC   )r9   s    r   humanize_hashrE   _   s    %  r&   uric                     [        U 5      (       d  [        U  S35      e[        R                  " U 5      nUR                  nUS [
         nUS[
        -  S  nSU SU 3$ )NzW does not look like a valid IPFS uri. Currently, only CIDv0 hash schemes are supported.r;   zipfs://r<   )is_ipfs_uri	TypeErrorr   urlparsenetlocr>   )rF   parsed	ipfs_hashrA   rB   s        r   humanize_ipfs_urirN   c   sv    se 5 5
 	

 ^^C FI(()DR,,./DTF"TF##r&   c                     [        U [        5      (       d  g[        R                  " U 5      nUR                  S:w  d  UR
                  (       d  g[        UR
                  5      $ )NFipfs)
isinstancestrr   rJ   schemerK   _is_CIDv0_ipfs_hash)r9   rL   s     r   rH   rH   q   sD    eS!!^^E"F}}fmmv}}--r&   rM   c                 P    U R                  S5      (       a  [        U 5      S:X  a  gg)NQm.   TF)
startswithr=   )rM   s    r   rT   rT   |   s$    D!!c)n&:r&   valuesc               '      #    Sv   [        [        SU 5      S5       H  u  nu  p#US-   U:X  a  M  Uv   M     [        U 5      v   g 7f)Nr   r	   r   )	enumerater   r=   )rY   indexleftrights       r   _find_breakpointsr_      sJ     
G ).F*CQ G}!8uK	 !H
 f+s   AAc               '   b   #    [        S[        U 6 5       H  u  pXU nUS   US   4v   M     g7f)z
Return a tuple of consecutive ranges of integers.

:param values: a sequence of ordered integers

- fn(1, 2, 3) -> ((1, 3),)
- fn(1, 2, 3, 7, 8, 9) -> ((1, 3), (7, 9))
- fn(1, 7, 8, 9) -> ((1, 1), (7, 9))
r	   r   r;   N)r   r_   )rY   r]   r^   chunks       r   _extract_integer_rangesrb      s>      &a):F)CDE"Ahb	!! Es   -/boundsc                 8    U u  pX:X  a  [        U5      $ U SU 3$ )N-)rR   )rc   r]   r^   s      r   _humanize_rangerf      s)    KD}4yq  r&   values_iterc                 r    [        U 5      nU(       d  gSR                  [        [        [	        U6 5      5      $ )z
Return a concise, human-readable string representing a sequence of integers.

- fn((1, 2, 3)) -> '1-3'
- fn((1, 2, 3, 7, 8, 9)) -> '1-3|7-9'
- fn((1, 2, 3, 5, 7, 8, 9)) -> '1-3|5|7-9'
- fn((1, 7, 8, 9)) -> '1|7-9'
z(empty)|)tupler#   maprf   rb   )rg   rY   s     r   humanize_integer_sequencerl      s0     ;FxxO-Df-MNOOr&   numberc                     U [         R                  :  a  SnOU [         R                  :  a  SnOSn[        X5      n[	        U5       SU 3nU$ )Nethergweiwei )r   finneymweir   rR   )rm   r   r   xs       r   humanize_weirv      sL    	6;;	f#Fv;-qAHr&   N)+typingr   r   r   r   r   urllibr   r
   r   currencyr   r   toolzr   r   floatr    rR   r%   SECONDMINUTEHOURDAYYEARMONTHWEEKr4   r!   r"   r>   bytesrC   rE   rN   boolrH   rT   r_   rb   rf   rl   rv   r   r&   r   <module>r      s   

QeE3J/ QC Q 
	4i
Sy
3w 
3K
CL	3K#J	3KSMSM	
sCx)
eCHo

s 
xc3h'@ 
  % C ! !C !$3 $3 $.s .t .3 4 s x} "S "XeCHo-F "!E#s(O ! !P8C= PS P 	 	 	r&   