
    xj*                        d Z ddlmZ ddZdS )u  Small shared size-formatting helpers for CLI/agent output.

Sibling of ``hermes_cli.timefmt`` (same extraction rationale: a tiny
purpose-named module lightweight consumers can import without dragging in
the CLI surface). Replaces six near-identical private byte formatters.

Two in-repo formatters intentionally do NOT delegate here:

* ``hermes_cli/session_recovery.py`` uses binary suffixes (KiB/MiB/GiB)
  throughout its recovery report — a deliberate, self-consistent style.
* ``gateway/platforms/qqbot/chunked_upload.py`` renders bytes with one
  decimal ("100.0 B", pinned by tests) inside a self-contained upload
  protocol module.
    )annotationsreturnstrc                    	 t          |           }n# t          t          f$ r Y dS w xY w|dk     rt          |           dS dD ]}|dz  }|dk     r
|dd| c S |dz  ddS )	u)  1234567 -> '1.2 MB' (B/KB/MB/GB/TB; integer bytes, one decimal above).

    Accepts anything ``float()`` accepts; returns ``"?"`` for None or
    unparseable input so display call sites never raise (contract inherited
    from doctor's original copy — its stats dict tolerates None fields).
    ?i   z B)KBMBGBg      @z.1f z TB)float	TypeError
ValueErrorint)nsizeunits      6/home/agent/.hermes/hermes-agent/hermes_cli/sizefmt.pyformat_bytesr      s    Qxxz"   ssd{{d))" ( ($;;'''''''' Vm$$$$$s    ''N)r   r   )__doc__
__future__r   r        r   <module>r      sA     # " " " " "% % % % % %r   