
    (i                        d dl mZmZ d dlmZ d dlmZ d dlmZm	Z	 d dl
mZmZ ddlmZmZ deez  d	efd
ZdZdZdZdez  Zdez  Zedz  Zdez  ZedfedfedfedfedfedfedffZdeeeef      d	eeeef      fdZded	eeeef      fdZdZde d	efdZ!ded	efdZ"de	d	efdZ#ded	efd Z$ded	e%fd!Z&d"ed	e%fd#Z'd$ed	ee   fd%Z(d$ed	eeeef      fd&Z)d'eeef   d	efd(Z*d)ee   d	efd*Z+d+ed	efd,Z,y-).    )IterableIterator)Any)parse)URIHash32)denomsfrom_wei   )sliding_windowtakesecondsreturnc                     t        |       dk(  ryt        t        t        |                   }dj                  d t	        d|      D              S )Nr   0s c              3   .   K   | ]  \  }}| |   y wN ).0amountunits      C/var/www/br/venv/lib/python3.12/site-packages/eth_utils/humanize.py	<genexpr>z#humanize_seconds.<locals>.<genexpr>"   s     O,&$vhtf%Os      )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              #   R   K   | D ]  \  }}|dk(  r||f  n | E d {    y 7 w)Nr   r   )r-   r   r   s      r   r   r   9   s=      # Q;4.  s   '%'c              #   T   K   | }t         D ]  \  }}|s y ||z  }||f ||z  } y wr   )UNITS)r   	remainderdurationr   nums        r   r   r   F   sA     I $8#4iX	s   &(   valuec                     t        |       t        dz   k  r| j                         S | j                         }|d t         }|dt        z  d  }| d| S )Nr   ..)lenDISPLAY_HASH_CHARShex)r5   value_as_hexheadtails       r   humanize_bytesr?   V   s]    
5z'!++yy{99;L++,D//12DV2dVr"   c                     | dt         z  d  }| d d dk(  r.t        | dd        t         dz  k  r| S | dt         dz    }d| d| S t        |       t         dz  k  r| S | d t          }| d| S )Nr7      0xr8   )r:   r9   )r5   r>   r=   s      r   humanize_hexstrrC   _   s    ((*+DRayDuQRy>/!33LQ+a/0D6D6""u:+a//L(()r$  r"   c                     t        |       S r   )r?   )r5   s    r   humanize_hashrE   n   s    %  r"   uric                     t        |       st        |  d      t        j                  |       }|j                  }|d t
         }|dt
        z  d  }d| d| S )NzW does not look like a valid IPFS uri. Currently, only CIDv0 hash schemes are supported.r7   zipfs://r8   )is_ipfs_uri	TypeErrorr   urlparsenetlocr:   )rF   parsed	ipfs_hashr=   r>   s        r   humanize_ipfs_urirN   r   ss    se 5 5
 	

 ^^C FI(()DR,,./DTF"TF##r"   c                     t        | t              syt        j                  |       }|j                  dk7  s|j
                  syt        |j
                        S )NFipfs)
isinstancestrr   rJ   schemerK   _is_CIDv0_ipfs_hash)r5   rL   s     r   rH   rH      sA    eS!^^E"F}}fmmv}}--r"   rM   c                 D    | j                  d      rt        |       dk(  ryy)NQm.   TF)
startswithr9   )rM   s    r   rT   rT      s!    D!c)n&:r"   valuesc               '      K   d t        t        d|       d      D ]  \  }\  }}|dz   |k(  r|  t        |        y w)Nr   rA   r   )	enumerater   r9   )rY   indexleftrights       r   _find_breakpointsr_      sQ     
G ).F*CQ G }e!8uK	
 f+s   AAc               '   b   K   t        dt        |        D ]  \  }}| || }|d   |d   f  yw)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))
    rA   r   r7   N)r   r_   )rY   r]   r^   chunks       r   _extract_integer_rangesrb      sG      &a):F)CD "etE"Ahb	!!"s   -/boundsc                 :    | \  }}||k(  rt        |      S | d| S )N-)rR   )rc   r]   r^   s      r   _humanize_rangerf      s-    KD%u}4yq  r"   values_iterc                 h    t        |       }|sydj                  t        t        t	        |             S )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                     | t         j                  k\  rd}n| t         j                  k\  rd}nd}t        | |      }t	        |       d| }|S )Nethergweiwei )r	   finneymweir
   rR   )rm   r   r   xs       r   humanize_weirv      sN    	6;;	fd#Fv;-qAHr"   N)-collections.abcr   r   typingr   urllibr   
eth_typingr   r   eth_utils.currencyr	   r
   toolzr   r   floatr   rR   r!   SECONDMINUTEHOURDAYYEARMONTHWEEKr0   rj   r   r   r:   bytesr?   rC   rE   rN   boolrH   rT   r_   rb   rf   rl   rv   r   r"   r   <module>r      s  

Qeck Qc Q 
	4i
Sy
3w 
3K
CL	3K#J	3KSMSM	
sCx)
eCHo

s 
xc3h'@ 
  % C !3 !3 !! !C !$3 $3 $.s .t .3 4 s x} "S "XeCHo-F "!E#s(O ! !P8C= PS P 	 	 	r"   