shortscale
https://pypi.org/project/shortscale/
Python module to convert integers into English words.
This is the Python port of the shortscale function, originally written in JavaScript and Rust, documented here. There is a also a Go version.
The short scale, has different words for each power of 1000.
This implementation expresses positive and negative numbers from zero to thousands, millions, billions, trillions, quadrillions etc, up to 10**33 - 1.
Function
def shortscale(num: int) -> str
Example
import shortscale
# ==> four hundred and twenty billion nine hundred and ninety nine thousand and fifteen
print(shortscale.shortscale(420_000_999_015))
After installing this module, the function can also be called from the commnd line e.g.
$ shortscale 420_000_999_015
420,000,999,015 => four hundred and twenty billion nine hundred and ninety nine thousand and fifteen
$ shortscale 0xffffffff
4,294,967,295 => four billion two hundred and ninety four million nine hundred and sixty seven thousand two hundred and ninety five
Benchmarks
$ pip install -e .
Python v3.11.2 $ python tests/bench_shortscale.py
50000 calls, 5000000 bytes, 1264 ns/call
100000 calls, 10000000 bytes, 1216 ns/call
200000 calls, 20000000 bytes, 1216 ns/call
Python v3.10.9 $ python tests/bench_shortscale.py
50000 calls, 5000000 bytes, 1811 ns/call
100000 calls, 10000000 bytes, 1808 ns/call
200000 calls, 20000000 bytes, 1809 ns/call
Test
$ pip install pytest
$ pip install -e .
$ pytest
============================= test session starts ==============================
platform darwin -- Python 3.10.9, pytest-7.2.1, pluggy-1.0.0
rootdir: /Users/jldec/pub/shortscale-py
collected 1 item
tests/test_shortscale.py . [100%]
============================== 1 passed in 0.00s ===============================
Build
This assumes that access to pypi.org has been configured
pip install build twine
python -m build
python -m twine upload dist/*
Metadata
Release files for shortscale 1.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| shortscale-1.3.2.tar.gz | 5.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| shortscale-1.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.5 kB
Release files / shortscale-1.3.2.tar.gz
| Download URL | shortscale-1.3.2.tar.gz |
|---|---|
| Size | 5.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
af5197c8227478552c1f1027001fbfd2cc95ac8d5df404b35f2e27dc5cdad52e
|
|
BLAKE2b-256 checksum How to use checksums |
800974c68f4eef53b11e5595222073b2c8c269f21f76898c7624ee2ad409abbf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.16
|
Release files / shortscale-1.3.2-py3-none-any.whl
| Download URL | shortscale-1.3.2-py3-none-any.whl |
|---|---|
| Size | 6.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b3edb31e1db501c2fad7077d074bad848e3fd4f6d9157acfe193bebe6a8c0bb9
|
|
BLAKE2b-256 checksum How to use checksums |
736a911556c670a0730039776ab1a40f20698f7baf0ebbecd2c32ec56fe53f73
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.16
|