3. Changelog¶
3.1. Unreleased¶
3.2. 4.0.1 - 2023-02-05¶
3.2.1. Fixed¶
Removed a nasty memory leak that would cause every number returned from
fastnumbers
to never get freed.
3.3. 4.0.0 - 2023-02-01¶
3.3.1. Added¶
Added
check_real
,check_float
,check_int
, andcheck_intlike
to provide a more flexible interface thanisreal
,isfloat
,isint
, andisintlike
, respectively (Issues #37 and #39)Added
try_real
,try_float
,try_int
, andtry_forceint
to provide a more flexible interface thanfast_real
,fast_float
,fast_int
, andfast_forceint
, respectively (Issues #37 and #40)Added Python 3.11 support
3.3.2. Changed¶
query_type
now setsallow_underscores
toFalse
by defaultAll functions now use use
METH_FASTCALL
to pass arguments from Python to C (Issue #59)Always parse integers using
int64_t
instead of usinglong
to ensure we can always quickly parse at least 18 digitsParsing floats now always uses the fast and robust parser ``fast_float::from_chars()` <https://github.com/fastfloat/fast_float>`_ (Issues #57 and #28)
3.3.3. Deprecated¶
isreal
,isfloat
,isint
, andisintlike
are deprecated in favor ofcheck_real
,check_float
,check_int
, andcheck_intlike
, though they will never be removed from the APIfast_real
,fast_float
,fast_int
, andfast_forceint
are deprecated in favor oftry_real
,try_float
,try_int
, andtry_forceint
, though they will never be removed from the API
3.3.4. Removed¶
Support for Python 3.6
Removed the undocumented
dig
,max_exp
,min_exp
, andmax_int_len
module-level constants, as they are now meaningless
3.4. 3.2.1 - 2021-11-02¶
No changes - needed a new release to fix a deployment issue
3.5. 3.2.0 - 2021-11-01¶
3.5.1. Added¶
Support for ARM wheels (@odidev, issues #48, #49)
Support for Python 3.10 (issue #50)
Full coverage of mypy type-checking (issue #51)
3.5.2. Removed¶
Support for Python 3.5
3.6. 3.1.0 - 2020-11-21¶
3.6.1. Added¶
query_type
function to determine what as typefastnumbers
will interpret a given input
3.6.2. Fixed¶
Support for Python 3.9 (eliminate use of private Python C function that is now hidden in 3.9) (issue #43)
3.7. 3.0.0 - 2020-01-06¶
3.7.1. Added¶
Support and tests for Python 3.8
Text to highlight that
fastnumbers
is not always faster that native Pythonon_fail
option that is identical tokey
, but has a more descriptive nameWindows testing to Travis-CI
Code quality checks to Travis-CI
Deployment from Travis-CI
RELEASING.md
3.7.2. Changed¶
Cleaned up all test code so that it no longer includes unused code and also conformes to flake8/black
Near-complete re-write of the README, hopefully to make the functionality of
fastnumbers
clearer, to support better navigation, and to better highlight caveats.Made all named options keyword-only except for
default
3.7.3. Deprecated¶
key
function (it will forever remain allowed, but is “hidden” and cannot be given withon_fail
)
3.7.4. Fixed¶
Bug where the
coerce
option ofreal()
was ignoredImproved testing reproducibility by pinning all test dependencies
3.7.5. Removed¶
Support for Python 2.7 and Python 3.4
Appveyor service
3.8. 2.2.1 - 2019-03-25¶
3.8.1. Fixed¶
Formatting docstring
Package metadata
3.9. 2.2.0 - 2019-03-24¶
3.9.1. Changed¶
Add
allow_underscores
option to toggle whether or not underscores are allowed inside numbers on Python >= 3.6Update CHANGELOG format to style from https://keepachangelog.com/
Build system now uses pip in stead of pipenv (issue #22)
Simplify tox.ini file
3.10. 2.1.1 - 2018-08-19¶
3.10.1. Added¶
A high-level description of the fastnumbers algorithm in the documentation.
3.10.2. Fixed¶
Compile error on FreeBSD where fastnumbers’
"string.h"
shadowed the system"string.h"
.
3.11. 2.1.0 - 2018-08-03¶
3.11.1. Changed¶
Speedup of conversions of ASCII-like unicode in Python 3.
Speedup of conversions for large integers and large floats - fastnumbers should now be at least as fast as built-in functions.
Restructure code base, hopefully improving simplicity.
3.11.2. Fixed¶
Bug in converting unicode numbers on Python 3.7.
3.12. 2.0.5 - 2018-07-01¶
3.12.1. Changed¶
Source files are sorted before compilation.
3.12.2. Fixed¶
Bug in
fast_real
that resulted in anOverflowError
when given very large int-like floats.
3.13. 2.0.4 - 2018-05-18¶
3.13.1. Fixed¶
Install error on old versions of setuptools.
3.14. 2.0.3 - 2018-05-14¶
3.14.1. Added¶
``bumpversion` <https://github.com/c4urself/bump2version>`_ infrastrucutre.
3.14.2. Changed¶
Reorganized testing and development infrastructure.
Development dependencies are now defined using Pipfile.
3.15. 2.0.2 - 2017-11-11¶
3.15.1. Added¶
Added testing for Python 3.7.
3.15.2. Changed¶
Updated docstrings.
Improved timing documentation.
3.16. 2.0.1 - 2017-04-30¶
3.16.1. Fixed¶
Bug in decimal digit limit on GCC.
3.17. 2.0.0 - 2017-04-30¶
3.17.1. Added¶
Support for Python 3.6 underscores.
Drop-in replacements for the built-in
int()
andfloat()
functions.Appveyor testing to ensure no surprises on Windows.
3.17.2. Changes¶
Incorporated unit tests from Python’s testing library to ensure that any input that Python can handle will also be handled the same way by
fastnumbers
.Revamped documentation.
Refactored internal mechanism for assessing overflow to be faster in the most common cases.
3.17.3. Removed¶
Dropped support for Python 2.6.
3.18. 1.0.0 - 2016-04-23¶
3.18.1. Changed¶
“coerce” in
fast_real
now applies to any input, not just numeric; the default is now True instead of False.Now all ASCII whitespace characters are stripped by fastnumbers
Typechecking is now more forgiving
fastnumbers now checks for errors when converting between numeric types
Testing now includes Python 2.6.
3.18.2. Fixed¶
Bug where very small numbers are not converted properly
Unicode handling on Windows.
Python2.6 on Windows.
3.18.3. Removed¶
Removed
safe_*
functions (which were deprecated since version 0.3.0)
3.19. 0.7.4 - 2016-03-19¶
3.19.1. Added¶
The
coerce
option tofast_real
.
3.20. 0.7.3 - 2016-03-08¶
3.20.1. Changed¶
Newline is now considered to be whitespace (for consistency with the builtin
float
andint
).
3.21. 0.7.2 - 2016-03-07¶
3.21.1. Fixed¶
Overflow bug in exponential parts of floats.
3.22. 0.7.1 - 2016-02-29¶
3.22.1. Added¶
key
function option to transform invalid input arguments.
3.22.2. Fixed¶
Compilation bug with MSVC.
3.23. 0.7.0 - 2016-01-18¶
3.23.1. Changed¶
Sped up functions by eliminating an unnecessary string copy.
Broke all functions into smaller components, eliminating a lot of duplication.
Improved documentation.
3.24. 0.6.2 - 2015-11-01¶
3.24.1. Fixed¶
Bug that caused a SystemError exception to be raised on Python 3.5 if a very large int was passed to the “fast” functions.
3.25. 0.6.1 - 2015-10-29¶
3.25.1. Added¶
tox.ini
3.25.2. Changed¶
Sped up unit testing.
3.25.3. Fixed¶
Segfault on Python 3.5 that seemed to be related to a change in the PyObject_CallMethod C function.
3.26. 0.6.0 - 2015-10-27¶
3.26.1. Added¶
The
nan
andinf
options tofast_real
andfast_float
. These options allow alternate return values in the case of nan or inf, respectively.
3.26.2. Changed¶
Improved documentation.
Improved testing.
3.26.3. Fixed¶
Fixed issue where giving a default of None would be ignored.
3.27. 0.5.2 - 2015-06-11¶
3.27.1. Fixed¶
Compile error with Visual Studio compilers.
3.28. 0.5.1 - 2015-06-04¶
3.28.1. Changed¶
Made handling of Infinity and NaN for
fast_int
andfast_forceint
consistent with thebuilt-in
int function.
3.28.2. Fixed¶
Solved rare segfault when parsing Unicode input.
3.29. 0.5.0 - 2015-05-12¶
3.29.1. Added¶
Added
num_only
option for checker functions.
3.29.2. Changed¶
Made
default
the first optional argument instead ofraise_on_invalid\
for conversion functions.
3.30. 0.4.0 - 2015-05-03¶
3.30.1. Added¶
Support for conversion of single Unicode characters that represent numbers and digits.
3.31. 0.3.0 - 2015-04-23¶
3.31.1. Changed¶
Updated all unit testing to use the
hypothesis
module, which results in better test coverage.Updated the
fast_*
functions to check if an overflow loss of precision has occurred, and if so fall back on the more accurate number conversion method.
3.31.2. Deprecated¶
In response to the above change, the
safe_*
functions are now deprecated, and internally now use the same code as thefast_*
functions.
3.32. 0.2.0 - 2014-09-03¶
3.32.1. Added¶
A
default
option to the conversion functions.
3.33. 0.1.4 - 2014-08-12¶
3.33.1. Changed¶
The method to catch corner-cases like ‘.’, ‘+’, ‘e’, etc. has been reworked to be more general… case-by-case patches should no longer be needed.
3.33.2. Fixed¶
Bug where ‘.’ was incorrectly identified as a valid float/int and converted to 0. This bug only applied to the
fast_*
andis*
functions.
3.34. 0.1.3 - 2014-08-12¶
3.34.1. Fixed¶
Bug where ‘e’ and ‘E’ were incorrectly identified as a valid float/int and converted to 0. This bug only applied to the
fast_*
andis*
functions.
3.35. 0.1.2 - 2014-08-12¶
3.35.1. Fixed¶
Bug where ‘+’ and ‘-’ were incorrectly identified as a valid float/int and converted to 0. This bug only applied to the
fast_*
andis*
functions.Bug where
safe_forceint
did not handlenan
correctly.
3.36. 0.1.1 - 2014-08-11¶
3.36.1. Added¶
Support for
inf
andnan
3.37. 0.1.0 - 2014-08-10¶
Initial release of
fastnumbers