6. Changelog¶
6.1. Unreleased¶
6.2. 7.1.1 - 2021-01-24¶
6.2.1. Changed¶
Use GitHub Actions instead of Travis-CI (issue #125)
No longer pin testing dependencies (issue #126)
6.2.2. Fixed¶
Correct a minor typo (@madphysicist, issue #127)
6.3. 7.1.0 - 2020-11-19¶
6.3.1. Added¶
os_sorted,os_sort_keygen, andos_sort_keyto better support sorting like the file browser on the current operating system - this closes the long-standing issue #41Support for Python 3.9 (@swt2c, issue #119)
6.3.2. Changed¶
MacOS unit tests run on native Python
Treate
NonelikeNaNinternally to avoidTypeError(issue #117)No longer fail tests every time a new Python version is released (issue #122)
6.3.3. Fixed¶
Various typos, missing figures, and out-of-date information in the “How it works”
Fix typo in CHANGELOG (@graingert, issue #113)
Updated “How it works” to account for Pandas updates (@kuraga, issue #116)
6.4. 7.0.1 - 2020-01-27¶
6.4.1. Fixed¶
Bug where that caused incorrect sorting when using locales that have a
"."character as the thousands separator.
6.5. 7.0.0 - 2020-01-08¶
6.5.1. Added¶
6.5.2. Changed¶
Updated auxillary shell scripts to be written in python, and added ability to call these from
toxImproved Travis-CI experience
Update testing dependency versions
6.5.3. Removed¶
Support for Python 2
6.6. 6.2.0 - 2019-11-13¶
6.6.2. Changed¶
index_natsortedinternally now uses tuples for index-element pairs instead of listsAdded a TOC to the README
Python 3.4 is no longer included in testing
6.6.3. Fixed¶
Pin testing dependencies to prevent CI breaking due to third-party library changes
6.6.4. Removed¶
Introduction page in documentation
6.7. 6.1.0 - 2019-11-09¶
6.7.1. Added¶
Expose
numeric_regex_chooseras a public function for ease in making key functionsExample in the documentation on how to sort numbers with units
Automated testing support for macos and Windows (issue #91)
6.7.2. Changed¶
Update CHANGELOG format to style from https://keepachangelog.com/ (issue #92)
6.7.3. Fixed¶
Removed dependency on
sudoin TravisCI configuration (@hugovk, issue #99)Documentation typos (@jdufresne, issue #94) (@cpburnz, issue #95)
6.8. 6.0.0 - 2019-02-04¶
6.8.1. Changed¶
Simply Travis-CI configuration (@jdufresne, issue #88)
6.8.3. Removed¶
Drop support for Python 2.6 and 3.3 (@jdufresne, issue #70)
Remove deprecated APIs (kwargs
number_type,signed,exp,as_path,py3_safe; enumsns.TYPESAFE,ns.DIGIT,ns.VERSION; functionsversorted,index_versorted) (issue #81)Remove
pipenvas a dependency for building (issue #86)
6.9. 5.5.0 - 2018-11-18¶
6.9.1. Added¶
CHANGELOG.rstto the top-level of the repository (issue #85)
6.9.2. Changed¶
Documentation, packaging, and CI cleanup (@jdufresne, issues #69, #71-#80)
Consolidate API documentation into a single page (issue #82)
6.9.3. Deprecated¶
Formally deprecated old or misleading APIs (issue #83)
6.9.4. Fixed¶
Add back support for very old versions of setuptools (issue #84)
6.10. 5.4.1 - 2018-09-09¶
6.10.1. Changed¶
Code format and quality checking infrastructure (issue #68)
6.10.2. Fixed¶
Error in a newly added test (issues #65, #67)
6.11. 5.4.0 - 2018-09-06¶
6.11.1. Changed¶
Re-expose
natsort_keyas “public” and remove the associatedDeprecationWarningBetter developer documentation
Refactor tests (issue #66)
Bump allowed ``fastnumbers` <https://github.com/SethMMorton/fastnumbers>`_ version
6.12. 5.3.3 - 2018-07-07¶
6.12.1. Added¶
Enable Python 3.7 support in Travis-CI (issue #61)
6.12.2. Changed¶
Update docs with a FAQ and quick how-it-works (issue #60)
6.12.3. Fixed¶
StopIterationerror in the testing code
6.13. 5.3.2 - 2018-05-17¶
6.13.1. Fixed¶
Bug that prevented install on old versions of
setuptools(issues #55, #56)Revert layout from
src/natsort/back tonatsort/to make user testing simpler (issues #57, #58)
6.14. 5.3.1 - 2018-05-14¶
6.14.1. Added¶
``bumpversion` <https://github.com/c4urself/bump2version>`_ infrastructure
Extras can be installed by “[]” notation
6.14.2. Changed¶
No bugfixes or features, just infrastructure and installation updates
Move to defining dependencies with
PipfileDevelopment layout is now
src/natsort/instead ofnatsort/
6.15. 5.3.0 - 2018-04-20¶
6.15.1. Added¶
Ability to consider unicode-decimal numbers as numbers (issues #52, #54)
6.15.2. Fixed¶
Bug in assessing ``fastnumbers` <https://github.com/SethMMorton/fastnumbers>`_ version at import-time (@hholzgra, issues #51, #53)
6.17. 5.1.1 - 2017-11-11¶
6.17.1. Added¶
Additional unicode number support for Python 3.7
Information on how to install and test (issue #46)
6.20. 5.0.2 - 2017-01-02¶
6.20.1. Added¶
Additional unicode number support for Python 3.6
“how does it work?” section to the documentation
6.20.2. Changed¶
Renamed several internal functions and variables to improve clarity
Improved documentation examples
6.21. 5.0.1 - 2016-06-04¶
6.21.1. Added¶
The
nsenum attributes can now be imported from the top-level namespace
6.21.2. Fixed¶
Bug with the
from natsort import *mechanismBug with using
natsortwithpython -OO(issues #38, #39)
6.22. 5.0.0 - 2016-05-08¶
6.22.1. Added¶
chain_functionsfunction for convenience in creating a complex user-givenkeyfrom several existing functions
6.22.2. Changed¶
ns.LOCALE/humansortednow accounts for thousands separators (issue #36)Refactored entire codebase to be more functional (as in use functions as units). Previously, the code was rather monolithic and difficult to follow. The goal is that with the code existing in smaller units, contributing will be easier (issue #37)
Increased speed of execution (came for free with the new functional approach because the new factory function paradigm eliminates most
ifbranches during execution). For the most cases, the code is 30-40% faster than version 4.0.4. If usingns.LOCALEorhumansorted, the code is 1100% faster than version 4.0.4Improved clarity of documentaion with regards to locale-aware sorting
6.22.3. Deprecated¶
ns.TYPESAFEoption as it is now always on (due to a new iterator-based algorithm, the typesafe function is now cheap)
6.23. 4.0.4 - 2015-11-01¶
6.23.1. Changed¶
Improved coverage of unit tests
Unit tests use new and improved hypothesis library
6.23.2. Fixed¶
Compatibility issues with Python 3.5
6.26. 4.0.1 - 2015-06-04¶
6.26.1. Added¶
Support for sorting NaN by internally converting to -Infinity or +Infinity (issue #27)
6.27. 4.0.0 - 2015-05-17¶
6.27.1. Changed¶
Made default behavior of
natsortsearch for unsigned ints, rather than signed floats. This is a backwards-incompatible change but in 99% of use cases it should not require any end-user changes (issue #20)Improved handling of locale-aware sorting on systems where the underlying locale library is broken (issue #34))
Greatly improved all unit tests by adding the
hypothesislibrary
6.28. 3.5.6 - 2015-04-06¶
6.28.1. Added¶
UNGROUPLETTERSalgorithm to get the case-grouping behavior of an ordinal sort when usingLOCALE(issue #23)Convenience functions
decoder,as_ascii, andas_utf8for dealing with bytes types
6.29. 3.5.5 - 2015-04-04¶
6.29.1. Added¶
realsortedandindex_realsortedfunctions for forward-compatibility with >= 4.0.0
6.29.2. Changed¶
Made explanation of when to use
TYPESAFEmore clear in the docs
6.30. 3.5.4 - 2015-04-02¶
6.30.1. Fixed¶
Bug where a
TypeErrorwas raised if a string containing a leading number was sorted with alpha-only strings whenLOCALEis used (issue #22)
6.31. 3.5.3 - 2015-03-26¶
6.31.1. Changed¶
Documentation updates to better describe locale bug, and illustrate upcoming default behavior change
Internal improvements, including making test suite more granular
6.31.2. Fixed¶
Bug where
--reverse-filteroption in shell script was not getting checked for correctness
6.32. 3.5.2 - 2015-01-13¶
6.32.1. Added¶
A
pathlib.Pathobject is converted to astrifns.PATHis enabled (issue #16)
6.33. 3.5.1 - 2014-09-25¶
6.33.1. Changed¶
Refactored modules so that only the public API was in
natsort.pyandns_enum.pyRefactored all import statements to be absolute, not relative
6.33.2. Fixed¶
Bug that caused list/tuples to fail when using
ns.LOWECASEFIRSTorns.IGNORECASE(issue #15)
6.34. 3.5.0 - 2014-09-02¶
6.34.1. Added¶
algargument to thenatsortfunctions. This argument accepts an enum that is used to indicate the options the user wishes to use. Thenumber_type,signed,exp,as_path, andpy3_safeoptions are being deprecated and will become (undocumented) keyword-only options innatsortversion 4.0.0The
humansortedconvenience function as a convenience to locale-aware sortingThe user can now modify how
natsorthandles the case of non-numeric characters (issue #14)The user can now instruct
natsortto use locale-aware sorting, which allowsnatsortto perform true “human sorting” (issue #14)Locale functionality to the shell script
6.35. 3.4.1 - 2014-08-12¶
6.35.1. Changed¶
natsortwill now use the ``fastnumbers` <https://github.com/SethMMorton/fastnumbers>`_ module if it is installed. This gives up to an extra 30% boost in speed over the previous performance enhancementsMade documentation point to more
natsortresources, and also added a new example in the examples section
6.36. 3.4.0 - 2014-07-19¶
6.36.1. Added¶
natsort_keygenfunction that will generate a wrapped version ofnatsort_keythat is easier to call.natsort_keyis now set to deprecate at natsort version 4.0.0as_pathoption tonatsorted& co. that will try to treat input strings as filepaths. This will help yield correct results for OS-generated inputs like['/p/q/o.x', '/p/q (1)/o.x', '/p/q (10)/o.x', '/p/q/o (1).x'](issue #3)order_by_indexfunction to help in using the output ofindex_natsortedandindex_versortedreverseoption tonatsorted& co. to make it’s API more similar to the builtin ‘sorted’More unit tests
Auxillary test code that helps in profiling and stress-testing
Support for coveralls.io
6.36.2. Changed¶
Massive performance enhancements for string input (1.8x-2.0x), at the expense of reduction in speed for numeric input (~2.0x) - note that sorting numbersstill only takes 0.6x the time of sorting strings
Entire codebase is now PyFlakes and PEP8 compliant
Reworked the documentation, moving most of it to PyPI’s hosting platform
6.36.3. Fixed¶
Bug that caused user’s options to the
natsort_keyto not be passed on to recursive calls ofnatsort_key(issue #12)
6.37. 3.3.0 - 2014-06-28¶
6.37.1. Added¶
versortedmethod for more convenient sorting of versions (issue #11)Unit test coverage (99%)
6.37.2. Changed¶
Updated command-line tool
--number_typeoption with ‘version’ and ‘ver’ to make it more clear how to sort version numbersMoved unit-testing mechanism from being docstring-based to actual unit tests in actual functions (issue #10)
Made docstrings for public functions mirror the README API
Connected
natsortdevelopment to Travis-CI to help ensure quality releases
6.38. 3.2.1 - 2014-06-20¶
6.38.1. Fixed¶
Re-“Fixed” unorderable types issue on Python 3.x - this workaround is for when the problem occurs in the middle of the string (issue #7 again)
6.39. 3.2.0 - 2014-05-07¶
6.39.1. Fixed¶
“Fixed” unorderable types issue on Python 3.x with a workaround that attempts to replicate the Python 2.x behavior by putting all the numbers (or strings that begin with numbers) first (issue #7)
6.39.2. Removed¶
Now explicitly excluding
__pycache__from releases by adding a prune statement to MANIFEST.in
6.40. 3.1.2 - 2014-05-05¶
6.40.1. Added¶
setup.cfgto support universal wheels (issue #6)Python 3.0 and Python 3.1 as requiring the argparse module
6.41. 3.1.1 - 2014-03-01¶
6.41.1. Added¶
Ability to sort lists of lists (issue #5)
6.41.2. Changed¶
Cleaned up import statements
6.42. 3.1.0 - 2014-01-20¶
6.42.1. Added¶
signedandexpoptions to allow finer tuning of the sortingDoctests
New shell script options that correspond to
signedandexpIn the shell script the user can now specify multiple numbers to exclude or multiple ranges
6.42.2. Changed¶
Entire codebase now works for both Python 2 and Python 3 without needing to run
2to3Updated all doctests
Further simplified the
natsortbase code by removing unneeded functions.Simplified documentation where possible
Improved the shell script code
Made the shell script documentation less “path”-centric to make it clear it is not just for sorting file paths
6.42.3. Removed¶
The shell script filesystem-based options because these can be achieved better though a pipeline by which to filter
6.43. 3.0.2 - 2013-10-01¶
6.43.1. Changed¶
Made float, int, and digit searching algorithms all share the same base function
Made the
__version__variable available when importing the module
6.43.2. Fixed¶
Outdated comments
6.44. 3.0.1 - 2013-08-15¶
6.44.1. Added¶
Support for unicode strings (issue #2)
6.44.2. Fixed¶
Empty string removal function
6.44.3. Removed¶
Extraneous
string2intfunction
6.45. 3.0.0 - 2013-07-13¶
6.45.1. Added¶
A
number_typeargument to the sorting functions to specify how liberal to be when deciding what a number is
6.45.2. Changed¶
Reworked the documentation
6.46. 2.2.0 - 2013-06-25¶
6.46.1. Added¶
keyattribute tonatsortedandindex_natsortedso that it mimics the functionality of the built-insorted(issue #1)Tests to reflect the new functionality, as well as tests demonstrating how to get similar functionality using
natsort_key
6.47. 2.1.0 - 2012-12-05¶
6.47.1. Changed¶
Reorganized package
Now using a platform independent shell script generator (
entry_pointsfrom distribute)Can now execute
natsortfrom command line withpython -m natsortas well
6.48. 2.0.2 - 2012-11-30¶
6.48.1. Added¶
The
use_2to3option tosetup.pyInclude
distribute_setup.pyto the distributionDependency to the
argparsemodule (for python2.6)