3. Changelog¶
3.1. Unreleased¶
3.2. 3.0.0 - 2020-01-06¶
3.2.1. Added¶
- Support and tests for Python 3.8
- Text to highlight that
fastnumbers
is not always faster that native Python on_fail
option that is identical tokey
, but has a more descriptive name- Windows testing to Travis-CI
- Code quality checks to Travis-CI
- Deployment from Travis-CI
- RELEASING.md
3.2.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.2.3. Deprecated¶
key
function (it will forever remain allowed, but is “hidden” and cannot be given withon_fail
)
3.2.4. Fixed¶
- Bug where the
coerce
option ofreal()
was ignored - Improved testing reproducibility by pinning all test dependencies
3.2.5. Removed¶
- Support for Python 2.7 and Python 3.4
- Appveyor service
3.4. 2.2.0 - 2019-03-24¶
3.4.1. Changed¶
- Add
allow_underscores
option to toggle whether or not underscores are allowed inside numbers on Python >= 3.6 - Update CHANGELOG format to style from https://keepachangelog.com/
- Build system now uses pip in stead of pipenv (issue #22)
- Simplify tox.ini file
3.5. 2.1.1 - 2018-08-19¶
3.5.1. Added¶
- A high-level description of the fastnumbers algorithm in the documentation.
3.5.2. Fixed¶
- Compile error on FreeBSD where fastnumbers’
"string.h"
shadowed the system"string.h"
.
3.6. 2.1.0 - 2018-08-03¶
3.6.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.6.2. Fixed¶
- Bug in converting unicode numbers on Python 3.7.
3.7. 2.0.5 - 2018-07-01¶
3.7.1. Changed¶
- Source files are sorted before compilation.
3.7.2. Fixed¶
- Bug in
fast_real
that resulted in anOverflowError
when given very large int-like floats.
3.9. 2.0.3 - 2018-05-14¶
3.9.1. Added¶
- ``bumpversion` <https://github.com/c4urself/bump2version>`_ infrastrucutre.
3.9.2. Changed¶
- Reorganized testing and development infrastructure.
- Development dependencies are now defined using Pipfile.
3.10. 2.0.2 - 2017-11-11¶
3.10.1. Added¶
- Added testing for Python 3.7.
3.10.2. Changed¶
- Updated docstrings.
- Improved timing documentation.
3.12. 2.0.0 - 2017-04-30¶
3.12.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.12.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.12.3. Removed¶
- Dropped support for Python 2.6.
3.13. 1.0.0 - 2016-04-23¶
3.13.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.13.2. Fixed¶
- Bug where very small numbers are not converted properly
- Unicode handling on Windows.
- Python2.6 on Windows.
3.13.3. Removed¶
- Removed
safe_*
functions (which were deprecated since version 0.3.0)
3.15. 0.7.3 - 2016-03-08¶
3.15.1. Changed¶
- Newline is now considered to be whitespace (for consistency with
the builtin
float
andint
).
3.17. 0.7.1 - 2016-02-29¶
3.17.1. Added¶
key
function option to transform invalid input arguments.
3.17.2. Fixed¶
- Compilation bug with MSVC.
3.18. 0.7.0 - 2016-01-18¶
3.18.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.19. 0.6.2 - 2015-11-01¶
3.19.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.20. 0.6.1 - 2015-10-29¶
3.20.1. Added¶
tox.ini
3.20.2. Changed¶
- Sped up unit testing.
3.20.3. Fixed¶
- Segfault on Python 3.5 that seemed to be related to a change in the PyObject_CallMethod C function.
3.21. 0.6.0 - 2015-10-27¶
3.21.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.21.2. Changed¶
- Improved documentation.
- Improved testing.
3.21.3. Fixed¶
- Fixed issue where giving a default of None would be ignored.
3.23. 0.5.1 - 2015-06-04¶
3.23.1. Changed¶
- Made handling of Infinity and NaN for
fast_int
andfast_forceint
consistent with thebuilt-in
int function.
3.23.2. Fixed¶
- Solved rare segfault when parsing Unicode input.
3.24. 0.5.0 - 2015-05-12¶
3.24.1. Added¶
- Added
num_only
option for checker functions.
3.24.2. Changed¶
- Made
default
the first optional argument instead ofraise_on_invalid\
for conversion functions.
3.25. 0.4.0 - 2015-05-03¶
3.25.1. Added¶
- Support for conversion of single Unicode characters that represent numbers and digits.
3.26. 0.3.0 - 2015-04-23¶
3.26.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.26.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.28. 0.1.4 - 2014-08-12¶
3.28.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.28.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.29. 0.1.3 - 2014-08-12¶
3.29.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.