Skip to content

humanreadable is a Python library to convert human-readable values to other units.

License

Notifications You must be signed in to change notification settings

thombashi/humanreadable

Repository files navigation

humanreadable is a Python library to convert human-readable values to other units.

PyPI package version Supported Python implementations CI status of Linux/macOS/Windows Test coverage
  • time (days, hours, minutes, seconds, etc.)
  • bits per second
Sample Code:
import humanreadable as hr

print("\n[Examples: humanreadable.Time]")
value = "120 sec"
print(f"'{value}' to msecs -> {hr.Time(value).milliseconds}")
print(f"'{value}' to minutes -> {hr.Time(value).minutes}")

value = "12 min 40 sec"
print(f"'{value}' to seconds -> {hr.Time(value).seconds}")

print("\n[Examples: humanreadable.BitsPerSecond]")
value = "1 Gbps"
print(f"'{value}' to Mbps -> {hr.BitsPerSecond(value).mega_bps}")
print(f"'{value}' to Kbps -> {hr.BitsPerSecond(value).kilo_bps}")
print(f"'{value}' to Kibps -> {hr.BitsPerSecond(value).kibi_bps}")
Output:
[Examples: humanreadable.Time]
'120 sec' to msecs -> 120000.0
'120 sec' to minutes -> 2.0
'12 minutes 40 seconds' to seconds -> 760.0

[Examples: humanreadable.BitsPerSecond]
'1 Gbps' to Mbps -> 1000.0
'1 Gbps' to Kbps -> 1000000.0
'1 Gbps' to Kibps -> 976562.5
Sample Code:
import humanreadable as hr

t = hr.Time("400", default_unit=hr.Time.Unit.SECOND)
print(t.to_humanreadable())
print(t.to_humanreadable(style="short"))
Output:
6 minutes 40 seconds
6m 40s

Unit for an instance is determined by input value. If a valid unit is not found, default_unit will be used for the instance (defaults to None).

Sample Code:
import humanreadable as hr

print(hr.Time("1", default_unit=hr.Time.Unit.SECOND))
Output:
1.0 seconds
Available units for humanreadable.Time
Unit Available unit specifiers (str)
days d/day/days
hours h/hour/hours
minutes m/min/mins/minute/minutes
seconds s/sec/secs/second/seconds
milliseconds ms/msec/msecs/millisecond/milliseconds
microseconds us/usec/usecs/microsecond/microseconds
Available units for humanreadable.BitsPerSecond
Unit Available unit specifiers (str)
Kbps [kK]bps/[kK]bits?(/|\s?per\s?)(s|sec|second)
Kibps [kK]ibps/[kK]ibits?(/|\s?per\s?)(s|sec|second)
Mbps [mM]bps/[mM]bits?(/|\s?per\s?)(s|sec|second)
Mibps [mM]ibps/[mM]ibits?(/|\s?per\s?)(s|sec|second)
Gbps [gG]bps/[gG]bits?(/|\s?per\s?)(s|sec|second)
Gibps [gG]ibps/[gG]ibits?(/|\s?per\s?)(s|sec|second)
Tbps [tT]bps/[tT]bits?(/|\s?per\s?)(s|sec|second)
Tibps [tT]ibps/[tT]ibits?(/|\s?per\s?)(s|sec|second)
bps bps/bits?(/|\s?per\s?)(s|sec|second)
pip install humanreadable
sudo add-apt-repository ppa:thombashi/ppa
sudo apt update
sudo apt install python3-humanreadable