{ "info": { "author": "Dmitry Pershin", "author_email": "dapper91@mail.ru", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: Public Domain", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "=============\nExternal sort\n=============\n\n.. image:: https://travis-ci.org/dapper91/python-external-sort.svg?branch=master\n :target: https://travis-ci.org/dapper91/python-external-sort\n :alt: Build status\n.. image:: https://img.shields.io/pypi/l/ext-sort.svg\n :target: https://pypi.org/project/ext-sort\n :alt: License\n.. image:: https://img.shields.io/pypi/pyversions/ext-sort.svg\n :target: https://pypi.org/project/ext-sort\n :alt: Supported Python versions\n\n\nExternal sort algorithm implementation. External sorting is a class of sorting algorithms that can handle massive\namounts of data. External sorting is required when the data being sorted do not fit into the main memory (RAM) of a\ncomputer and instead must be resided in slower external memory, usually a hard disk drive.\nSorting is achieved in two passes. During the first pass it sorts chunks of data that each fit in RAM,\nduring the second pass it merges the sorted chunks together.\nFor more information see https://en.wikipedia.org/wiki/External_sorting.\n\n\nCompatibility\n=============\n\next-sort requires 3.6+.\n\n\nInstallation\n============\n\nYou can install ext-sort with pip:\n\n.. code-block:: console\n\n $ pip install ext-sort\n\n\nQuick start\n===========\n\nQuick start.\n\n.. code-block:: python\n\n import csv\n import io\n import logging\n\n import ext_sort as es\n\n\n class CSVSerializer(es.Serializer):\n\n def __init__(self, writer):\n super().__init__(csv.writer(io.TextIOWrapper(writer, write_through=True)))\n\n def write(self, item):\n return self._writer.writerow(item)\n\n\n class CSVDeserializer(es.Deserializer):\n\n def __init__(self, reader):\n super().__init__(csv.reader(io.TextIOWrapper(reader)))\n\n def read(self):\n return next(self._reader)\n\n\n logging.basicConfig(\n level=logging.DEBUG,\n format='[%(levelname)-8s] %(asctime)-15s (%(name)s): %(message)s',\n )\n\n with open('/home/user/data.csv', 'rb') as unsorted_file, open('/home/user/data.sorted.csv', 'wb') as sorted_file:\n # save the csv header\n sorted_file.write(unsorted_file.readline())\n\n es.sort(\n reader=unsorted_file,\n writer=sorted_file,\n chunk_size=10_000_000,\n Serializer=CSVSerializer,\n Deserializer=CSVDeserializer,\n workers_cnt=4,\n )", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dapper91/python-external-sort", "keywords": "python3,sort,external-sort,algorithms", "license": "Public Domain License", "maintainer": "", "maintainer_email": "", "name": "ext-sort", "package_url": "https://pypi.org/project/ext-sort/", "platform": "", "project_url": "https://pypi.org/project/ext-sort/", "project_urls": { "Homepage": "https://github.com/dapper91/python-external-sort" }, "release_url": "https://pypi.org/project/ext-sort/0.2.0/", "requires_dist": null, "requires_python": ">=3.6", "summary": "External sort algorithm implementation.", "version": "0.2.0" }, "last_serial": 5487805, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "bc4d477ff39aa678dfd199df280b8435", "sha256": "e3fb9a5d772e64b3a52738337e52233ffab2286c45779efbe72dbdf67edb5031" }, "downloads": -1, "filename": "ext_sort-0.1.0-py3.7.egg", "has_sig": false, "md5_digest": "bc4d477ff39aa678dfd199df280b8435", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": ">=3.6", "size": 11266, "upload_time": "2019-07-02T18:45:00", "url": "https://files.pythonhosted.org/packages/c8/e5/f73839f4da0a8fb26d833e97f60b5e1fc8b93f491a39adacb1ae727bd16c/ext_sort-0.1.0-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "0be9c4f05ebbd38cade512b3629be2eb", "sha256": "c436f13a61c09d39eb78a434ca598298a309bebc8d9de4086470a63aaeeff6d8" }, "downloads": -1, "filename": "ext-sort-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0be9c4f05ebbd38cade512b3629be2eb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4288, "upload_time": "2019-07-02T18:44:57", "url": "https://files.pythonhosted.org/packages/af/37/334fe36a151e5b0284905e2e15877d6b129e591c9b4724db6bb1a1da2870/ext-sort-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "46987d0763d30171289f58379f962919", "sha256": "b877656b475c22a23decc2e1cdec073be9f7bf142259021f6df3ec20e5e56738" }, "downloads": -1, "filename": "ext-sort-0.2.0.tar.gz", "has_sig": false, "md5_digest": "46987d0763d30171289f58379f962919", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5322, "upload_time": "2019-07-04T17:57:20", "url": "https://files.pythonhosted.org/packages/da/14/8bc09c1b4fba79885af0768510b89398d866866ede8717e03a9f04b230f0/ext-sort-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "46987d0763d30171289f58379f962919", "sha256": "b877656b475c22a23decc2e1cdec073be9f7bf142259021f6df3ec20e5e56738" }, "downloads": -1, "filename": "ext-sort-0.2.0.tar.gz", "has_sig": false, "md5_digest": "46987d0763d30171289f58379f962919", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5322, "upload_time": "2019-07-04T17:57:20", "url": "https://files.pythonhosted.org/packages/da/14/8bc09c1b4fba79885af0768510b89398d866866ede8717e03a9f04b230f0/ext-sort-0.2.0.tar.gz" } ] }