NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #901 most downloaded on PyPI
Simple yet flexible natural sorting in Python.
Last release 3 years ago
no release in 18 months
Release timing varies
gaps range from 3 weeks to 10 months
Nearly every release is documented
notes for 57 of 58 stable releases
1 version withdrawn
withdrawn after publishing
14 years old
59 releases · first in 2012
Bump version: 8.3.1 → 8.4.0
Bump version: 8.3.1 → 8.4.0
This project publishes no release notes. Between 8.3.1 and 8.4.0 there were 10 commits, 7 of them substantive:
One column per quarter.
Bump version: 8.3.0 → 8.3.1
Bump version: 8.3.0 → 8.3.1
This project publishes no release notes. Between 8.3.0 and 8.3.1 there were 6 commits, 3 of them substantive:
Fix dependency for deploy step
Fix dependency for deploy step
PRESORT option to the ns enum to attain consistent
sort order in certain corner cases (issue
#149)None and NaN are sorted in a consistent order
(issue #149)str if necessary in os_sorted
(@Dobatymo, issues
#157 and
#158)fastnumbers functionality if availableThis project publishes no release notes. Between 8.2.0 and 8.3.0 there were 40 commits, 32 of them substantive:
…and 12 more.
Bump version: 8.1.0 → 8.2.0
Bump version: 8.1.0 → 8.2.0
This project publishes no release notes. Between 8.1.0 and 8.2.0 there were 11 commits, 7 of them substantive:
Bump version: 8.0.2 → 8.1.0
Bump version: 8.0.2 → 8.1.0
This project publishes no release notes. Between 8.0.2 and 8.1.0 there were 14 commits, 8 of them substantive:
Bump version: 8.0.1 → 8.0.2
Bump version: 8.0.1 → 8.0.2
This project publishes no release notes. Between 8.0.1 and 8.0.2 there were 5 commits, 2 of them substantive:
Bump version: 8.0.0 → 8.0.1
Bump version: 8.0.0 → 8.0.1
This project publishes no release notes. Between 8.0.0 and 8.0.1 there were 7 commits, 4 of them substantive:
Bump version: 7.2.0 → 8.0.0
Bump version: 7.2.0 → 8.0.0
This project publishes no release notes. Between 7.2.0 and 8.0.0 there were 3 commits, 2 of them substantive:
Bump version: 7.1.1 → 7.2.0
Bump version: 7.1.1 → 7.2.0
This project publishes no release notes. Between 7.1.1 and 7.2.0 there were 38 commits, 32 of them substantive:
…and 12 more.
Bump version: 7.1.0 → 7.1.1
Bump version: 7.1.0 → 7.1.1
os_sorted, os_sort_keygen, and os_sort_key to better support sorting like the file browser on the current operating system - this closes the long-stan
os_sorted, os_sort_keygen, and os_sort_key to better support
sorting like the file browser on the current operating system - this
closes the long-standing issue #41None like NaN internally to avoid TypeError
(issue #117)Bug where that caused incorrect sorting when using locales that have a "." character as the thousands separator.
"." character as the thousands separator.Ability to deploy directly from TravisCI (@hugovk, issue #106)
RELEASING.md (@hugovk,
issue #106)toxNothing published for this version
Support for Python 3.8 (@hugovk, issue #104)
index_natsorted internally now uses tuples for index-element pairs
instead of listsExpose numeric_regex_chooser as a public function for ease in making key functions
numeric_regex_chooser as a public function for ease in making
key functionsRemove deprecated APIs (kwargs number_type, signed, exp, as_path, py3_safe; enums ns.TYPESAFE, ns.DIGIT, ns.VERSION; functions versorted, index_versor…
number_type, signed, exp, as_path,
py3_safe; enums ns.TYPESAFE, ns.DIGIT, ns.VERSION; functions versorted,
index_versorted) (issue #81)pipenv as a dependency for building (issue
#86)Formally deprecated old or misleading APIs (issue #83)
CHANGELOG.rst to the top-level of the repository (issue
#85)Code format and quality checking infrastructure (issue #68)
Re-expose natsort_key as "public" and remove the associated DeprecationWarning
natsort_key as "public" and remove the associated DeprecationWarningfastnumbers versionEnable Python 3.7 support in Travis-CI (issue #61)
Bug that prevented install on old versions of setuptools (issues #55 and #56)
Extras can be installed by "[]" notation
bumpversion infrastructurePipfilesrc/natsort/ instead of natsort/Ability to consider unicode-decimal numbers as numbers (issues #52 and #54)
ns.NUMAFTER to cause numbers to be placed after non-numbers (issues #48 and #49)
Additional unicode number support for Python 3.7
All Unicode input is now normalized (issue #44 and
Improved development infrastructure
Additional unicode number support for Python 3.6
The ns enum attributes can now be imported from the top-level namespace
chain_functions function for convenience in creating a complex user-given key from several existing functions
chain_functions function for convenience in creating
a complex user-given key from several existing functionsns.LOCALE/humansorted now accounts for thousands separators (issue
#36)if branches
during execution). For the most cases, the code is 30-40% faster than version 4.0.4.
If using ns.LOCALE or humansorted, the code is 1100% faster than version 4.0.4ns.TYPESAFE option as it is now always on (due to a new
iterator-based algorithm, the typesafe function is now cheap)Improved coverage of unit tests
Bad install on last release (sorry guys!) (issue #30)
Consolidated under-the-hood compatibility functionality
Support for sorting NaN by internally converting to -Infinity or +Infinity (issue #27)
Made default behavior of natsort search for unsigned ints, rather than signed floats. This is a backwards-incompatible change but in 99% of use cases
natsort search 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)hypothesis libraryUNGROUPLETTERS algorithm to get the case-grouping behavior of an ordinal sort when using LOCALE (issue #23)
UNGROUPLETTERS algorithm to get the case-grouping behavior of
an ordinal sort when using LOCALE (issue
#23)decoder, as_ascii, and as_utf8 for
dealing with bytes typesrealsorted and index_realsorted functions for forward-compatibility with >= 4.0.0
realsorted and index_realsorted functions for forward-compatibility with >= 4.0.0TYPESAFE more clear in the docsBug where a TypeError was raised if a string containing a leading number was sorted with alpha-only strings when LOCALE is used (issue #22)
TypeError was raised if a string containing a leading
number was sorted with alpha-only strings when LOCALE is used (issue
#22)Documentation updates to better describe locale bug, and illustrate upcoming default behavior change
--reverse-filter option in shell script was not
getting checked for correctnessA pathlib.Path object is converted to a str if ns.PATH is enabled (issue #16)
Refactored modules so that only the public API was in natsort.py and ns_enum.py
natsort.py and ns_enum.pyns.LOWECASEFIRST
or ns.IGNORECASE (issue #15)The number_type, signed, exp, as_path, and py3_safe options are being deprecated and will become (undocumented) keyword-only options in natsort versio…
alg argument to the natsort functions. This argument
accepts an enum that is used to indicate the options the user wishes
to use. The number_type, signed, exp, as_path, and py3_safe
options are being deprecated and will become (undocumented)
keyword-only options in natsort version 4.0.0humansorted convenience function as a convenience to locale-aware sortingnatsort handles the case of non-numeric
characters (issue #14)natsort to use locale-aware sorting, which
allows natsort to perform true "human sorting" (issue
#14)natsort will now use the `fastnumbers` module if it is installed. This gives up to an extra 30% boost in speed over the previous performance enhanceme
natsort will now use the fastnumbers
module if it is installed. This gives up to an extra 30% boost in speed over
the previous performance enhancementsnatsort resources, and also added a
new example in the examples sectionnatsort_keygen function that will generate a wrapped version of natsort_key that is easier to call. natsort_key is now set to deprecate at natsort ver…
natsort_keygen function that will generate a wrapped version
of natsort_key that is easier to call. natsort_key is now set to
deprecate at natsort version 4.0.0as_path option to natsorted & 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_index function to help in using the output of
index_natsorted and index_versortedreverse option to natsorted & co. to make it's API more
similar to the builtin 'sorted'natsort_key to not be
passed on to recursive calls of natsort_key (issue
#12)versorted method for more convenient sorting of versions (issue #11)
versorted method for more convenient sorting of versions (issue
#11)--number_type option with 'version' and 'ver'
to make it more clear how to sort version numbersnatsort development to Travis-CI to help ensure quality releasesRe-"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)
"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 stri
__pycache__ from releases by adding a prune statement
to MANIFEST.insetup.cfg to support universal wheels (issue #6)
setup.cfg to support universal wheels (issue
#6)Ability to sort lists of lists (issue #5)
signed and exp options to allow finer tuning of the sorting
signed and exp options to allow finer tuning of the sortingsigned and exp2to3natsort base code by removing unneeded functions.Made float, int, and digit searching algorithms all share the same base function
__version__ variable available when importing the moduleSupport for unicode strings (issue #2)
string2int functionA number_type argument to the sorting functions to specify how liberal to be when deciding what a number is
number_type argument to the sorting functions to specify how liberal to be when
deciding what a number iskey attribute to natsorted and index_natsorted so that it mimics the functionality of the built-in sorted (issue #1)
key attribute to natsorted and index_natsorted so that it mimics the functionality
of the built-in sorted (issue #1)natsort_keyNow using a platform independent shell script generator (entry_points from distribute)
entry_points from distribute)natsort from command line with python -m natsort as wellThe use_2to3 option to setup.py
use_2to3 option to setup.pydistribute_setup.py to the distributionargparse module (for python2.6)Tests into the natsort.py file itself
Sorting algorithm to support floats (including exponentials) and basic version number support
<!---Comparison links--> [8.4.0]: https://github.com/SethMMorton/natsort/compare/8.3.1...8.4.0 [8.3.1]: https://github.com/SethMMorton/natsort/compare/8.3.0...8.3.1 [8.3.0]: https://github.com/SethMMorton/natsort/compare/8.2.0...8.3.0 [8.2.0]: https://github.com/SethMMorton/natsort/compare/8.1.0...8.2.0 [8.1.0]: https://github.com/SethMMorton/natsort/compare/8.0.2...8.1.0 [8.0.2]: https://github.com/SethMMorton/natsort/compare/8.0.1...8.0.2 [8.0.1]: https://github.com/SethMMorton/natsort/compare/8.0.0...8.0.1 [8.0.0]: https://github.com/SethMMorton/natsort/compare/7.2.0...8.0.0 [7.2.0]: https://github.com/SethMMorton/natsort/compare/7.1.1...7.2.0 [7.1.1]: https://github.com/SethMMorton/natsort/compare/7.1.0...7.1.1 [7.1.0]: https://github.com/SethMMorton/natsort/compare/7.0.1...7.1.0 [7.0.1]: https://github.com/SethMMorton/natsort/compare/7.0.0...7.0.1 [7.0.0]: https://github.com/SethMMorton/natsort/compare/6.2.0...7.0.0 [6.2.0]: https://github.com/SethMMorton/natsort/compare/6.1.0...6.2.0 [6.1.0]: https://github.com/SethMMorton/natsort/compare/6.0.0...6.1.0 [6.0.0]: https://github.com/SethMMorton/natsort/compare/5.5.0...6.0.0 [5.5.0]: https://github.com/SethMMorton/natsort/compare/5.4.1...5.5.0 [5.4.1]: https://github.com/SethMMorton/natsort/compare/5.4.0...5.4.1 [5.4.0]: https://github.com/SethMMorton/natsort/compare/5.3.3...5.4.0 [5.3.3]: https://github.com/SethMMorton/natsort/compare/5.3.2...5.3.3 [5.3.2]: https://github.com/SethMMorton/natsort/compare/5.3.1...5.3.2 [5.3.1]: https://github.com/SethMMorton/natsort/compare/5.3.0...5.3.1 [5.3.0]: https://github.com/SethMMorton/natsort/compare/5.2.0...5.3.0 [5.2.0]: https://github.com/SethMMorton/natsort/compare/5.1.1...5.2.0 [5.1.1]: https://github.com/SethMMorton/natsort/compare/5.1.0...5.1.1 [5.1.0]: https://github.com/SethMMorton/natsort/compare/5.0.3...5.1.0 [5.0.3]: https://github.com/SethMMorton/natsort/compare/5.0.2...5.0.3 [5.0.2]: https://github.com/SethMMorton/natsort/compare/5.0.1...5.0.2 [5.0.1]: https://github.com/SethMMorton/natsort/compare/5.0.0...5.0.1 [5.0.0]: https://github.com/SethMMorton/natsort/compare/4.0.4...5.0.0 [4.0.4]: https://github.com/SethMMorton/natsort/compare/4.0.3...4.0.4 [4.0.3]: https://github.com/SethMMorton/natsort/compare/4.0.2...4.0.3 [4.0.2]: https://github.com/SethMMorton/natsort/compare/4.0.1...4.0.2 [4.0.1]: https://github.com/SethMMorton/natsort/compare/4.0.0...4.0.1 [4.0.0]: https://github.com/SethMMorton/natsort/compare/3.5.6...4.0.0 [3.5.6]: https://github.com/SethMMorton/natsort/compare/3.5.5...3.5.6 [3.5.5]: https://github.com/SethMMorton/natsort/compare/3.5.4...3.5.5 [3.5.4]: https://github.com/SethMMorton/natsort/compare/3.5.3...3.5.4 [3.5.3]: https://github.com/SethMMorton/natsort/compare/3.5.2...3.5.3 [3.5.2]: https://github.com/SethMMorton/natsort/compare/3.5.1...3.5.2 [3.5.1]: https://github.com/SethMMorton/natsort/compare/3.5.0...3.5.1 [3.5.0]: https://github.com/SethMMorton/natsort/compare/3.4.1...3.5.0 [3.4.1]: https://github.com/SethMMorton/natsort/compare/3.4.0...3.4.1 [3.4.0]: https://github.com/SethMMorton/natsort/compare/3.3.0...3.4.0 [3.3.0]: https://github.com/SethMMorton/natsort/compare/3.2.1...3.3.0 [3.2.1]: https://github.com/SethMMorton/natsort/compare/3.2.0...3.2.1 [3.2.0]: https://github.com/SethMMorton/natsort/compare/3.1.2...3.2.0 [3.1.2]: https://github.com/SethMMorton/natsort/compare/3.1.1...3.1.2 [3.1.1]: https://github.com/SethMMorton/natsort/compare/3.1.0...3.1.1 [3.1.0]: https://github.com/SethMMorton/natsort/compare/3.0.2...3.1.0 [3.0.2]: https://github.com/SethMMorton/natsort/compare/3.0.1...3.0.2 [3.0.1]: https://github.com/SethMMorton/natsort/compare/3.0.0...3.0.1 [3.0.0]: https://github.com/SethMMorton/natsort/compare/2.2.0...3.0.0 [2.2.0]: https://github.com/SethMMorton/natsort/compare/2.1.0...2.2.0 [2.1.0]: https://github.com/SethMMorton/natsort/compare/2.0.2...2.1.0 [2.0.2]: https://github.com/SethMMorton/natsort/compare/2.0.1...2.0.2 [2.0.1]: https://github.com/SethMMorton/natsort/compare/2.0.0...2.0.1 [2.0.0]: https://github.com/SethMMorton/natsort/releases/tag/2.0.0
Your coding agent can read these notes before it upgrades. Set up the MCP server →