{ "info": { "author": "Gael Pasgrimaud", "author_email": "gael@gawel.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: POSIX", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "================================================\naiocron - Crontabs for asyncio\n================================================\n\n.. image:: https://travis-ci.org/gawel/aiocron.svg?branch=master\n :target: https://travis-ci.org/gawel/aiocron\n.. image:: https://img.shields.io/pypi/v/aiocron.svg\n :target: https://pypi.python.org/pypi/aiocron\n.. image:: https://img.shields.io/pypi/dm/aiocron.svg\n :target: https://pypi.python.org/pypi/aiocron\n\nUsage\n=====\n\n``aiocron`` provide a decorator to run function at time::\n\n >>> @aiocron.crontab('*/30 * * * *')\n ... @asyncio.coroutine\n ... def attime():\n ... print('run')\n >>> asyncio.get_event_loop().run_forever()\n\nYou can also use it as an object::\n\n >>> @aiocron.crontab('1 9 * * 1-5', start=False)\n ... @asyncio.coroutine\n ... def attime():\n ... print('run')\n >>> attime.start()\n >>> asyncio.get_event_loop().run_forever()\n\nYour function still be available at ``attime.func``\n\nYou can also yield from a crontab. In this case, your coroutine can accept\narguments::\n\n >>> @aiocron.crontab('0 9,10 * * * mon,fri', start=False)\n ... @asyncio.coroutine\n ... def attime(i):\n ... print('run %i' % i)\n\n >>> @asyncio.coroutine\n ... def once():\n ... try:\n ... res = yield from attime.next(1)\n ... except Exception as e:\n ... print('It failed (%r)' % e)\n ... else:\n ... print(res)\n >>> asyncio.get_event_loop().run_forever()\n\nFinally you can use it as a sleep coroutine. The following will wait until\nnext hour::\n\n >>> yield from crontab('0 * * * *').next()\n\nIf you don't like the decorator magic you can set the function by yourself::\n\n >>> cron = crontab('0 * * * *', func=yourcoroutine, start=False)\n\nNotice that unlike standard unix crontab you can specify seconds at the 6th\nposition.\n\n``aiocron`` use `croniter `_. Refer to\nit's documentation to know more about crontab format.\n\nI've spent hours writing this software, with love.\nPlease consider tiping if you like it:\n\nBTC: 1PruQAwByDndFZ7vTeJhyWefAghaZx9RZg\n\nETH: 0xb6418036d8E06c60C4D91c17d72Df6e1e5b15CE6\n\nLTC: LY6CdZcDbxnBX9GFBJ45TqVj8NykBBqsmT\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/gawel/aiocron/", "keywords": "crontab cron asyncio", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "aiocron", "package_url": "https://pypi.org/project/aiocron/", "platform": "", "project_url": "https://pypi.org/project/aiocron/", "project_urls": { "Homepage": "https://github.com/gawel/aiocron/" }, "release_url": "https://pypi.org/project/aiocron/1.3/", "requires_dist": [ "croniter", "tzlocal", "coverage; extra == 'test'" ], "requires_python": "", "summary": "Crontabs for asyncio", "version": "1.3" }, "last_serial": 4424822, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "5104916f207d44a61aac5805656593c5", "sha256": "6a89bdcc968b1d0a8aa1f032b52970e9b134f1b9aa63ce2b3689c001f9d0ae2d" }, "downloads": -1, "filename": "aiocron-0.1.tar.gz", "has_sig": false, "md5_digest": "5104916f207d44a61aac5805656593c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3976, "upload_time": "2015-02-22T14:30:59", "url": "https://files.pythonhosted.org/packages/14/16/5f177b2bfc7cb614e5bdffe902cc6edb8703bb69197dd2b639944878444f/aiocron-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "272eaa820004233923cb5a4e9a4353ca", "sha256": "1645611b239aa2067faa62ccd96dc39f195ecb7b301e508bce440e064148438d" }, "downloads": -1, "filename": "aiocron-0.2.zip", "has_sig": false, "md5_digest": "272eaa820004233923cb5a4e9a4353ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7936, "upload_time": "2015-02-23T18:32:33", "url": "https://files.pythonhosted.org/packages/3f/bd/b660d0e30e82b19391699d8688753ec61f2c56fc253990a98d64e95a1744/aiocron-0.2.zip" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "5651702df72f2c3f5c1d380899953e86", "sha256": "fb1130af10c49dbdaa4586cc3e5403ed84c2a958f2bbe9b425f54784b8ea03a0" }, "downloads": -1, "filename": "aiocron-0.3.zip", "has_sig": false, "md5_digest": "5651702df72f2c3f5c1d380899953e86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7960, "upload_time": "2015-05-14T10:11:23", "url": "https://files.pythonhosted.org/packages/88/ec/1fea9c0ec4ab16b102bb28a7a20fa0bcdc48ebc56fb0623a3592c265e018/aiocron-0.3.zip" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "81466dea36a6a00def66ee2bfce32c46", "sha256": "e06215ec11f990fe137a42f2052c57f265aad2ab61baece21ff6d2d640a5c276" }, "downloads": -1, "filename": "aiocron-0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "81466dea36a6a00def66ee2bfce32c46", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4648, "upload_time": "2015-10-21T17:01:19", "url": "https://files.pythonhosted.org/packages/1e/53/dfc7d8430664433dda834e7a8266427c96666955df8fac51c266affd6d50/aiocron-0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "02051d69ddd2e7bbb65d90e84eb05c44", "sha256": "d5cd7d7daeaa7fd2b04bb94088b2fbd1ae4ec6edaf8a955b843620fbeb3f3d1d" }, "downloads": -1, "filename": "aiocron-0.4.tar.gz", "has_sig": false, "md5_digest": "02051d69ddd2e7bbb65d90e84eb05c44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4851, "upload_time": "2015-10-21T17:00:47", "url": "https://files.pythonhosted.org/packages/bc/1b/05a18618e49df23754de30e2f6d7b9a31e4c32874d3e3a9f685145b094e8/aiocron-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "0a192a42209612138957bb29872c5a99", "sha256": "399b1ea283f70970309e60ddaa6e1cb59f6deae5895b7457ea7855962bfc1e51" }, "downloads": -1, "filename": "aiocron-0.5-py2-none-any.whl", "has_sig": false, "md5_digest": "0a192a42209612138957bb29872c5a99", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4684, "upload_time": "2016-03-31T20:28:02", "url": "https://files.pythonhosted.org/packages/95/ec/a5a7469fdd621855764ce781a6e2072b25e92329face11dcc99961c00d8d/aiocron-0.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "170326f4ede10b867cbe2322d19db6dc", "sha256": "2feb40cff0a458cdfb78657490c36bc55e94fa0a23dd120ade939b86c3c05702" }, "downloads": -1, "filename": "aiocron-0.5.tar.gz", "has_sig": false, "md5_digest": "170326f4ede10b867cbe2322d19db6dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4890, "upload_time": "2016-03-31T20:27:56", "url": "https://files.pythonhosted.org/packages/f6/5f/7397caca7d8d079aa8aff4972814f369ee306b29e4d05b7928b8eadcbeb4/aiocron-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "4c5bc09e19f51c23b38c6da7c30174f6", "sha256": "b3de3db4c6735220a48e5c6ac1bc399105b0474247c7acf31bf5d6d26cfcf309" }, "downloads": -1, "filename": "aiocron-0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4c5bc09e19f51c23b38c6da7c30174f6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5303, "upload_time": "2016-10-18T19:29:31", "url": "https://files.pythonhosted.org/packages/91/3b/7c298e0b425616ffa311cbea178577df3d45633888de3d435cef1727ae37/aiocron-0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89f7d54161582925379d10b781689357", "sha256": "d6d373ad9be024ad1e476052860e04b31c740120abf6e071c870bba87c657f17" }, "downloads": -1, "filename": "aiocron-0.6.tar.gz", "has_sig": false, "md5_digest": "89f7d54161582925379d10b781689357", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5246, "upload_time": "2016-10-18T19:29:34", "url": "https://files.pythonhosted.org/packages/a7/6e/ab30ad981b3fcdcc391de77ca723425e6c99513b62ac6de82aacbe1d4a3f/aiocron-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "b9b3273d80e24b9c21109c49f8c93138", "sha256": "eb7b79d404d73a55cd94c8ade3930b6af7baeed3800e2afa5be2313691479a76" }, "downloads": -1, "filename": "aiocron-0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b9b3273d80e24b9c21109c49f8c93138", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5452, "upload_time": "2017-09-01T16:35:57", "url": "https://files.pythonhosted.org/packages/3c/3f/4654a72bc649c244d1d9740eb60697c2507e132560a764deec33a6599cd0/aiocron-0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b098955910a915bf6becbd422265adea", "sha256": "30c206ad12f8a21e6ef5dcad8aec008d0ee65ceeddf0d7b2f73bf839fdaf1e23" }, "downloads": -1, "filename": "aiocron-0.7.tar.gz", "has_sig": false, "md5_digest": "b098955910a915bf6becbd422265adea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6173, "upload_time": "2017-09-01T16:35:55", "url": "https://files.pythonhosted.org/packages/b6/8f/9417e30c79334e605ffebd56f179c886a113851a3b92b48aa727102ba92e/aiocron-0.7.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "c09359ecfec3f31af1a75fb45b9f4756", "sha256": "849915d7785737bdcf2381cd9d82b8e6555e3b4dfa5af5073617976296ecf24b" }, "downloads": -1, "filename": "aiocron-1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c09359ecfec3f31af1a75fb45b9f4756", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5512, "upload_time": "2017-10-31T18:13:15", "url": "https://files.pythonhosted.org/packages/f9/d3/44a6978ad350a9b87f5c713bfa83a0a91c2287cab84d9db691babd530ad5/aiocron-1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7a3ad7fdf396e93ead8007c570a28093", "sha256": "5fc18f74af00b498e8bd429677174e30821d956d7db60ccdf9075cbf63a367da" }, "downloads": -1, "filename": "aiocron-1.0.tar.gz", "has_sig": false, "md5_digest": "7a3ad7fdf396e93ead8007c570a28093", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6250, "upload_time": "2017-10-31T18:13:17", "url": "https://files.pythonhosted.org/packages/73/4b/136150b801ddde6876155f652762b02572a0791e517db614fa5b216bed16/aiocron-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "230baa8d864038d8a6a3adbce81084f1", "sha256": "55653a2042962de5207447d28c9551850fc8f31fba0b6b19295fa9eda6bd3031" }, "downloads": -1, "filename": "aiocron-1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "230baa8d864038d8a6a3adbce81084f1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5532, "upload_time": "2017-11-11T10:45:00", "url": "https://files.pythonhosted.org/packages/85/93/2796ad80b152c7e52f29e107aa212966196c98c45918566cc4e0eb18f9c5/aiocron-1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cd269563cbacd084a1132e9f80225024", "sha256": "a375fece3fa6ae6a039d294ccdd02ffda3f6d66c1147c3beda814928aa2ecb14" }, "downloads": -1, "filename": "aiocron-1.1.tar.gz", "has_sig": false, "md5_digest": "cd269563cbacd084a1132e9f80225024", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6546, "upload_time": "2017-11-11T10:45:01", "url": "https://files.pythonhosted.org/packages/a8/f7/202895845d4648a6f144003838c9fe303c650d2b05d0d712c29719f743f5/aiocron-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "91c59415d29d9d8680ca47113979c332", "sha256": "7b5fcb43705213c9ea538eb8928bf3ead5fe24a09e8165736d155b38a96a3ec1" }, "downloads": -1, "filename": "aiocron-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "91c59415d29d9d8680ca47113979c332", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5520, "upload_time": "2017-12-05T11:24:55", "url": "https://files.pythonhosted.org/packages/7d/c0/be621f7c3b603d8bfa09a57e0e7526a38f74ef4ccb5e27b0b7a14b402b6a/aiocron-1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4cf8dff178d7e6e8affd2970770012b8", "sha256": "509e8a342b76f3cc7c1b67c0d8ce887f2e4091edf707e84c87d95afaf5ac68fe" }, "downloads": -1, "filename": "aiocron-1.2.tar.gz", "has_sig": false, "md5_digest": "4cf8dff178d7e6e8affd2970770012b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6553, "upload_time": "2017-12-05T11:24:56", "url": "https://files.pythonhosted.org/packages/d6/70/eb03c6448cdfd3a1af708a12c641cacdd5c1aca4deebf2bb6ae11abb8de6/aiocron-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "5e4b292e681f94b8ef6ccf98ae8323a3", "sha256": "f20b29ba8207d789b44ecb516ef084fa84d3e02dde1c82fa4009c90b072b63c7" }, "downloads": -1, "filename": "aiocron-1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5e4b292e681f94b8ef6ccf98ae8323a3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4089, "upload_time": "2018-10-28T17:28:06", "url": "https://files.pythonhosted.org/packages/e0/e3/054f62b98cef1576f4f6bb073c4ec86118825111502be041f277b7ac912b/aiocron-1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c070f5f5da85f8881bbd17d5a816721d", "sha256": "7f7c343b5bb18695206714f038726e3795e6dfa69affcc25abe17838d51be69c" }, "downloads": -1, "filename": "aiocron-1.3.tar.gz", "has_sig": false, "md5_digest": "c070f5f5da85f8881bbd17d5a816721d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13268, "upload_time": "2018-10-28T17:28:07", "url": "https://files.pythonhosted.org/packages/cf/e6/e59cf274a239045513a51925e6bfef13cdd5e94c3bc3936da8ea45c89f56/aiocron-1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5e4b292e681f94b8ef6ccf98ae8323a3", "sha256": "f20b29ba8207d789b44ecb516ef084fa84d3e02dde1c82fa4009c90b072b63c7" }, "downloads": -1, "filename": "aiocron-1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5e4b292e681f94b8ef6ccf98ae8323a3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4089, "upload_time": "2018-10-28T17:28:06", "url": "https://files.pythonhosted.org/packages/e0/e3/054f62b98cef1576f4f6bb073c4ec86118825111502be041f277b7ac912b/aiocron-1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c070f5f5da85f8881bbd17d5a816721d", "sha256": "7f7c343b5bb18695206714f038726e3795e6dfa69affcc25abe17838d51be69c" }, "downloads": -1, "filename": "aiocron-1.3.tar.gz", "has_sig": false, "md5_digest": "c070f5f5da85f8881bbd17d5a816721d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13268, "upload_time": "2018-10-28T17:28:07", "url": "https://files.pythonhosted.org/packages/cf/e6/e59cf274a239045513a51925e6bfef13cdd5e94c3bc3936da8ea45c89f56/aiocron-1.3.tar.gz" } ] }