5.1.1 - 2024-12-14
- Support for Python 3.13 (issue #80)
- Support for Python 3.7
5.1.0 - 2023-11-28
- Added the
denoise
option to convert floats to int without numerical noise (issues #69 and #77) - Support for Python 3.12 (issues #73 and #75)
- The changelog now only explictly exists in the repository
5.0.1 - 2023-02-26
- Add back missing
key
option in type hints for deprecatedfast_*
functions
5.0.0 - 2023-02-25
- Added the
map
option to alltry_*
functions to enable very fast conversions of lists or other iterables (issues #61, #63 and #67) - Added
try_array
to enable very fast conversions directly to numpy arrays (issues #62 and #65)
- Move to a model where the return code is a value or error instead of a model where one has to check the error state after getting a value (issue #66)
- Significantly simplified the type annotations (by 4000+ lines!)
- Increased code coverage and fixed missing headers in codecov reaport (issue #64)
4.0.1 - 2023-02-05
- Removed a nasty memory leak that would cause every number returned
from
fastnumbers
to never get freed
4.0.0 - 2023-02-01
- 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
query_type
now setsallow_underscores
toFalse
by default- Complete rewrite into C++ (issues #45, #56, #55, and #35)
- All 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 digits - Parsing floats now always uses the fast and robust parser
fast_float::from_chars()
(issues #57 and #28)
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
- 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.2.1 - 2021-11-02
- No changes - needed a new release to fix a deployment issue
3.2.0 - 2021-11-01
- Support for ARM wheels (@odidev, issues #48 and #49)
- Support for Python 3.10 (issue #50)
- Full coverage of mypy type-checking (issue #51)
- Support for Python 3.5
3.1.0 - 2020-11-21
query_type
function to determine what as typefastnumbers
will interpret a given input
- Support for Python 3.9 (eliminate use of private Python C function that is now hidden in 3.9) (issue #43)
3.0.0 - 2020-01-06
- 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
- 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
key
function (it will forever remain allowed, but is "hidden" and cannot be given withon_fail
)
- Bug where the
coerce
option ofreal()
was ignored - Improved testing reproducibility by pinning all test dependencies
- Support for Python 2.7 and Python 3.4
- Appveyor service
2.2.1 - 2019-03-25
- Formatting docstring
- Package metadata
2.2.0 - 2019-03-24
- 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
2.1.1 - 2018-08-19
- A high-level description of the fastnumbers algorithm in the documentation.
- Compile error on FreeBSD where fastnumbers'
"string.h"
shadowed the system"string.h"
.
2.1.0 - 2018-08-03
- 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.
- Bug in converting unicode numbers on Python 3.7.
2.0.5 - 2018-07-01
- Source files are sorted before compilation.
- Bug in
fast_real
that resulted in anOverflowError
when given very large int-like floats.
2.0.4 - 2018-05-18
- Install error on old versions of setuptools.
2.0.3 - 2018-05-14
bumpversion
infrastrucutre.
- Reorganized testing and development infrastructure.
- Development dependencies are now defined using Pipfile.
2.0.2 - 2017-11-11
- Added testing for Python 3.7.
- Updated docstrings.
- Improved timing documentation.
2.0.1 - 2017-04-30
- Bug in decimal digit limit on GCC.
2.0.0 - 2017-04-30
- Support for Python 3.6 underscores.
- Drop-in replacements for the built-in
int()
andfloat()
functions. - Appveyor testing to ensure no surprises on Windows.
- 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.
- Dropped support for Python 2.6.
1.0.0 - 2016-04-23
- "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.
- Bug where very small numbers are not converted properly
- Unicode handling on Windows.
- Python2.6 on Windows.
- Removed
safe_*
functions (which were deprecated since version 0.3.0)
0.7.4 - 2016-03-19
- The
coerce
option tofast_real
.
0.7.3 - 2016-03-08
- Newline is now considered to be whitespace (for consistency with
the builtin
float
andint
).
0.7.2 - 2016-03-07
- Overflow bug in exponential parts of floats.
0.7.1 - 2016-02-29
key
function option to transform invalid input arguments.
- Compilation bug with MSVC.
0.7.0 - 2016-01-18
- Sped up functions by eliminating an unnecessary string copy.
- Broke all functions into smaller components, eliminating a lot of duplication.
- Improved documentation.
0.6.2 - 2015-11-01
- Bug that caused a SystemError exception to be raised on Python 3.5 if a very large int was passed to the "fast" functions.
0.6.1 - 2015-10-29
tox.ini
- Sped up unit testing.
- Segfault on Python 3.5 that seemed to be related to a change in the PyObject_CallMethod C function.
0.6.0 - 2015-10-27
- The
nan
andinf
options tofast_real
andfast_float
. These options allow alternate return values in the case of nan or inf, respectively.
- Improved documentation.
- Improved testing.
- Fixed issue where giving a default of None would be ignored.
0.5.2 - 2015-06-11
- Compile error with Visual Studio compilers.
0.5.1 - 2015-06-04
- Made handling of Infinity and NaN for
fast_int
andfast_forceint
consistent with thebuilt-in
int function.
- Solved rare segfault when parsing Unicode input.
0.5.0 - 2015-05-12
- Added
num_only
option for checker functions.
- Made
default
the first optional argument instead ofraise_on_invalid\
for conversion functions.
0.4.0 - 2015-05-03
- Support for conversion of single Unicode characters that represent numbers and digits.
0.3.0 - 2015-04-23
- 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.
- In response to the above change, the
safe_*
functions are now deprecated, and internally now use the same code as thefast_*
functions.
0.2.0 - 2014-09-03
- A
default
option to the conversion functions.
0.1.4 - 2014-08-12
- 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.
- Bug where '.' was incorrectly identified as a valid
float/int and converted to 0. This bug only applied to the
fast_*
andis*
functions.
0.1.3 - 2014-08-12
- 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.
0.1.2 - 2014-08-12
- 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.
0.1.1 - 2014-08-11
- Support for
inf
andnan
0.1.0 - 2014-08-10
- Initial release of
fastnumbers