4. Changelog

4.1. 08-19-2018 v. 2.1.1

  • Fix compile error on FreeBSD where fastnumbers’ “string.h” shadowed the system “string.h”.
  • Add a high-level description of the fastnumbers algorithm in the documentation.

4.2. 08-03-2018 v. 2.1.0

  • Fix bug in converting unicode numbers on Python 3.7.
  • Restructure code base, hopefully improving simplicity.
  • 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.

4.3. 07-01-2018 v. 2.0.5

  • Fix bug in fast_real that resulted in an OverflowError when given very large int-like floats.
  • Source files are sorted before compilation.

4.4. 05-18-2018 v. 2.0.4

  • Fix install error on old versions of setuptools.

4.5. 05-14-2018 v. 2.0.3

  • Reorganized testing and development infrastructure.
  • Add bumpversion infrastrucutre.
  • Development dependencies are now defined using Pipfile.

4.6. 11-11-2017 v. 2.0.2

  • Updated docstrings.
  • Improved timing documentation.
  • Added testing for Python 3.7.

4.7. 04-30-2017 v. 2.0.1

  • Fixed bug in decimal digit limit on GCC.

4.8. 04-30-2017 v. 2.0.0

  • Dropped support for Python 2.6.
  • Added support for Python 3.6 underscores.
  • Added drop-in replacements for the built-in int() and float() functions.
  • 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.
  • Added Appveyor testing to ensure no surprises on Windows.
  • Revamped documentation.
  • Refactored internal mechanism for assessing overflow to be faster in the most common cases.

4.9. 04-23-2016 v. 1.0.0

  • “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
  • Fixed bug where very small numbers are not converted properly
  • Testing now includes Python 2.6.
  • Removed safe_* functions (which were deprecated since version 0.3.0)
  • Fixed unicode handling on Windows.
  • Fixed Python2.6 on Windows.

4.10. 03-19-2016 v. 0.7.4

  • Added the “coerce” option to fast_real.

4.11. 03-08-2016 v. 0.7.3

  • Newline is now considered to be whitespace (for consistency with the builtin float and int).

4.12. 03-07-2016 v. 0.7.2

  • Fixed overflow bug in exponential parts of floats.

4.13. 02-29-2016 v. 0.7.1

  • Fixed compilation bug with MSVC.
  • Added “key” function to transform invalid input arguments.

4.14. 01-18-2016 v. 0.7.0

  • Broke all functions into smaller components, eliminating a lot of duplication.
  • Sped up functions by eliminating an unnecessary string copy.
  • Improved documentation.

4.15. 11-01-2015 v. 0.6.2

  • 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.

4.16. 10-29-2015 v. 0.6.1

  • Fixed segfault on Python 3.5 that seemed to be related to a change in the PyObject_CallMethod C function.
  • Sped up unit testing.
  • Added tox.ini.

4.17. 10-27-2015 v. 0.6.0

  • Fixed issue where giving a default of None would be ignored.
  • Added the “nan” and “inf” options to fast_real and fast_float. These options allow alternate return values in the case of nan or inf, respectively.
  • Improved documentation.
  • Improved testing.

4.18. 06-11-2015 v. 0.5.2

  • Fixed compile error Visual Studio compilers.

4.19. 06-04-2015 v. 0.5.1

  • Solved rare segfault when parsing Unicode input.
  • Made handling of Infinity and NaN for fast_int and fast_forceint consistent with the built-in int function.

4.20. 05-12-2015 v. 0.5.0

  • Made ‘default’ first optional argument instead of ‘raise_on_invalid’ for conversion functions.
  • Added ‘num_only’ option for checker functions.

4.21. 05-03-2015 v. 0.4.0

  • Added support for conversion of single Unicode characters that represent numbers and digits.

4.22. 04-23-2015 v. 0.3.0

  • 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 the fast_* functions.
  • Updated all unit testing to use the hypothesis module, which results in better test coverage.

4.23. 09-03-2014 v. 0.2.0

  • Added a ‘default’ option to the conversion functions.

4.24. 08-12-2014 v. 0.1.4

  • Fixed bug where ‘.’ was incorrectly identified as a valid float/int and converted to 0. This bug only applied to the fast_* and is* functions.
  • 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.

4.25. 08-12-2014 v. 0.1.3

  • 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_* and is* functions.

4.26. 08-12-2014 v. 0.1.2

  • Fixed bug where ‘+’ and ‘-‘ were incorrectly identified as a valid float/int and converted to 0. This bug only applied to the fast_* and is* functions.
  • Fixed bug where ‘safe_forceint’ did not handle ‘nan’ correctly.

4.27. 08-11-2014 v. 0.1.1

  • ‘fastnumbers’ now understands ‘inf’ and ‘nan’.

4.28. 08-10-2014 v. 0.1.0

  • Initial release of ‘fastnumbers’.