format integers as time >>> from dask.utils import format_time >>> format_time(1) '1.00 s' >>> format_time(0.001234) '1.23 ms' >>> format_time(0.00012345) '123.45 us' >>> format_time(123.456) '123.46 s' >>> format_time(1234.567) '20m 34s' >>> format_t
(n: float)
| 1656 | |
| 1657 | |
| 1658 | def format_time(n: float) -> str: |
| 1659 | """format integers as time |
| 1660 | |
| 1661 | >>> from dask.utils import format_time |
| 1662 | >>> format_time(1) |
| 1663 | '1.00 s' |
| 1664 | >>> format_time(0.001234) |
| 1665 | '1.23 ms' |
| 1666 | >>> format_time(0.00012345) |
| 1667 | '123.45 us' |
| 1668 | >>> format_time(123.456) |
| 1669 | '123.46 s' |
| 1670 | >>> format_time(1234.567) |
| 1671 | '20m 34s' |
| 1672 | >>> format_time(12345.67) |
| 1673 | '3hr 25m' |
| 1674 | >>> format_time(123456.78) |
| 1675 | '34hr 17m' |
| 1676 | >>> format_time(1234567.89) |
| 1677 | '14d 6hr' |
| 1678 | """ |
| 1679 | if n > 24 * 60 * 60 * 2: |
| 1680 | d = int(n / 3600 / 24) |
| 1681 | h = int((n - d * 3600 * 24) / 3600) |
| 1682 | return f"{d}d {h}hr" |
| 1683 | if n > 60 * 60 * 2: |
| 1684 | h = int(n / 3600) |
| 1685 | m = int((n - h * 3600) / 60) |
| 1686 | return f"{h}hr {m}m" |
| 1687 | if n > 60 * 10: |
| 1688 | m = int(n / 60) |
| 1689 | s = int(n - m * 60) |
| 1690 | return f"{m}m {s}s" |
| 1691 | if n >= 1: |
| 1692 | return f"{n:.2f} s" |
| 1693 | if n >= 1e-3: |
| 1694 | return "%.2f ms" % (n * 1e3) |
| 1695 | return "%.2f us" % (n * 1e6) |
| 1696 | |
| 1697 | |
| 1698 | def format_time_ago(n: datetime) -> str: |
no outgoing calls