{ "info": { "author": "Robin Robin", "author_email": "robinsquare42@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "===============================\nfile_read_backwards\n===============================\n\n\n.. image:: https://img.shields.io/pypi/v/file_read_backwards.svg\n :target: https://pypi.python.org/pypi/file_read_backwards\n\n.. image:: https://img.shields.io/travis/RobinNil/file_read_backwards.svg?branch=master\n :target: https://travis-ci.org/RobinNil/file_read_backwards.svg?branch=master\n\n.. image:: https://readthedocs.org/projects/file-read-backwards/badge/?version=latest\n :target: https://file-read-backwards.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://pyup.io/repos/github/RobinNil/file_read_backwards/shield.svg\n :target: https://pyup.io/repos/github/RobinNil/file_read_backwards/\n :alt: Updates\n\n\nMemory efficient way of reading files line-by-line from the end of file\n\n\n* Free software: MIT license\n* Documentation: https://file-read-backwards.readthedocs.io.\n\n\nFeatures\n--------\n\nThis package is for reading file backward line by line as unicode in a memory efficient manner for both Python 2.7 and Python 3.\n\nIt currently supports ascii, latin-1, and utf-8 encodings.\n\nIt supports \"\\\\r\", \"\\\\r\\\\n\", and \"\\\\n\" as new lines.\n\nUsage Examples\n--------------\n\nAn example of using `file_read_backwards` for `python2.7`::\n\n #!/usr/bin/env python2.7\n\n from file_read_backwards import FileReadBackwards\n\n with FileReadBackwards(\"/tmp/file\", encoding=\"utf-8\") as frb:\n\n # getting lines by lines starting from the last line up\n for l in frb:\n print l\n\nAnother example using `python3.3`::\n\n from file_read_backwards import FileReadBackwards\n\n with FileReadBackwards(\"/tmp/file\", encoding=\"utf-8\") as frb:\n\n # getting lines by lines starting from the last line up\n for l in frb:\n print(l)\n\n\nAnother way to consume the file is via `readline()`, in `python3.3`::\n\n from file_read_backwards import FileReadBackwards\n\n with FileReadBackwards(\"/tmp/file\", encoding=\"utf-8\") as frb:\n\n while True:\n l = frb.readline()\n if not l:\n break\n print(l, end=\"\")\n\nCredits\n---------\n\nThis package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n\n\n\n=======\nHistory\n=======\n\n1.0.0 (2016-12-18)\n------------------\n\n* First release on PyPI.\n\n1.1.0 (2016-12-31)\n------------------\n\n* Added support for \"latin-1\".\n* Marked the package \"Production/Stable\".\n\n1.1.1 (2017-01-09)\n------------------\n\n* Updated README.rst for more clarity around encoding support and Python 2.7 and 3 support.\n\n1.1.2 (2017-01-11)\n------------------\n\n* Documentation re-arrangement. Usage examples are now in README.rst\n* Minor refactoring\n\n1.2.0 (2017-09-01)\n------------------\n\n* Include context manager style as it provides cleaner/automatic close functionality\n\n1.2.1 (2017-09-02)\n------------------\n\n* Made doc strings consistent to Google style and some code linting\n\n\n1.2.2 (2017-11-19)\n------------------\n\n* Re-release of 1.2.1 for ease of updating pypi page for updated travis & pyup.\n\n2.0.0 (2018-03-23)\n------------------\n\nMimicing Python file object behavior.\n\n* FileReadBackwards no longer creates multiple iterators (a change of behavior from 1.x.y version)\n* Adding readline() function retuns one line at a time with a trailing new line and empty string when it reaches end of file.\n The fine print: the trailing new line will be `os.linesep` (rather than whichever new line type in the file).\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/RobinNil/file_read_backwards", "keywords": "file_read_backwards", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "file-read-backwards", "package_url": "https://pypi.org/project/file-read-backwards/", "platform": "", "project_url": "https://pypi.org/project/file-read-backwards/", "project_urls": { "Homepage": "https://github.com/RobinNil/file_read_backwards" }, "release_url": "https://pypi.org/project/file-read-backwards/2.0.0/", "requires_dist": null, "requires_python": "", "summary": "Memory efficient way of reading files line-by-line from the end of file", "version": "2.0.0" }, "last_serial": 3712316, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "11146542fc13f3b715ee5ba061596edc", "sha256": "c2109c37ed3e378ce5914904c97450c9da6ea293a44194957eee2c11d7525f1b" }, "downloads": -1, "filename": "file_read_backwards-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "11146542fc13f3b715ee5ba061596edc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6369, "upload_time": "2016-12-19T01:16:23", "url": "https://files.pythonhosted.org/packages/d4/df/cfc50541c12dad32a3a1c27e3c9a174c48f4dc535806b233056a85345f31/file_read_backwards-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5ecb0e865d5407d86b6bd5272f2deaab", "sha256": "ea2f964fb3bd9a7bce003c753b3fdb946ef2326a2f011ea6152942bc635e5827" }, "downloads": -1, "filename": "file_read_backwards-1.0.0.tar.gz", "has_sig": false, "md5_digest": "5ecb0e865d5407d86b6bd5272f2deaab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17548, "upload_time": "2016-12-19T01:16:25", "url": "https://files.pythonhosted.org/packages/5d/7e/355e1491907c5eb96ce3de168784f0694c3046415410db21d0d344f12808/file_read_backwards-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "573fcc9cd6f187aa51a25a863940bc9c", "sha256": "17f694e47eaad2f9847ec89bb6adac55344c45907eadc19f6addc7b44cbcbb3e" }, "downloads": -1, "filename": "file_read_backwards-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "573fcc9cd6f187aa51a25a863940bc9c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6534, "upload_time": "2016-12-31T19:08:59", "url": "https://files.pythonhosted.org/packages/ab/8d/1afdcfb1e028eebbcf984e4b05bac63eaf83a96f46914f2b5f4aeb409baf/file_read_backwards-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1195949d074fdff7fb3f2de20fa47452", "sha256": "a6fec3e8040b2381dc6d0faf9ecfedc598909aeb8e329ab18ea592e222d2080f" }, "downloads": -1, "filename": "file_read_backwards-1.1.0.tar.gz", "has_sig": false, "md5_digest": "1195949d074fdff7fb3f2de20fa47452", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18070, "upload_time": "2016-12-31T19:09:01", "url": "https://files.pythonhosted.org/packages/97/f2/76456dc1fa5bc323113aef9ff5746e3af5936ab604ec5edd666f2c6494db/file_read_backwards-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "6518b288e58e059ffd9a6908ec74a98a", "sha256": "d05bcb52a85266eb7d23d0ad4863de7aa03ddf082e2dba1cbdd6514739df9a94" }, "downloads": -1, "filename": "file_read_backwards-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6518b288e58e059ffd9a6908ec74a98a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6612, "upload_time": "2017-01-10T02:55:50", "url": "https://files.pythonhosted.org/packages/48/92/6023e06d135d77da12ab284f0d03acf26fcf2c96fb91e5d5376f4b5a50fb/file_read_backwards-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d3215375b9ba325492f00f44dac2cb4", "sha256": "d3c94ddd56e15252f2ba08bf5fdb3c0613b99938035e3926f43e3be5dda08b23" }, "downloads": -1, "filename": "file_read_backwards-1.1.1.tar.gz", "has_sig": false, "md5_digest": "2d3215375b9ba325492f00f44dac2cb4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18217, "upload_time": "2017-01-10T02:55:52", "url": "https://files.pythonhosted.org/packages/ae/cf/072cc8271b28429cbd1a5c7efb47291103f1221cf00b7aad6878aeb41f22/file_read_backwards-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "491f0067e878455ff135e735f900b6e0", "sha256": "0a9aadfdc91632bd36862f113620dd6b725f72945f3823357bd5b31bf45d3eb1" }, "downloads": -1, "filename": "file_read_backwards-1.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "491f0067e878455ff135e735f900b6e0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7589, "upload_time": "2017-01-12T02:09:01", "url": "https://files.pythonhosted.org/packages/6d/e9/ff8bf3a60489cd36b7cd30cf174c4e3a4176e0db77aa78236dac1e049b45/file_read_backwards-1.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2fb11a7a94ccaddb8571a7a6e1105003", "sha256": "c0bd5c28efc53fbd5fbdf97742f1aca3559f80cc82844690bdf2c3ccc69c7ce3" }, "downloads": -1, "filename": "file_read_backwards-1.1.2.tar.gz", "has_sig": false, "md5_digest": "2fb11a7a94ccaddb8571a7a6e1105003", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18635, "upload_time": "2017-01-12T02:09:03", "url": "https://files.pythonhosted.org/packages/c8/ba/c8e0a94d40fb175bc8a701a96f8c050e98903d0e025d188af3e665f820ef/file_read_backwards-1.1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "322643a829c81548577b2a357f7766fc", "sha256": "9599ab00162c08cec6eb87e3376e0a1facc9bd2d99852bc4a0a4e410eed5aa69" }, "downloads": -1, "filename": "file_read_backwards-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "322643a829c81548577b2a357f7766fc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8536, "upload_time": "2017-09-02T04:21:16", "url": "https://files.pythonhosted.org/packages/a8/3d/47e447abc608884f6f9c780bc8d8cfdea8bf5b688359d47f139c43ed275d/file_read_backwards-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eebf94e079983609ef9293ba92d6ae03", "sha256": "3bd1519f1baa8beb867dfb209c3349a37b38f2042c19bb582aa000a3565c35d1" }, "downloads": -1, "filename": "file_read_backwards-1.2.1.tar.gz", "has_sig": false, "md5_digest": "eebf94e079983609ef9293ba92d6ae03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20761, "upload_time": "2017-09-02T04:21:17", "url": "https://files.pythonhosted.org/packages/1a/66/c0e4035d893b455f6fdbff14b56d12eb24c1950a33a28388457bcd944843/file_read_backwards-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "bdeb1beff19666a219e528f77968e386", "sha256": "63b36fd93656b52e024cc1436fe40f67a270b6359f7259e7ad6a59749b0a6591" }, "downloads": -1, "filename": "file_read_backwards-1.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bdeb1beff19666a219e528f77968e386", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8648, "upload_time": "2017-11-19T22:07:19", "url": "https://files.pythonhosted.org/packages/ed/6f/b27b5c585d15390460248024736e136745ee41cc2a0f5fb509bf33e8ca10/file_read_backwards-1.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6db479dc7c3d481b32f3f9095390f34a", "sha256": "e615cc1bf8d028c49d5498c200a650a20ee5670f96986e9c7e5995ba669dd9d0" }, "downloads": -1, "filename": "file_read_backwards-1.2.2.tar.gz", "has_sig": false, "md5_digest": "6db479dc7c3d481b32f3f9095390f34a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20866, "upload_time": "2017-11-19T22:07:23", "url": "https://files.pythonhosted.org/packages/0b/cc/57f5f4a071ab753822959c032b66dfb001cc2d3aa75c6cdf66fd5bc457a8/file_read_backwards-1.2.2.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "65e60313040663e5b14e150d29029232", "sha256": "78684aafc0471e9e0f62a8662361bfaf70ade3d38333d7f166fd8024a028b1d1" }, "downloads": -1, "filename": "file_read_backwards-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "65e60313040663e5b14e150d29029232", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9029, "upload_time": "2018-03-28T02:00:43", "url": "https://files.pythonhosted.org/packages/53/cc/d015aacff2ae5566e81379b2146674c6bf364c50d562add9ae292a9284dc/file_read_backwards-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d773346099cb39f0e8e873b98825c2d5", "sha256": "fd50d9089b412147ea3c6027e2ad905f977002db2918cf315d64eed23d6d6eb8" }, "downloads": -1, "filename": "file_read_backwards-2.0.0.tar.gz", "has_sig": false, "md5_digest": "d773346099cb39f0e8e873b98825c2d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21088, "upload_time": "2018-03-28T02:00:43", "url": "https://files.pythonhosted.org/packages/91/7d/70e25cf8d8d181f2bf87da51db3eeeb984e0cb24dbb31ecbf7670727c306/file_read_backwards-2.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "65e60313040663e5b14e150d29029232", "sha256": "78684aafc0471e9e0f62a8662361bfaf70ade3d38333d7f166fd8024a028b1d1" }, "downloads": -1, "filename": "file_read_backwards-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "65e60313040663e5b14e150d29029232", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9029, "upload_time": "2018-03-28T02:00:43", "url": "https://files.pythonhosted.org/packages/53/cc/d015aacff2ae5566e81379b2146674c6bf364c50d562add9ae292a9284dc/file_read_backwards-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d773346099cb39f0e8e873b98825c2d5", "sha256": "fd50d9089b412147ea3c6027e2ad905f977002db2918cf315d64eed23d6d6eb8" }, "downloads": -1, "filename": "file_read_backwards-2.0.0.tar.gz", "has_sig": false, "md5_digest": "d773346099cb39f0e8e873b98825c2d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21088, "upload_time": "2018-03-28T02:00:43", "url": "https://files.pythonhosted.org/packages/91/7d/70e25cf8d8d181f2bf87da51db3eeeb984e0cb24dbb31ecbf7670727c306/file_read_backwards-2.0.0.tar.gz" } ] }