ó
    pyüi¦  ã                   óö   • % S r SSKrSSKr\R                  " S\R                  5      rSSSSSS	.r\\\	4   \
S
'   SSSSSSSS.r\\\	4   \
S'   S\S\	4S jrS\S\	4S jrS\S\\\	4   S\	4S jrS\S\4S jrg)z&Parsing helpers shared across modules.é    Nz(\d+)([a-z]+)iè  i@B i Êš;l    J)£l     �Iú5 )ÚkÚmÚgÚtÚpÚ
BYTE_UNITSé   é<   é  é€Q é€:	 é �' é€3á)Úsr   ÚhÚdÚwÚmoÚyÚ
TIME_UNITSÚvalueÚreturnc                 ó"   • [        U [        5      $ )zaParse a size expressed as a string with digits and unit (like `"10MB"`) to an integer (in bytes).)Ú_parse_with_unitr   ©r   s    Ú[/home/mande/repo/quber/.venv/lib/python3.13/site-packages/huggingface_hub/utils/_parsing.pyÚ
parse_sizer   )   ó   € ä˜E¤:Ó.Ð.ó    c                 ó"   • [        U [        5      $ )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!   .   r   r   Úunitsc           	      ó°  • U R                  5       nU(       d  [        S5      e [        U 5      $ ! [         a     Of = f[        R	                  U5      nU(       d  [        SU  S35      e[        UR                  S5      5      nUR                  S5      R                  5       nXQ;  a)  [        SU S[        UR                  5       5       S35      eXAU   -  $ )	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   3   sÊ   € à�{‰{‹}€HÞÜÐ1Ó2Ð2ðÜ�5‹zÐøÜó Ùðúô  ×)Ñ)¨(Ó3€EÞÜ˜?¨5¨'Ð1iÐjÓkÐkä�—‘˜Q“Ó €FØ�;‰;�q‹>×ÑÓ!€DàÓÜ˜>¨$¨Ð/AÄ$ÀuÇzÁzÃ|ÓBTÐAUÐUVÐWÓXÐXà˜$‘KÑÐs   ¤
/ ¯
<»<Útsc                 ó¸   • Sn[         R                   " 5       U -
  nUS:  a  gU H  u  p4n[        X$-  5      nUc  M  Xe::  d  M    O   W SW US:”  a  S S3$ S S3$ )	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   r:   )Úmonthr   é   )Úyearr   Né   za few seconds agoÚ r	   r   Ú z ago)ÚtimeÚround)r3   Ú_TIMESINCE_CHUNKSÚdeltaÚlabelÚdividerÚ	max_valuer   s          r   Úformat_timesincerI   J   s|   € ð
	Ðô �IŠI‹K˜"Ñ€EØˆrƒzØ"Û%6Ñ!ˆ˜	Ü�e‘oÓ&ˆØÓ  UÕ%7Ùñ &7ð ˆW�A�e�W E¨A£I˜SÐ6°dÐ;Ð;°2Ð6°dÐ;Ð;r   )Ú__doc__ÚrerB   ÚcompileÚ
IGNORECASEr)   r   ÚdictÚstrr(   Ú__annotations__r   r   r!   r   ÚfloatrI   © r   r   Ú<module>rS      s×   ðò -ã 	Û ð —j’jÐ!1°2·=±=ÓAÐ ð 
Ø	Ø	Ø	Ø	ñ€
ˆD��c�‰Nó ð 
Ø	Ø	Ø	Ø	Ø
Ø	ñ€
ˆD��c�‰Nó ð/�cð /˜cô /ð
/˜#ð / #ô /ð
 ˜Cð  ¨¨S°#¨X©ð  ¸3ô  ð.<˜ð < 3õ <r   