{ "info": { "author": "Sergei Shilovsky", "author_email": "sshilovsky@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "tailf\n=====\n\n`tail -f` functionality for your python code. Track file appends and\ntruncations.\n\nPython3.6+ is supported.\n\nExamples\n--------\n\n```sh\npip install tailf==0.2.5\n```\n\n```python\nimport tailf\nimport time\n\nwith tailf.Tail(filename) as tail:\n while True:\n for event in tail:\n if isinstance(event, bytes):\n print(event.decode(\"utf-8\"), end='')\n elif event is tailf.Truncated:\n print(\"File was truncated\")\n else:\n assert False, \"unreachable\" # currently. more events may be introduced later\n time.sleep(0.01) # save CPU cycles\n```\n\n```python\n# this example requires python3.7\nimport asyncio\nimport tailf\n\nasync def main():\n with tailf.Tail(filename) as tail:\n while True:\n event = await tail.wait_event()\n if isinstance(event, bytes):\n print(event.decode(\"utf-8\"), end='')\n elif event is tailf.Truncated:\n print(\"File was truncated\")\n else:\n assert False, \"unreachable\" # currently. more events may be introduced later\n\nasyncio.run(main())\n```\n\nLimitations\n-----------\n\n* Truncation detection is unreliable in general. It is primarily tracked by\n file size decrease, which sometimes can be unreliable. In cases when a file\n grows large and is truncated seldom, this is sufficient.\n\n* Asynchronous tracking is done at timer events (0.01 seconds currently).\n Inotify support could solve this issue on linux. Feel free to suggest other\n solutions.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://gitlab.com/trooniee/tailf", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "tailf", "package_url": "https://pypi.org/project/tailf/", "platform": "", "project_url": "https://pypi.org/project/tailf/", "project_urls": { "Homepage": "http://gitlab.com/trooniee/tailf" }, "release_url": "https://pypi.org/project/tailf/0.3.2/", "requires_dist": null, "requires_python": "", "summary": "tail -f functionality for your python code. Track file appends and truncations.", "version": "0.3.2" }, "last_serial": 5398093, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "83826e2d35a798e07c708b2bfeda8574", "sha256": "61f0c287965006d23950c74baf2d66d1d3c261b283c0056dd191191a050db31f" }, "downloads": -1, "filename": "tailf-0.1.tar.gz", "has_sig": false, "md5_digest": "83826e2d35a798e07c708b2bfeda8574", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 914, "upload_time": "2019-04-27T11:41:46", "url": "https://files.pythonhosted.org/packages/dc/fb/a91b3a2f72848467cac1d5d20e48e8ae3802f7e7c138378f7566d1f210ec/tailf-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "deadc2fa09acbdc3887bf1f6591b51bd", "sha256": "62b33f45d2917da7aa778199b6a053e9c3b5e876385fd53aaca992fb3a90779a" }, "downloads": -1, "filename": "tailf-0.2.tar.gz", "has_sig": false, "md5_digest": "deadc2fa09acbdc3887bf1f6591b51bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2500, "upload_time": "2019-04-27T16:38:27", "url": "https://files.pythonhosted.org/packages/10/f9/23c0a48a36fb6a41ca185feda3abcf2363d499ffdaa85946a95881c130a0/tailf-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "cdf3e27e079748166c12fdcde2377c27", "sha256": "d28928b9adae1369baebbf0ea165f4b8057785da7e1fb8d5f1a1a44448cdd653" }, "downloads": -1, "filename": "tailf-0.2.1.tar.gz", "has_sig": false, "md5_digest": "cdf3e27e079748166c12fdcde2377c27", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2497, "upload_time": "2019-04-27T16:40:26", "url": "https://files.pythonhosted.org/packages/2b/19/78219211c71d3e201942f8652e3997be842073e824a4bede9eb36fd2743f/tailf-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "45b1ae71784d1299779849ec0b5ea6b7", "sha256": "09159d7a224bb685a06db8afc8521be2c03a62e303cc26bd57dcd8b5a7ede9da" }, "downloads": -1, "filename": "tailf-0.2.2.tar.gz", "has_sig": false, "md5_digest": "45b1ae71784d1299779849ec0b5ea6b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3902, "upload_time": "2019-04-28T18:03:06", "url": "https://files.pythonhosted.org/packages/25/72/99377fd66eb08404bf98666cefe2f29c21c60246bf95fdcaf1cddfb1b642/tailf-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "3ee9280c495c1ee04f54486ccbbdae51", "sha256": "0bb3504329153e29b16b29f50d50e355acb789251cd6c22dff526f600d60ba7f" }, "downloads": -1, "filename": "tailf-0.2.3.tar.gz", "has_sig": false, "md5_digest": "3ee9280c495c1ee04f54486ccbbdae51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4862, "upload_time": "2019-04-29T14:19:35", "url": "https://files.pythonhosted.org/packages/db/0c/51de482cc64a883fe4ec0516e3ce28ce8774bcca895e5b472bc4e5cf765b/tailf-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "096fadca1dc19e39ea21cc35358f2a0a", "sha256": "9f367998237bc293a7e57e227c8128f53c6faa7b2d740204edac17b862c06473" }, "downloads": -1, "filename": "tailf-0.2.4.tar.gz", "has_sig": false, "md5_digest": "096fadca1dc19e39ea21cc35358f2a0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5073, "upload_time": "2019-04-30T18:05:46", "url": "https://files.pythonhosted.org/packages/ae/6f/a3b949e70a0045be1aeb34dcf0eccf681b12602dcd9c4774782da2914a3c/tailf-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "e35cbef205cef3c8aa738acc5fc07ac1", "sha256": "3d0e024545d61a68a206b61baf3a483ca8e5d4d056da4ce5513896474214c590" }, "downloads": -1, "filename": "tailf-0.2.5.tar.gz", "has_sig": false, "md5_digest": "e35cbef205cef3c8aa738acc5fc07ac1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5659, "upload_time": "2019-05-01T16:54:51", "url": "https://files.pythonhosted.org/packages/26/a3/7311f1e828783ec41440ef318925d85eb434052d6daf8a5000914dec9b1f/tailf-0.2.5.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "8d0108470d34fdd8b60499a26240aafa", "sha256": "692cf2c93dfcfb67dc30c72ded761934aac1e25e8786b30e92283eeb2cec7710" }, "downloads": -1, "filename": "tailf-0.3.0.tar.gz", "has_sig": false, "md5_digest": "8d0108470d34fdd8b60499a26240aafa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6819, "upload_time": "2019-06-12T14:59:12", "url": "https://files.pythonhosted.org/packages/5f/8e/8bfe3d4cc6984fdbe5a3002121e5401f852a96af9f7891c52b16e8488c2c/tailf-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "a9e939e8a68541d03f6907ad3a6925ab", "sha256": "355ba4f9ea6987c554deec78425dcf3bcb75581f4d1495650a3c75eb2ee273a4" }, "downloads": -1, "filename": "tailf-0.3.1.tar.gz", "has_sig": false, "md5_digest": "a9e939e8a68541d03f6907ad3a6925ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7679, "upload_time": "2019-06-13T22:37:21", "url": "https://files.pythonhosted.org/packages/cc/a7/d63e26b09c853113382fb65dbe070a4daf9dff2ad8f3f419637010e6dec6/tailf-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "65fe4f802f59b0966dcd3810c16c6920", "sha256": "3a44ad2663bb0125798dd8a3dcb0298449a1cc684e33383b4cd4c47fc7553963" }, "downloads": -1, "filename": "tailf-0.3.2.tar.gz", "has_sig": false, "md5_digest": "65fe4f802f59b0966dcd3810c16c6920", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7561, "upload_time": "2019-06-13T22:53:25", "url": "https://files.pythonhosted.org/packages/22/fb/8cc8466e4de3b54cc9e9b9fafad63c6926c9350f569382572f93272847c9/tailf-0.3.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "65fe4f802f59b0966dcd3810c16c6920", "sha256": "3a44ad2663bb0125798dd8a3dcb0298449a1cc684e33383b4cd4c47fc7553963" }, "downloads": -1, "filename": "tailf-0.3.2.tar.gz", "has_sig": false, "md5_digest": "65fe4f802f59b0966dcd3810c16c6920", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7561, "upload_time": "2019-06-13T22:53:25", "url": "https://files.pythonhosted.org/packages/22/fb/8cc8466e4de3b54cc9e9b9fafad63c6926c9350f569382572f93272847c9/tailf-0.3.2.tar.gz" } ] }