Ë
    ÂÓ^j  ã                   ó  — U d Z ddlZddlZ ej                  dej                  «      Zddddddddddd	œ
Zeee	f   e
d
<   ddddddddœZeee	f   e
d<   dede	fd„Zdede	fd„Zdedeee	f   de	fd„Zde	dz  defd„Zdedefd„Zy)z&Parsing helpers shared across modules.é    Nz(\d+)([a-z]+)iè  i@B i Êš;l    J)£l     �Iú5 )
ÚkÚkbÚmÚmbÚgÚgbÚtÚtbÚpÚpbÚ
BYTE_UNITSé   é<   é  é€Q é€:	 é �' é€3á)Úsr   ÚhÚdÚwÚmoÚyÚ
TIME_UNITSÚvalueÚreturnc                 ó"   — t        | t        «      S )zaParse a size expressed as a string with digits and unit (like `"10MB"`) to an integer (in bytes).)Ú_parse_with_unitr   ©r   s    úi/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/huggingface_hub/utils/_parsing.pyÚ
parse_sizer"   .   ó   € ä˜E¤:Ó.Ð.ó    c                 ó"   — t        | t        «      S )zfParse a duration expressed as a string with digits and unit (like `"10s"`) to an integer (in seconds).)r   r   r    s    r!   Úparse_durationr&   3   r#   r$   Úunitsc           	      óš  — | j                  «       }|st        d«      ‚	 t        | «      S # t        $ r Y nw xY wt        j	                  |«      }|st        d| › d�«      ‚t        |j                  d«      «      }|j                  d«      j                  «       }||vr)t        d|› dt        |j                  «       «      › d�«      ‚|||   z  S )	z)Parse a numeric value with optional unit.zValue cannot be empty.zInvalid value 'z7'. Must match pattern '\d+[a-z]+' or be a plain number.r   é   zUnknown unit 'z'. Must be one of ú.)	ÚstripÚ
ValueErrorÚintÚRE_NUMBER_WITH_UNITÚ	fullmatchÚgroupÚlowerÚlistÚkeys)r   r'   ÚstrippedÚmatchÚnumberÚunits         r!   r   r   8   sÎ   € à�{‰{‹}€HÙÜÐ1Ó2Ð2ðÜ�5‹zÐøÜò Ùðúô  ×)Ñ)¨(Ó3€EÙÜ˜?¨5¨'Ð1iÐjÓkÐkä�—‘˜Q“Ó €FØ�;‰;�q‹>×ÑÓ!€Dà�5ÑÜ˜>¨$¨Ð/AÄ$ÀuÇzÁzÃ|ÓBTÐAUÐUVÐWÓXÐXà�E˜$‘KÑÐs   Ÿ
* ª	6µ6Úsecsc                 óz   — | €yt        | «      } | dk  r| › d�S | dk  r| dz  › d| dz  › d�S | dz  › d| dz  dz  › d�S )zÄFormat a duration in seconds as a short human-readable string (e.g. `"1m 32s"`, `"2h 15m"`, `"45s"`).

    Returns `"--"` when `secs` is `None` so it can be used directly as a CLI table cell.
    z--r   r   r   zm zh r   )r-   )r8   s    r!   Úformat_durationr:   O   sk   € ð
 €|ØÜˆt‹9€DØˆb‚yØ��qˆzÐØˆd‚{Ø˜"‘*�˜R  r¡	˜{¨!Ð,Ð,Ø�d‰lˆ^˜2˜t d™{¨rÑ1Ð2°!Ð4Ð4r$   Útsc                 ó®   — d}t        j                   «       | z
  }|dk  ry|D ]  \  }}}t        ||z  «      }|€Œ||k  sŒ n › d› |dkD  rd› d�S d› d�S )	zˆFormat timestamp in seconds into a human-readable string, relative to now.

    Vaguely inspired by Django's `timesince` formatter.
    ))Úsecondr   r   )Úminuter   r   )Úhourr   é   )Údayr   é   )Úweekr   rB   )Úmonthr   é   )Úyearr   Né   za few seconds agoú r   r   Ú z ago)ÚtimeÚround)r;   Ú_TIMESINCE_CHUNKSÚdeltaÚlabelÚdividerÚ	max_valuer   s          r!   Úformat_timesincerQ   ^   s‡   € ð
	Ðô �I‰I‹K˜"Ñ€EØˆr‚zØ"Ø%6ò Ñ!ˆˆw˜	Ü�e˜g‘oÓ&ˆØÑ  U¨iÓ%7Ùðð ˆW�A�e�W E¨A¢I˜SÐ6°dÐ;Ð;°2Ð6°dÐ;Ð;r$   )Ú__doc__ÚrerJ   ÚcompileÚ
IGNORECASEr.   r   ÚdictÚstrr-   Ú__annotations__r   r"   r&   r   r:   ÚfloatrQ   © r$   r!   ú<module>r[      sÿ   ðò -ã 	Û ð !�b—j‘jÐ!1°2·=±=ÓAÐ ð 
Ø
Ø	Ø
Ø	Ø
Ø	Ø
Ø	Ø
ñ€
ˆD��c�‰Nó ð 
Ø	Ø	Ø	Ø	Ø
Ø	ñ€
ˆD��c�‰Nó ð/�cð /˜có /ð
/˜#ð / #ó /ð
 ˜Cð  ¨¨S°#¨X©ð  ¸3ó  ð.5˜# ™*ð 5¨ó 5ð<˜ð < 3ô <r$   