{ "info": { "author": "Peter Odding", "author_email": "peter@peterodding.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 6 - Mature", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Topic :: Scientific/Engineering :: Human Machine Interfaces", "Topic :: Software Development", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Systems Administration", "Topic :: Text Processing :: General" ], "description": "Simple natural order sorting API for Python\n===========================================\n\n.. image:: https://travis-ci.org/xolox/python-naturalsort.svg?branch=master\n :target: https://travis-ci.org/xolox/python-naturalsort\n\n.. image:: https://coveralls.io/repos/xolox/python-naturalsort/badge.png?branch=master\n :target: https://coveralls.io/r/xolox/python-naturalsort?branch=master\n\nThe ``natsort.natsort()`` function in the ``naturalsort`` package is a very\nsimple alternative to Python's ``sorted()`` function that implements `natural\norder sorting`_ in Python. The package is available on PyPI_, so getting\nstarted is very simple::\n\n $ pip install naturalsort\n $ python\n > from natsort import natsort\n > versions = ['1.8.1-r26', '1.8.1-r30', '2.0-r2', '2.0-r7', '2.0-r11']\n > natsort(['my-package-%s' % v for v in versions])\n ['my-package-1.8.1-r26',\n 'my-package-1.8.1-r30',\n 'my-package-2.0-r2',\n 'my-package-2.0-r7',\n 'my-package-2.0-r11']\n\nUsage\n-----\n\nHere's an example of regular sorting (based on the ASCII_ order of individual\ncharacters) compared to `natural order sorting`_::\n\n > # Import the sorted() alternative.\n > from natsort import natsort\n >\n > # This is plain old sorting (what we DON'T want).\n > sorted(['1', '5', '10', '50'])\n ['1', '10', '5', '50']\n >\n > # This is natural order sorting (what we DO want).\n > natsort(['1', '5', '10', '50'])\n ['1', '5', '10', '50']\n >\n > # natsort() accepts a optional ``reverse`` argument for consistency with\n > the built-in sorted() function.\n > natsort(['1', '5', '10', '50'], reverse=True)\n ['50', '10', '5', '1']\n\nCustom comparison keys\n^^^^^^^^^^^^^^^^^^^^^^\n\nThe main use case that the naturalsort_ package was originally created for is\nsorting of filenames with versions numbers embedded in them. Unfortunately this\nwon't always work out of the box; you may need to define a custom comparison\nkey. Here's an example where a custom comparison key is required to get the\nproper results::\n\n > from natsort import natsort\n > from pprint import pprint\n > versions = ['package-name_1_all.deb',\n ... 'package-name_1.5_all.deb',\n ... 'package-name_2_all.deb']\n\nThis is what happens by default::\n\n > pprint(natsort(versions))\n ['package-name_1.5_all.deb',\n 'package-name_1_all.deb',\n 'package-name_2_all.deb']\n\nHere's how to get the right results::\n\n > from os.path import basename, splitext\n > def version_from_fname(filename):\n ... filename, extension = splitext(basename(filename))\n .. name, version, architecture = filename.split('_')\n ... return version\n ...\n > pprint(natsort(versions, key=version_from_fname))\n ['package-name_1_all.deb',\n 'package-name_1.5_all.deb',\n 'package-name_2_all.deb']\n\nWhy another natsort module?!\n----------------------------\n\nThe natsort_ package on PyPI is more advanced and configurable than my\nnaturalsort_ package, so depending on your use case you may prefer to use that\npackage instead. Here are the differences:\n\n1. My naturalsort_ package implements only a small subset of the functionality\n of the natsort_ package, specifically the following calls result in the same\n sorting order:\n\n naturalsort package:\n ``natsort.natsort(['1-1', '1-2'])``\n\n natsort package:\n ``natsort.natsorted(['1-1', '1-2'], number_type=None)``\n\n This example shows the different goals of the two packages: The naturalsort_\n package is intended to sort version numbers while the natsort_ package by\n default interprets dashes as a negative sign and requires the keyword\n argument ``number_type=None`` to disable this behavior.\n\n2. The naturalsort_ package works on Python 2.4 and 2.5 while the natsort_\n package requires at least Python 2.6.\n\nContact\n-------\n\nThe latest version of naturalsort_ is available on PyPI_ and GitHub_. For\nbug reports please create an issue on GitHub_. If you have questions,\nsuggestions, etc. feel free to send me an e-mail at `peter@peterodding.com`_.\n\nLicense\n-------\n\nThis software is licensed under the `MIT license`_.\n\n\u00a9 2015 Peter Odding.\n\n.. External references:\n.. _ASCII: http://en.wikipedia.org/wiki/ASCII\n.. _GitHub: https://github.com/xolox/python-naturalsort\n.. _MIT license: http://en.wikipedia.org/wiki/MIT_License\n.. _natsort: https://pypi.python.org/pypi/natsort\n.. _natural order sorting: http://www.codinghorror.com/blog/2007/12/sorting-for-humans-natural-sort-order.htm\n.. _naturalsort: https://pypi.python.org/pypi/naturalsort\n.. _peter@peterodding.com: peter@peterodding.com\n.. _PyPI: https://pypi.python.org/pypi/naturalsort", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/xolox/python-naturalsort", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "naturalsort", "package_url": "https://pypi.org/project/naturalsort/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/naturalsort/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/xolox/python-naturalsort" }, "release_url": "https://pypi.org/project/naturalsort/1.5.1/", "requires_dist": null, "requires_python": null, "summary": "Simple natural order sorting API for Python", "version": "1.5.1" }, "last_serial": 1797826, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "51c031de79fcc3f9e301421b0419ec0e", "sha256": "c92da431e12730ee348227241af6b7b43430dc04ee2a428c852b409971260145" }, "downloads": -1, "filename": "naturalsort-1.0.tar.gz", "has_sig": false, "md5_digest": "51c031de79fcc3f9e301421b0419ec0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2920, "upload_time": "2013-06-14T12:02:20", "url": "https://files.pythonhosted.org/packages/c0/06/924dbe761f30f7db2ee9854433c4b8387c74a8333881fc44452101df62bd/naturalsort-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "f000ff3381b8f87931064d32f75648ea", "sha256": "362b59a821f969b74d595a252d2703835c928da7a8658efc819f54276f8c2d05" }, "downloads": -1, "filename": "naturalsort-1.0.1.tar.gz", "has_sig": false, "md5_digest": "f000ff3381b8f87931064d32f75648ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3416, "upload_time": "2013-06-14T13:19:13", "url": "https://files.pythonhosted.org/packages/b5/be/93b6269993f1ebcf97b580c9e722d3acff5cc314dfe9f3ffef64f3e96390/naturalsort-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "19acfe939a7bbc49d6275aceb1f9d99f", "sha256": "5969ef399868f1156de3ac7e3da4698c457be5707e510999b0da8647d33f0bb8" }, "downloads": -1, "filename": "naturalsort-1.0.2.tar.gz", "has_sig": false, "md5_digest": "19acfe939a7bbc49d6275aceb1f9d99f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4208, "upload_time": "2013-06-26T20:38:05", "url": "https://files.pythonhosted.org/packages/10/e2/f3ca3c1edb91641043da475b8f3f4e0c7e85aff725951d7a76484a5360bc/naturalsort-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "b4e264064f064740664ca59ceeefd19f", "sha256": "e757a81909cf40f6881701d4e39d966f6151deb735fcb5b3e82d8949bd0d336c" }, "downloads": -1, "filename": "naturalsort-1.0.3.tar.gz", "has_sig": false, "md5_digest": "b4e264064f064740664ca59ceeefd19f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4511, "upload_time": "2013-07-06T13:56:23", "url": "https://files.pythonhosted.org/packages/4a/04/55ecba7888c6d3b2a19c1d7656d9b08e6807e07bb21a2349138a16dfa7fe/naturalsort-1.0.3.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "03a4fd89dad95c42018695db5c06db2a", "sha256": "a40dcd770fe5499607e1c193b62dea5cbaa9845e8d0169caaae0528b704e0647" }, "downloads": -1, "filename": "naturalsort-1.2.tar.gz", "has_sig": false, "md5_digest": "03a4fd89dad95c42018695db5c06db2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4229, "upload_time": "2013-11-16T11:30:37", "url": "https://files.pythonhosted.org/packages/86/34/a7cb9eab70b3acc8c5337771162d56fa32a8a4cdc5759753846305ffa5bc/naturalsort-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "c8cfdc76050a255e8a1c57b6347e7988", "sha256": "b2fa4080dd0927fe56f31d8ef8f68d089b41a28ceb14d2f3fcf046f765b2b107" }, "downloads": -1, "filename": "naturalsort-1.2.1.tar.gz", "has_sig": false, "md5_digest": "c8cfdc76050a255e8a1c57b6347e7988", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4364, "upload_time": "2014-05-11T00:49:43", "url": "https://files.pythonhosted.org/packages/09/38/541485fd89d1827ff8a2496d3ff1f9102c5f928dbb9dc5fcc20b9d1652a7/naturalsort-1.2.1.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "bdb3a51c1ad035b3c7e40fa6bb5ebe43", "sha256": "738a2bf1df27e55adaa43eb9c0f7ec7a82e20790ef0467502f92f426e30c954a" }, "downloads": -1, "filename": "naturalsort-1.3.tar.gz", "has_sig": false, "md5_digest": "bdb3a51c1ad035b3c7e40fa6bb5ebe43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4451, "upload_time": "2014-07-06T16:56:10", "url": "https://files.pythonhosted.org/packages/bd/dd/9701d2c3d8314969963c3cfbd822a7cff7f19adcc9b3c93a3fa2f235ae82/naturalsort-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "b2520cd3f90f0e2987143833497ef87b", "sha256": "e8e47f6f943074ab9b8622026a3a9944a09c5caa450527820f1ad1a2eb98c88e" }, "downloads": -1, "filename": "naturalsort-1.4.tar.gz", "has_sig": false, "md5_digest": "b2520cd3f90f0e2987143833497ef87b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6021, "upload_time": "2015-08-30T09:39:56", "url": "https://files.pythonhosted.org/packages/b1/35/8ece8866974136c566c6bcf1edf151e734269bf1375e0461edd27e4b2edc/naturalsort-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "ca8df9dd101936f8beb6161995501f24", "sha256": "6a7be58f3ad81d1646957c8d84845076341c769b6d0f011569e859b8d918e414" }, "downloads": -1, "filename": "naturalsort-1.5.tar.gz", "has_sig": false, "md5_digest": "ca8df9dd101936f8beb6161995501f24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6281, "upload_time": "2015-09-29T13:49:10", "url": "https://files.pythonhosted.org/packages/38/df/a93a88ac18457bd3c87edcc6a9fb67095ee237fc3e204f5f11d9790439f8/naturalsort-1.5.tar.gz" } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "a7b7dcd79686ae1e5de24ec104bf7a2b", "sha256": "172b5ed6e7ba3420c08ba2ded1c52fe74878f5d769dc5d9dec2b6a53e7117356" }, "downloads": -1, "filename": "naturalsort-1.5.1.tar.gz", "has_sig": false, "md5_digest": "a7b7dcd79686ae1e5de24ec104bf7a2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7404, "upload_time": "2015-11-02T19:15:00", "url": "https://files.pythonhosted.org/packages/0c/84/ce1985c8c61d2ac21a4b3a5d586ed0794b855f925ecc47adca546f0c7022/naturalsort-1.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a7b7dcd79686ae1e5de24ec104bf7a2b", "sha256": "172b5ed6e7ba3420c08ba2ded1c52fe74878f5d769dc5d9dec2b6a53e7117356" }, "downloads": -1, "filename": "naturalsort-1.5.1.tar.gz", "has_sig": false, "md5_digest": "a7b7dcd79686ae1e5de24ec104bf7a2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7404, "upload_time": "2015-11-02T19:15:00", "url": "https://files.pythonhosted.org/packages/0c/84/ce1985c8c61d2ac21a4b3a5d586ed0794b855f925ecc47adca546f0c7022/naturalsort-1.5.1.tar.gz" } ] }