Skip to main content

Prefixed alternative numeric library

Project description

Documentation Status Travis-CI Build Status Coverage Status
PyPI Package latest release Supported versions Supported implementations

Overview

Prefixed provides an alternative implementation of the built-in float which supports formatted output with SI (decimal) and IEC (binary) prefixes.

>>> from prefixed import Float

>>> f'{Float(3250):.2h}'
'3.25k'

>>> '{:.2h}s'.format(Float(.00001534))
'15.34μs'

>>> '{:.2j}B'.format(Float(42467328))
'40.50MiB'

>>> f'{Float(2048):.2J}B'
'2.00KB'

Because prefixed.Float inherits from the built-in float, it behaves exactly the same in most cases.

Key differences:

  • When a math operation is performed with another real number type (float, int), the result will be a prefixed.Float instance.

  • Additional presentation types 'h', 'j', and 'J' are supported for f-strings and format().

    Type

    Meaning

    'h'

    SI format. Outputs the number with closest divisible SI prefix. (k, M, G, …)

    'j'

    IEC Format. Outputs the number with closest divisible IEC prefix. (Ki, Mi, Gi, …)

    'J'

    Short IEC Format. Same as 'j' but only a single character. (K, M, G, …)

  • When initializing from strings, SI and IEC prefixes are honored

>>> Float('2k')
Float(2000.0)

>>> Float('2Ki')
Float(2048.0)
  • An additional format flag ‘!’ is available which adds a space before the prefix

>>> f'{Float(3250):!.2h}'
'3.25 k'
  • An additional field, margin, can be specified which lowers or raises the threshold for for each prefix by the given percentage. Margin is specified before precision with the syntax %[-]digit+.

>>> f'{Float(950):.2h}'
'950.00'

>>> f'{Float(950):%-5.2h}'
'0.95k'

>>> f'{Float(1000):%5.2h}'
'1000.00'

>>> f'{Float(1050):%5.2h}'
'1.05k'

Supported Prefixes

SI (Decimal) Prefixes

Prefix

Name

Base

Y

Yotta

1024

Z

Zetta

1021

E

Exa

1018

P

Peta

1015

T

Tera

1012

G

Giga

109

M

Mega

106

k

Kilo

103

m

Milli

10-3

μ

Micro

10-6

n

Nano

10-9

p

Pico

10-12

f

Femto

10-15

a

Atto

10-18

z

Zepto

10-21

y

Yocto

10-24

IEC (Binary) Prefixes

Prefix

Name

Base

Y

Yobi

280

Z

Zebi

270

E

Exbi

260

P

Pedi

250

T

Tebi

240

G

Gibi

230

M

Mebi

220

K

Kibi

210

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prefixed-0.3.2.tar.gz (43.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

prefixed-0.3.2-py2.py3-none-any.whl (11.9 kB view details)

Uploaded Python 2Python 3

File details

Details for the file prefixed-0.3.2.tar.gz.

File metadata

  • Download URL: prefixed-0.3.2.tar.gz
  • Upload date:
  • Size: 43.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.5

File hashes

Hashes for prefixed-0.3.2.tar.gz
Algorithm Hash digest
SHA256 ca48277ba5fa8346dd4b760847da930c7b84416387c39e93affef086add2c029
MD5 fd4586c48fe19bfc8623bd191657930f
BLAKE2b-256 1a00969ad3ddffa3a5330ce18a3f4d23c243a6b0c45b7dfe8139c717898e76bf

See more details on using hashes here.

File details

Details for the file prefixed-0.3.2-py2.py3-none-any.whl.

File metadata

  • Download URL: prefixed-0.3.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.5

File hashes

Hashes for prefixed-0.3.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5e107306462d63f2f03c529dbf11b0026fdfec621a9a008ca639d71de22995c3
MD5 338663b68867307bd18bc5b4f456ad3e
BLAKE2b-256 54705356a73361214257618f2ff07afb539a44f4519db4c3112b981f910e02a1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page