1. The fastnumbers
module¶
Super-fast and clean conversions to numbers.
- Source Code: https://github.com/SethMMorton/fastnumbers
- Downloads: https://pypi.python.org/pypi/fastnumbers
- Documentation: http://fastnumbers.readthedocs.io/
Please see the Timing Documentation for timing details. Check out the API.
1.1. Quick Description¶
The below examples showcase the fast_float()
function, which is
a fast conversion functions with error-handling.
Please see the API Documentation
for other functions that are available from fastnumbers
.
>>> from fastnumbers import fast_float, float as fnfloat
>>> # Convert string to a float
>>> fast_float('56.07')
56.07
>>> # Unconvertable string returned as-is by default
>>> fast_float('bad input')
'bad input'
>>> # Unconvertable strings can trigger a default value
>>> fast_float('bad input', default=0)
0
>>> # 'default' is also the first optional positional arg
>>> fast_float('bad input', 0)
0
>>> # Integers are converted to floats
>>> fast_float(54)
54.0
>>> # One can ask inf or nan to be substituted with another value
>>> fast_float('nan')
nan
>>> fast_float('nan', nan=0.0)
0.0
>>> fast_float(float('nan'), nan=0.0)
0.0
>>> fast_float('56.07', nan=0.0)
56.07
>>> # The default built-in float behavior can be triggered with
>>> # "raise_on_invalid" set to True.
>>> fast_float('bad input', raise_on_invalid=True)
Traceback (most recent call last):
...
ValueError: invalid literal for float(): bad input
>>> # A key function can be used to return an alternate value for invalid input
>>> fast_float('bad input', key=len)
9
>>> fast_float(54, key=len)
54.0
>>> # Single unicode characters can be converted.
>>> fast_float(u'\u2164') # Roman numeral 5 (V)
5.0
>>> fast_float(u'\u2466') # 7 enclosed in a circle
7.0
NOTE: If you need locale-dependent conversions, supply the fastnumbers
function of your choice to locale.atof()
.
import locale
locale.setlocale(locale.LC_ALL, 'de_DE.UTF-8')
print(atof('468,5', func=fast_float)) # Prints 468.5
1.2. Installation¶
Installation of fastnumbers
is ultra-easy. Simply execute from the
command line:
easy_install fastnumbers
or, if you have pip
(preferred over easy_install
):
pip install fastnumbers
Both of the above commands will download the source for you.
You can also download the source from http://pypi.python.org/pypi/fastnumbers, or browse the git repository at https://github.com/SethMMorton/fastnumbers.
If you choose to install from source (will need a C compiler and the Python headers), you can unzip the source archive and enter the directory, and type:
python setup.py install
If you wish to run the unit tests, enter:
python setup.py test
If you want to build this documentation, enter:
python setup.py build_sphinx
fastnumbers
requires python version 2.6 or greater
(this includes python 3.x). Unit tests are only run on 2.6, 2.7 and >= 3.3.