
    ;j                     L   d dl mZmZmZmZ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ef         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,d,S )-    )AnyIterableIteratorTupleUnion)parse)URIHash32)denomsfrom_wei   )sliding_windowtakesecondsreturnc                     t          |           dk    rdS t          t          t          |                               }d                    d t	          d|          D                       S )Nr   0s c              3   (   K   | ]\  }}| | V  d S N ).0amountunits      k/home/agent/projects/CryptoTradingBot/Crypto_Agent/.venv/lib/python3.11/site-packages/eth_utils/humanize.py	<genexpr>z#humanize_seconds.<locals>.<genexpr>"   s1      OO,&$v%t%%OOOOOO       )int_consume_leading_zero_units_humanize_secondsjoinr   )r   unit_valuess     r   humanize_secondsr$      s_    
7||qt-.?G.M.MNNK77OO$q+:N:NOOOPPPr   <   i     im        ymwdhs
units_iterc              #   D   K   | D ]\  }}|dk    r||fV   | E d {V  d S )Nr   r   )r/   r   r   s      r   r    r    9   sX       #  Q;;4.   r   c              #   R   K   | }t           D ]\  }}|s d S ||z  }||fV  ||z  }d S r   )UNITS)r   	remainderdurationr   nums        r   r!   r!   F   sZ      I  $ 	EE8#4iX		 r      valuec                     t          |           t          dz   k    r|                                 S |                                 }|d t                   }|dt          z  d          }| d| S )Nr   ..)lenDISPLAY_HASH_CHARShex)r7   value_as_hexheadtails       r   humanize_bytesrA   V   so    
5zz'!+++yy{{99;;L+++,D//112Dd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 )Nr9      0xr:   )r<   r;   )r7   r@   r?   s      r   humanize_hexstrrE   _   s    ((**+DRaRyDuQRRy>>/!333LQ+a//0"D""D"""u::+a///L((()  $   r   c                      t          |           S r   )rA   )r7   s    r   humanize_hashrG   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.r9   zipfs://r:   )is_ipfs_uri	TypeErrorr   urlparsenetlocr<   )rH   parsed	ipfs_hashr?   r@   s        r   humanize_ipfs_urirP   r   s    s 
 5 5 5
 
 	

 ^C  FI((()DR,,../D#T##T###r   c                     t          | t                    sdS t          j        |           }|j        dk    s|j        sdS t          |j                  S )NFipfs)
isinstancestrr   rL   schemerM   _is_CIDv0_ipfs_hash)r7   rN   s     r   rJ   rJ      sQ    eS!! u^E""F}fmuv}---r   rO   c                 Z    |                      d          rt          |           dk    rdS dS )NQm.   TF)
startswithr;   )rO   s    r   rV   rV      s2    D!! c)nn&:&:t5r   valuesc               '      K   dV  t          t          d|           d          D ]\  }\  }}|dz   |k    r|V  t          |           V  d S )Nr   rC   r   )	enumerater   r;   )r[   indexleftrights       r   _find_breakpointsra      sp      
GGG ).F*C*CQ G G  }e!8uKKKK
f++r   c               '   |   K   t          dt          |            D ]!\  }}| ||         }|d         |d         fV  "dS )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))
    rC   r   r9   N)r   ra   )r[   r_   r`   chunks       r   _extract_integer_rangesrd      s_       &a):F)CDD " "etEz"Ahb	!!!!!" "r   boundsc                 D    | \  }}||k    rt          |          S | d| S )N-)rT   )re   r_   r`   s      r   _humanize_rangerh      s4    KD%u}}4yy     r   values_iterc                     t          |           }|sdS d                    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"   maprh   rd   )ri   r[   s     r   humanize_integer_sequencern      sA     ;F PyxxO-Df-MNNO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   rT   )ro   r   r   xs       r   humanize_weirx      s\    	6;		fd##Fv;;AHr   N)-typingr   r   r   r   r   urllibr   
eth_typingr	   r
   eth_utils.currencyr   r   toolzr   r   floatr   rT   r$   SECONDMINUTEHOURDAYYEARMONTHWEEKr2   r    r!   r<   bytesrA   rE   rG   rP   boolrJ   rV   ra   rd   rh   rn   rx   r   r   r   <module>r      s                           
       
       QeE3J/ QC Q Q Q 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 P P P 	 	 	 	 	 	 	 	r   