
    5pj                        % S r SSKJr  SSKrSSKJrJr  SSS.rS\S	'   S
S.SS jjr	Sr
S\S'   SS jrSS jrSSS.         SS jjr/ SQrg)z$Human-friendly formatting utilities.    )annotationsN)IterableSequence)i   )BKiBMiBGiBTiBPiB)i  )r   KBMBGBTBPB)iecsiz&dict[str, tuple[int, tuple[str, ...]]]_UNIT_SYSTEMSr   )unit_systemc                   U[         ;  a  [        SU< 35      eU S:X  a  g[         U   u  p#[        U 5      nUS   nU H  n[        U5      U:  d  XSS   L a    OXB-  nM!     U[	        U5      :X  a  US OUS nU SU 3$ )zFormat a byte count as a human-readable string.

``unit_system`` selects between IEC (1024-based) and SI (1000-based) units.
Returns ``"0 B"`` for zero, otherwise one decimal place is kept unless the
value is integral (e.g. ``"2 MiB"``).
zUnknown unit_system: r   z0 Bz.0fz.1f )r   
ValueErrorfloatabsint)
size_bytesr   baseunitsvalueunitrendereds          W/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/modelscope_hub/utils/format.pyformat_sizer#      s     -'0@AAQ,KD*E8Du:b	 1  "'#e*!4%U3KHZq    ))second   <   )minuter'   r'   )houri     )dayiQ    )weeki:	    )monthi (    )yeariNz'tuple[tuple[str, int, int | None], ...]_TIME_CHUNKSc                    [        S[        [        R                  " 5       U -
  5      5      nUS:  a  g[         H(  u  p#nX-  nUb  XT:  d  M  US:X  a  SOSnU SU U S3s  $    g	)
z;Format a UNIX timestamp as a relative ``"... ago"`` phrase.r      za few seconds agor&    sr   z agoza long time ago)maxr   timer2   )tsdeltalabeldivisoruppercountsuffixs          r"   format_timesincer@   <   sq    3tyy{R'()Erz"!- =EM A:R3FWAeWVHD11	 ". r$   c                Z    U c  SO
[        U 5      n[        U5      U:  a  USUS-
   S-   $ U$ )zMStringify a cell, replacing ``None`` with ``-`` and truncating overlong text.N-r&   u   …)strlen)r   	max_widthtexts      r"   _cellrG   N   s8    -3SZD
4y9Oi!m$u,,Kr$   z  P   )seprE   c               d  ^^
^^ US:  a  [        SU 35      e[        U5      mU  VVs/ s H<  n[        T5       Vs/ s H"  n[        U[        U5      :  a  XE   OSU5      PM$     snPM>     nnnU Vs/ s H  n[        U5      PM     snmU H2  n[	        U5       H   u  pX[        TU   [        U5      5      TU'   M"     M4     SUUU4S jjm
T
" [        U5      5      TR                  S T 5       5      /n	U	R                  U
4S jU 5       5        SR                  U	5      $ s  snf s  snnf s  snf )	zRender ``rows`` as a left-aligned ASCII table.

Columns auto-size to their widest cell; cells longer than ``max_width`` are
truncated with an ellipsis. ``None`` values render as ``-``.

Raises :class:`ValueError` if ``max_width`` is less than 1.
r&   zmax_width must be >= 1, got r5   c                P   >^  TR                  U U4S j[        T5       5       5      $ )Nc              3  R   >#    U  H  nTU   R                  TU   5      v   M     g 7fN)ljust).0icellswidthss     r"   	<genexpr>*tabulate.<locals>._join.<locals>.<genexpr>q   s%     H<aavay11<s   $')joinrange)rQ   ncolsrI   rR   s   `r"   _jointabulate.<locals>._joinp   s    xxH5<HHHr$   c              3  ,   #    U  H
  nS U-  v   M     g7f)rB   N )rO   ws     r"   rS   tabulate.<locals>.<genexpr>u   s     )&Qq&s   c              3  4   >#    U  H  nT" U5      v   M     g 7frM   r[   )rO   rowrX   s     r"   rS   r]   w   s     0xsxs   
)rQ   Sequence[str]returnrC   )	r   rD   rV   rG   	enumerater7   listrU   extend)rowsheadersrI   rE   r_   rP   str_rowshcelllinesrX   rW   rR   s     `       @@@r"   tabulaterl   V   s     1}7	{CDDLE\`!\`UX5<P<aSXsv2y	9<P\`  ! &&gc!fg&F ~GAF1Is4y1F1I & I I 	d7m)&))E 
LL0x0099U! 	Q! 's   D')D"%D'3D-"D')r#   r@   rl   )r   zint | floatr   rC   rb   rC   )r9   r   rb   rC   )r   objectrE   r   rb   rC   )
rf   zIterable[Sequence[object]]rg   ra   rI   rC   rE   r   rb   rC   )__doc__
__future__r   r8   collections.abcr   r   r   __annotations__r#   r2   r@   rG   rl   __all__r[   r$   r"   <module>rs      s    * "  . <
595  @E  >95 $ "
$"" 
	"
 " 	"J :r$   