diff options
author | Seth Morton <seth.m.morton@gmail.com> | 2019-03-02 14:38:25 -0800 |
---|---|---|
committer | Seth Morton <seth.m.morton@gmail.com> | 2019-03-02 23:31:09 -0800 |
commit | 9df5ea2dfb89f52ab4e08cdac4dbd28c9a8c43b6 (patch) | |
tree | e8b3c4c0ea18f379e4846ff3bce43fae58dec987 /CHANGELOG.md | |
parent | 822b46628221e0461c6cec3fdf54026f1f1491a1 (diff) | |
download | natsort-9df5ea2dfb89f52ab4e08cdac4dbd28c9a8c43b6.tar.gz |
Reformat changlog to style from https://keepachangelog.com/
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r-- | CHANGELOG.md | 390 |
1 files changed, 248 insertions, 142 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index aa6ba2f..b66dc64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,76 +1,115 @@ +## Unreleased + +### Changed + - Update CHANGELOG format to style from https://keepachangelog.com/ + ## 6.0.0 - 02-04-2019 +### Changed + - Simply Travis-CI configuration ([@jdufresne](https://github.com/jdufresne), issue #88) + +### Fixed + - Fix README rendering in PyPI ([@altendky](https://github.com/altendky), issue #89) + +### Removed - Drop support for Python 2.6 and 3.3 ([@jdufresne](https://github.com/jdufresne), issue #70) - Remove deprecated APIs (kwargs `number_type`, `signed`, `exp`, `as_path`, - `py3_safe`; enums `ns.TYPESAFE`, `ns.DIGIT`, `ns.VERSION`; functions `versorted`, - `index_versorted`) (issue #81) + `py3_safe`; enums `ns.TYPESAFE`, `ns.DIGIT`, `ns.VERSION`; functions `versorted`, + `index_versorted`) (issue #81) - Remove `pipenv` as a dependency for building (issue #86) - - Simply Travis-CI configuration ([@jdufresne](https://github.com/jdufresne), issue #88) - - Fix README rendering in PyPI ([@altendky](https://github.com/altendky), issue #89) ## 5.5.0 - 11-18-2018 - - Formally deprecated old or misleading APIs (issue #83) +### Added + - `CHANGELOG.rst` to the top-level of the repository (issue #85) + +### Changed - Documentation, packaging, and CI cleanup - ([@jdufresne](https://github.com/jdufresne), issues #69, #71-#80) + ([@jdufresne](https://github.com/jdufresne), issues #69, #71-#80) - Consolidate API documentation into a single page (issue #82) - - Add a `CHANGELOG.rst` to the top-level of the repository (issue #85) + +### Deprecated + - Formally deprecated old or misleading APIs (issue #83) + +### Fixed - Add back support for very old versions of setuptools (issue #84) ## 5.4.1 - 09-09-2018 - - Fix error in a newly added test (issues #65, #67) - - Changed code format and quality checking infrastructure (issue #68) +### Changed + - Code format and quality checking infrastructure (issue #68) + +### Fixed + - Error in a newly added test (issues #65, #67) ## 5.4.0 - 09-06-2018 +### Changed - Re-expose `natsort_key` as "public" and remove the associated `DepricationWarning` - - Add better developer documentation + - Better developer documentation - Refactor tests (issue #66) - Bump allowed [`fastnumbers`](https://github.com/SethMMorton/fastnumbers) version ## 5.3.3 - 07-07-2018 - - Update docs with a FAQ and quick how-it-works (issue #60) - - Fix a `StopIteration` error in the testing code +### Added - Enable Python 3.7 support in Travis-CI (issue #61) +### Changed + - Update docs with a FAQ and quick how-it-works (issue #60) + +### Fixed + - `StopIteration` error in the testing code + + ## 5.3.2 - 05-17-2018 - - Fix bug that prevented install on old versions of `setuptools` (issues #55, #56) +### Fixed + - Bug that prevented install on old versions of `setuptools` (issues #55, #56) - Revert layout from `src/natsort/` back to `natsort/` to make user - testing simpler (issues #57, #58) + testing simpler (issues #57, #58) ## 5.3.1 - 05-14-2018 +### Added + - [`bumpversion`](https://github.com/c4urself/bump2version) infrastructure + - Extras can be installed by "[]" notation + +### Changed - No bugfixes or features, just infrastructure and installation updates - Move to defining dependencies with `Pipfile` - Development layout is now `src/natsort/` instead of `natsort/` - - Add bumpversion infrastructure - - Extras can be installed by "[]" notation ## 5.3.0 - 04-20-2018 - - Fix bug in assessing [`fastnumbers`](https://github.com/SethMMorton/fastnumbers) - version at import-time ([@hholzgra](https://github.com/hholzgra), issues #51, #53) - - Add ability to consider unicode-decimal numbers as numbers (issues #52, #54) +### Added + - Ability to consider unicode-decimal numbers as numbers (issues #52, #54) + +### Fixed + - Bug in assessing [`fastnumbers`](https://github.com/SethMMorton/fastnumbers) + version at import-time ([@hholzgra](https://github.com/hholzgra), issues #51, #53) ## 5.2.0 - 02-14-2018 - - Add `ns.NUMAFTER` to cause numbers to be placed after non-numbers (issues #48, #49) - - Add `natcmp` function (Python 2 only) ([@rinslow](https://github.com/rinslow), issue #47) +### Added + - `ns.NUMAFTER` to cause numbers to be placed after non-numbers (issues #48, #49) + - `natcmp` function (Python 2 only) ([@rinslow](https://github.com/rinslow), issue #47) ## 5.1.1 - 11-11-2017 - - Added additional unicode number support for Python 3.7 - - Added information on how to install and test (issue #46) +### Added + - Additional unicode number support for Python 3.7 + - Information on how to install and test (issue #46) ## 5.1.0 - 08-19-2017 - - Fixed `StopIteration` warning on Python 3.6+ - ([@lykinsbd](https://github.com/lykinsbd), issues #42, #43) +### Changed - All Unicode input is now normalized (issue #44, #45) +### Fixed + - `StopIteration` warning on Python 3.6+ + ([@lykinsbd](https://github.com/lykinsbd), issues #42, #43) + ## 5.0.3 - 04-30-2017 - Improved development infrastructure @@ -78,249 +117,316 @@ ## 5.0.2 - 01-02-2017 - - Added additional unicode number support for Python 3.6 +### Added + - Additional unicode number support for Python 3.6 + - "how does it work?" section to the documentation + +### Changed - Renamed several internal functions and variables to improve clarity - Improved documentation examples - - Added a "how does it work?" section to the documentation ## 5.0.1 - 06-04-2016 - - The `ns` enum attributes can now be imported from the top-level - namespace - - Fixed a bug with the `from natsort import *` mechanism - - Fixed bug with using `natsort` with `python -OO` (issues #38, #39) +### Added + - The `ns` enum attributes can now be imported from the top-level namespace + +### Fixed + - Bug with the `from natsort import *` mechanism + - Bug with using `natsort` with `python -OO` (issues #38, #39) ## 5.0.0 - 05-08-2016 +### Added + - `chain_functions` function for convenience in creating + a complex user-given `key` from several existing functions + +### Changed - `ns.LOCALE`/`humansorted` now 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) - - Deprecated `ns.TYPESAFE` option as it is now always on (due to a new - iterator-based algorithm, the typesafe function is now cheap) + 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 `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.4 + because the new factory function paradigm eliminates most `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.4 - Improved clarity of documentaion with regards to locale-aware sorting - - Added a new `chain_functions` function for convenience in creating - a complex user-given `key` from several existing functions + +### Deprecated + - `ns.TYPESAFE` option as it is now always on (due to a new + iterator-based algorithm, the typesafe function is now cheap) ## 4.0.4 - 11-01-2015 +### Changed - Improved coverage of unit tests - Unit tests use new and improved hypothesis library - - Fixed compatibility issues with Python 3.5 + +### Fixed + - Compatibility issues with Python 3.5 ## 4.0.3 - 06-25-2015 - - Fixed bad install on last release (sorry guys!) (issue #30) +### Fixed + - Bad install on last release (sorry guys!) (issue #30) ## 4.0.2 - 06-24-2015 - - Added back Python 2.6 and Python 3.2 compatibility. Unit testing is now - performed for these versions ([@dpetzold](https://github.com/dpetzold), issue #29) +### Changed - Consolidated under-the-hood compatibility functionality +### Fixed + - Python 2.6 and Python 3.2 compatibility. Unit testing is now + performed for these versions ([@dpetzold](https://github.com/dpetzold), issue #29) + ## 4.0.1 - 06-04-2015 - - Added support for sorting NaN by internally converting to -Infinity - or +Infinity (issue #27) +### Added + - Support for sorting NaN by internally converting to -Infinity or +Infinity (issue #27) ## 4.0.0 - 05-17-2015 +### Changed - 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 it should not require any - end-user changes (issue #20) + 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)) + underlying locale library is broken (issue #34)) - Greatly improved all unit tests by adding the `hypothesis` library ## 3.5.6 - 04-06-2015 - - Added `UNGROUPLETTERS` algorithm to get the case-grouping behavior of - an ordinal sort when using `LOCALE` (issue #23) - - Added convenience functions `decoder`, `as_ascii`, and `as_utf8` for - dealing with bytes types +### Added + - `UNGROUPLETTERS` algorithm to get the case-grouping behavior of + an ordinal sort when using `LOCALE` (issue #23) + - Convenience functions `decoder`, `as_ascii`, and `as_utf8` for + dealing with bytes types ## 3.5.5 - 04-04-2015 - - Added `realsorted` and `index_realsorted` functions for - forward-compatibility with >= 4.0.0 +### Added + - `realsorted` and `index_realsorted` functions for forward-compatibility with >= 4.0.0 + +### Changed - Made explanation of when to use `TYPESAFE` more clear in the docs ## 3.5.4 - 04-02-2015 - - Fixed bug where a `TypeError` was raised if a string containing a leading - number was sorted with alpha-only strings when `LOCALE` is used (issue #22) +### Fixed + - Bug where a `TypeError` was raised if a string containing a leading + number was sorted with alpha-only strings when `LOCALE` is used (issue #22) ## 3.5.3 - 03-26-2015 - - Fixed bug where `--reverse-filter` option in shell script was not - getting checked for correctness +### Changed - Documentation updates to better describe locale bug, and illustrate - upcoming default behavior change + upcoming default behavior change - Internal improvements, including making test suite more granular +### Fixed + - Bug where `--reverse-filter` option in shell script was not + getting checked for correctness + ## 3.5.2 - 01-13-2015 - - Enhancement that will convert a `pathlib.Path` object to a `str` if - `ns.PATH` is enabled (issue #16) +### Added + - A `pathlib.Path` object is converted to a `str` if `ns.PATH` is enabled (issue #16) ## 3.5.1 - 09-25-2014 - - Fixed bug that caused list/tuples to fail when using `ns.LOWECASEFIRST` - or `ns.IGNORECASE` (issue #15) - - Refactored modules so that only the public API was in `natsort.py` and - `ns_enum.py` +### Changed + - Refactored modules so that only the public API was in `natsort.py` and `ns_enum.py` - Refactored all import statements to be absolute, not relative +### Fixed + - Bug that caused list/tuples to fail when using `ns.LOWECASEFIRST` + or `ns.IGNORECASE` (issue #15) ## 3.5.0 - 09-02-2014 - - Added the `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.0 +### Added + - `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.0 + - The `humansorted` convenience function as a convenience to locale-aware sorting - The user can now modify how `natsort` handles the case of non-numeric - characters (issue #14) + characters (issue #14) - The user can now instruct `natsort` to use locale-aware sorting, which - allows `natsort` to perform true "human sorting" (issue #14) - - The `humansorted` convenience function as a convenience to locale-aware sorting - - Updated shell script with locale functionality + allows `natsort` to perform true "human sorting" (issue #14) + - Locale functionality to the shell script ## 3.4.1 - 08-12-2014 +### Changed - `natsort` will 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 enhancements + module if it is installed. This gives up to an extra 30% boost in speed over + the previous performance enhancements - Made documentation point to more `natsort` resources, and also added a - new example in the examples section + new example in the examples section ## 3.4.0 - 07-19-2014 - - Fixed a bug that caused user's options to the 'natsort_key' to not be - passed on to recursive calls of 'natsort_key' (issue #12) - - Added a `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.0 - - Added an `as_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) +### Added + - `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.0 + - `as_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_versorted` + - `reverse` option to `natsorted` & 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 + +### 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 numbers\ - still only takes 0.6x the time of sorting strings - - Added the `order_by_index` function to help in using the output of - `index_natsorted` and `index_versorted` - - Added the `reverse` option to `natsorted` & co. to make it's API more - similar to the builtin 'sorted' - - Added more unit tests - - Added auxillary test code that helps in profiling and stress-testing - - Reworked the documentation, moving most of it to PyPI's hosting platform - - Added support for coveralls.io + of reduction in speed for numeric input (~2.0x) - note that sorting numbers\ + still 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 + +### Fixed + - Bug that caused user's options to the 'natsort_key' to not be + passed on to recursive calls of 'natsort_key' (issue #12) ## 3.3.0 - 06-28-2014 - - Added a `versorted` method for more convenient sorting of versions (issue #11) +### Added + - `versorted` method for more convenient sorting of versions (issue #11) + - Unit test coverage (99%) + +### Changed - Updated command-line tool `--number_type` option with 'version' and 'ver' - to make it more clear how to sort version numbers + to make it more clear how to sort version numbers - Moved unit-testing mechanism from being docstring-based to actual unit tests - in actual functions (issue #10) - - Added unit test coverage (99%) + in actual functions (issue #10) - Made docstrings for public functions mirror the README API - - Connected natsort development to Travis-CI to help ensure quality releases + - Connected `natsort` development to Travis-CI to help ensure quality releases ## 3.2.1 - 06-20-2014 +### 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) + is for when the problem occurs in the middle of the string (issue #7 again) ## 3.2.0 - 05-07-2014 +### 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) + attempts to replicate the Python 2.x behavior by putting all the numbers + (or strings that begin with numbers) first (issue #7) + +### Removed - Now explicitly excluding `__pycache__` from releases by adding a prune statement - to MANIFEST.in + to MANIFEST.in ## 3.1.2 - 05-05-2014 - - Added setup.cfg to support universal wheels (issue #6) - - Added Python 3.0 and Python 3.1 as requiring the argparse module +### Added + - `setup.cfg` to support universal wheels (issue #6) + - Python 3.0 and Python 3.1 as requiring the argparse module ## 3.1.1 - 03-01-2014 - - Added ability to sort lists of lists (issue #5) +### Added + - Ability to sort lists of lists (issue #5) + +### Changed - Cleaned up import statements ## 3.1.0 - 01-20-2014 - - Added the `signed` and `exp` options to allow finer tuning of the sorting - - Entire codebase now works for both Python 2 and Python 3 without needing to run - `2to3` +### Added + - `signed` and `exp` options to allow finer tuning of the sorting + - Doctests + - New shell script options that correspond to `signed` and `exp` + - In the shell script the user can now specify multiple numbers to exclude or multiple ranges + +### Changed + - Entire codebase now works for both Python 2 and Python 3 without needing to run `2to3` - Updated all doctests - Further simplified the `natsort` base 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 - - Removed the shell script filesystem-based options because these can be achieved better - though a pipeline - - Added doctests - - Added new options that correspond to `signed` and `exp` - - The user can now specify multiple numbers to exclude or multiple ranges - by which to filter + - Made the shell script documentation less "path"-centric to make it clear it is not + just for sorting file paths + +### Removed + - The shell script filesystem-based options because these can be achieved better though +a pipeline by which to filter ## 3.0.2 - 10-01-2013 +### Changed - Made float, int, and digit searching algorithms all share the same base function - - Fixed some outdated comments - Made the `__version__` variable available when importing the module +### Fixed + - Outdated comments + ## 3.0.1 - 8-15-2013 - - Added support for unicode strings (issue #2) - - Removed extraneous `string2int` function - - Fixed empty string removal function +### Added + - Support for unicode strings (issue #2) + +### Fixed + - Empty string removal function + +### Removed + - Extraneous `string2int` function ## 3.0.0 - 7-13-2013 - - Added a `number_type` argument to the sorting functions to specify how - liberal to be when deciding what a number is +### Added + - A `number_type` argument to the sorting functions to specify how liberal to be when + deciding what a number is + +### Changed - Reworked the documentation ## 2.2.0 - 6-25-2013 - - Added `key` attribute to `natsorted` and `index_natsorted` so that - it mimics the functionality of the built-in `sorted` (issue #1) - - Added tests to reflect the new functionality, as well as tests demonstrating - how to get similar functionality using `natsort_key` +### Added + - `key` attribute to `natsorted` and `index_natsorted` so that it mimics the functionality + of the built-in `sorted` (issue #1) + - Tests to reflect the new functionality, as well as tests demonstrating how to get similar + functionality using `natsort_key` ## 2.1.0 - 12-5-2012 +### Changed - Reorganized package - - Now using a platform independent shell script generator (entry_points from distribute) - - Can now execute natsort from command line with `python -m natsort` as well + - Now using a platform independent shell script generator (`entry_points` from distribute) + - Can now execute `natsort` from command line with `python -m natsort` as well ## 2.0.2 - 11-30-2012 - - Added the use_2to3 option to setup.py - - Added distribute_setup.py to the distribution - - Added dependency to the argparse module (for python2.6) +### Added + - The use_2to3 option to `setup.py` + - Include `distribute_setup.py` to the distribution + - Dependency to the `argparse` module (for python2.6) ## 2.0.1 - 11-21-2012 +### Added + - Tests into the natsort.py file iteself + +### Changed - Reorganized directory structure - - Added tests into the natsort.py file iteself ## 2.0.0 - 11-16-2012 - - Updated sorting algorithm to support floats (including exponentials) and - basic version number support - - Added better README documentation - - Added doctests +### Added + - Better README documentation + - Doctests + +### Changed + - Sorting algorithm to support floats (including exponentials) and basic version number support + |