{ "info": { "author": "Matsumoto Taichi, kiorky", "author_email": "taichino@gmail.com, kiorky@cryptelium.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: POSIX", "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", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Introduction\n============\n\n.. contents::\n\n\ncroniter provides iteration for the datetime object with a cron like format.\n\n::\n\n _ _\n ___ _ __ ___ _ __ (_) |_ ___ _ __\n / __| '__/ _ \\| '_ \\| | __/ _ \\ '__|\n | (__| | | (_) | | | | | || __/ |\n \\___|_| \\___/|_| |_|_|\\__\\___|_|\n\n\nWebsite: https://github.com/kiorky/croniter\n\nTravis badge\n=============\n.. image:: https://travis-ci.org/kiorky/croniter.svg?branch=master\n :target: https://travis-ci.org/kiorky/croniter\n\n\nUsage\n============\n\nA simple example::\n\n >>> from croniter import croniter\n >>> from datetime import datetime\n >>> base = datetime(2010, 1, 25, 4, 46)\n >>> iter = croniter('*/5 * * * *', base) # every 5 minutes\n >>> print(iter.get_next(datetime)) # 2010-01-25 04:50:00\n >>> print(iter.get_next(datetime)) # 2010-01-25 04:55:00\n >>> print(iter.get_next(datetime)) # 2010-01-25 05:00:00\n >>>\n >>> iter = croniter('2 4 * * mon,fri', base) # 04:02 on every Monday and Friday\n >>> print(iter.get_next(datetime)) # 2010-01-26 04:02:00\n >>> print(iter.get_next(datetime)) # 2010-01-30 04:02:00\n >>> print(iter.get_next(datetime)) # 2010-02-02 04:02:00\n >>>\n >>> iter = croniter('2 4 1 * wed', base) # 04:02 on every Wednesday OR on 1st day of month\n >>> print(iter.get_next(datetime)) # 2010-01-27 04:02:00\n >>> print(iter.get_next(datetime)) # 2010-02-01 04:02:00\n >>> print(iter.get_next(datetime)) # 2010-02-03 04:02:00\n >>>\n >>> iter = croniter('2 4 1 * wed', base, day_or=False) # 04:02 on every 1st day of the month if it is a Wednesday\n >>> print(iter.get_next(datetime)) # 2010-09-01 04:02:00\n >>> print(iter.get_next(datetime)) # 2010-12-01 04:02:00\n >>> print(iter.get_next(datetime)) # 2011-06-01 04:02:00\n >>> iter = croniter('0 0 * * sat#1,sun#2', base)\n >>> print(iter.get_next(datetime)) # datetime.datetime(2010, 2, 6, 0, 0)\n\nAll you need to know is how to use the constructor and the ``get_next``\nmethod, the signature of these methods are listed below::\n\n >>> def __init__(self, cron_format, start_time=time.time(), day_or=True)\n\ncroniter iterates along with ``cron_format`` from ``start_time``.\n``cron_format`` is **min hour day month day_of_week**, you can refer to\nhttp://en.wikipedia.org/wiki/Cron for more details. The ``day_or``\nswitch is used to control how croniter handles **day** and **day_of_week**\nentries. Default option is the cron behaviour, which connects those\nvalues using **OR**. If the switch is set to False, the values are connected\nusing **AND**. This behaves like fcron and enables you to e.g. define a job that\nexecutes each 2nd friday of a month by setting the days of month and the\nweekday.\n::\n\n >>> def get_next(self, ret_type=float)\n\nget_next calculates the next value according to the cron expression and\nreturns an object of type ``ret_type``. ``ret_type`` should be a ``float`` or a\n``datetime`` object.\n\nSupported added for ``get_prev`` method. (>= 0.2.0)::\n\n >>> base = datetime(2010, 8, 25)\n >>> itr = croniter('0 0 1 * *', base)\n >>> print(itr.get_prev(datetime)) # 2010-08-01 00:00:00\n >>> print(itr.get_prev(datetime)) # 2010-07-01 00:00:00\n >>> print(itr.get_prev(datetime)) # 2010-06-01 00:00:00\n\nYou can validate your crons using ``is_valid`` class method. (>= 0.3.18)::\n\n >>> croniter.is_valid('0 0 1 * *') # True\n >>> croniter.is_valid('0 wrong_value 1 * *') # False\n\nAbout DST\n=========\nBe sure to init your croniter instance with a TZ aware datetime for this to work !::\n\n >>> local_date = tz.localize(datetime(2017, 3, 26))\n >>> val = croniter('0 0 * * *', local_date).get_next(datetime)\n\nDevelop this package\n====================\n\n::\n\n git clone https://github.com/kiorky/croniter.git\n cd croniter\n virtualenv --no-site-packages venv\n . venv/bin/activate\n pip install --upgrade -r requirements/test.txt\n py.test src\n\n\nMake a new release\n====================\nWe use zest.fullreleaser, a great release infrastructure.\n\nDo and follow these instructions\n::\n\n . venv/bin/activate\n pip install --upgrade -r requirements/release.txt\n ./release.sh\n\n\nContributors\n===============\nThanks to all who have contributed to this project!\nIf you have contributed and your name is not listed below please let me know.\n\n - mrmachine\n - Hinnack\n - shazow\n - kiorky\n - jlsandell\n - mag009\n - djmitche\n - GreatCombinator\n - chris-baynes\n - ipartola\n - yuzawa-san\n\n\nChangelog\n==============\n\n0.3.30 (2019-04-20)\n-------------------\n\n- credits\n\n\n\n0.3.29 (2019-03-26)\n-------------------\n\n- credits\n- history stripping (security)\n- Handle -Sun notation, This fixes `#119 `_.\n [kiorky]\n- Handle invalid ranges correctly, This fixes `#114 `_.\n [kiorky]\n\n0.3.25 (2018-08-07)\n-------------------\n- Pypi hygiene\n [hugovk]\n\n\n0.3.24 (2018-06-20)\n-------------------\n- fix `#107 `_: microsecond threshold\n [kiorky]\n\n\n0.3.23 (2018-05-23)\n-------------------\n\n- fix `get_next` while perserving the fix of `get_prev` in 7661c2aaa\n [Avikam Agur ]\n\n\n0.3.22 (2018-05-16)\n-------------------\n- Don't count previous minute if now is dynamic\n If the code is triggered from 5-asterisk based cron\n `get_prev` based on `datetime.now()` is expected to return\n current cron iteration and not previous execution.\n [Igor Khrol ]\n\n0.3.20 (2017-11-06)\n-------------------\n\n- More DST fixes\n [Kevin Rose ]\n\n\n0.3.19 (2017-08-31)\n-------------------\n\n- fix #87: backward dst changes\n [kiorky]\n\n\n0.3.18 (2017-08-31)\n-------------------\n\n- Add is valid method, refactor errors\n [otherpirate, Mauro Murari ]\n\n\n0.3.17 (2017-05-22)\n-------------------\n- DOW occurence sharp style support.\n [kiorky, Kengo Seki ]\n\n\n0.3.16 (2017-03-15)\n-------------------\n\n- Better test suite [mrcrilly@github]\n- DST support [kiorky]\n\n0.3.15 (2017-02-16)\n-------------------\n\n- fix bug around multiple conditions and range_val in\n _get_prev_nearest_diff.\n [abeja-yuki@github]\n\n0.3.14 (2017-01-25)\n-------------------\n\n- issue #69: added day_or option to change behavior when day-of-month and\n day-of-week is given\n [Andreas Vogl ]\n\n\n\n0.3.13 (2016-11-01)\n-------------------\n\n- `Real fix for #34 `_\n [kiorky@github]\n- `Modernize test infra `_\n [kiorky@github]\n- `Release as a universal wheel `_\n [adamchainz@github]\n- `Raise ValueError on negative numbers `_\n [josegonzalez@github]\n- `Compare types using \"issubclass\" instead of exact match `_\n [darkk@github]\n- `Implement step cron with a variable base `_\n [josegonzalez@github]\n\n0.3.12 (2016-03-10)\n-------------------\n- support setting ret_type in __init__ [Brent Tubbs ]\n\n0.3.11 (2016-01-13)\n-------------------\n\n- Bug fix: The get_prev API crashed when last day of month token was used. Some\n essential logic was missing.\n [Iddo Aviram ]\n\n\n0.3.10 (2015-11-29)\n-------------------\n\n- The fuctionality of 'l' as day of month was broken, since the month variable\n was not properly updated\n [Iddo Aviram ]\n\n0.3.9 (2015-11-19)\n------------------\n\n- Don't use datetime functions python 2.6 doesn't support\n [petervtzand]\n\n0.3.8 (2015-06-23)\n------------------\n- Truncate microseconds by setting to 0\n [Corey Wright]\n\n\n0.3.7 (2015-06-01)\n------------------\n\n- converting sun in range sun-thu transforms to int 0 which is\n recognized as empty string; the solution was to convert sun to string \"0\"\n\n0.3.6 (2015-05-29)\n------------------\n\n- Fix default behavior when no start_time given\n Default value for `start_time` parameter is calculated at module init time rather than call time.\n- Fix timezone support and stop depending on the system time zone\n\n\n\n0.3.5 (2014-08-01)\n------------------\n\n- support for 'l' (last day of month)\n\n\n0.3.4 (2014-01-30)\n------------------\n\n- Python 3 compat\n- QA Relase\n\n\n0.3.3 (2012-09-29)\n------------------\n- proper packaging\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/kiorky/croniter", "keywords": "datetime,iterator,cron", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "croniter", "package_url": "https://pypi.org/project/croniter/", "platform": "", "project_url": "https://pypi.org/project/croniter/", "project_urls": { "Homepage": "http://github.com/kiorky/croniter" }, "release_url": "https://pypi.org/project/croniter/0.3.30/", "requires_dist": [ "python-dateutil" ], "requires_python": ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "summary": "croniter provides iteration for datetime object with cron like format", "version": "0.3.30" }, "last_serial": 5168008, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "0245ec68fb2cd1f6d8e2bba2396c7fee", "sha256": "59e1859df77e4fc73c4aa9dcd865e8708d1dd6bfc605167126cef94dc933a74a" }, "downloads": -1, "filename": "croniter-0.1.1.tar.gz", "has_sig": false, "md5_digest": "0245ec68fb2cd1f6d8e2bba2396c7fee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4340, "upload_time": "2010-01-24T21:32:00", "url": "https://files.pythonhosted.org/packages/11/f7/fd2e71505a480135c483c830dd08bc007fc7d5d4f835c9fc9764cab9c014/croniter-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "b6ea449ed743ad5e148aae72dc9f0db1", "sha256": "9cb7a0577ffcdd0ea4079105b577653bca197d0e36803c9c040eb24947672ced" }, "downloads": -1, "filename": "croniter-0.1.2.tar.gz", "has_sig": false, "md5_digest": "b6ea449ed743ad5e148aae72dc9f0db1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4339, "upload_time": "2010-01-24T21:33:34", "url": "https://files.pythonhosted.org/packages/b7/f9/8681a3aab7796cb16ab09e36b6aee4607f056c813e206b6e8371dcc9b33a/croniter-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "d875e95c2896318155c8a3de0b541576", "sha256": "34995b9def0d8208b2c7253a1f086fb132a366b1fe2490065590f3511ae6db17" }, "downloads": -1, "filename": "croniter-0.1.3.tar.gz", "has_sig": false, "md5_digest": "d875e95c2896318155c8a3de0b541576", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4345, "upload_time": "2010-01-24T21:38:02", "url": "https://files.pythonhosted.org/packages/e7/94/b576fba0bf9d1784f4193ea2d4df34323021cd6991fed646b3641d032828/croniter-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "built for Darwin-9.8.0", "digests": { "md5": "e0ad8bf97e4c5b40def8fcfe025eff8f", "sha256": "3494691c0a5204db51b305c59646fa826482c4a6a1ba1b05bc18e8b52de02275" }, "downloads": -1, "filename": "croniter-0.1.4.macosx-10.5-i386.tar.gz", "has_sig": false, "md5_digest": "e0ad8bf97e4c5b40def8fcfe025eff8f", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 8144, "upload_time": "2010-01-27T05:29:44", "url": "https://files.pythonhosted.org/packages/67/f6/4da6cc9ce50c95b108555883c6de1eef6f49e83f877baac6ec463da614d8/croniter-0.1.4.macosx-10.5-i386.tar.gz" }, { "comment_text": "", "digests": { "md5": "27c75bb9fd84533765dfffae5bdff711", "sha256": "3d60bff9066cfbe4c5d8133a593c9e4384b34dfdafd7ba12e6bf7979f3f66b77" }, "downloads": -1, "filename": "croniter-0.1.4-py2.5.egg", "has_sig": false, "md5_digest": "27c75bb9fd84533765dfffae5bdff711", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 10772, "upload_time": "2010-01-27T05:30:14", "url": "https://files.pythonhosted.org/packages/4e/af/39c475691d7671073471b7e2cf42c7f27c5fdb789e42e3ea386109412193/croniter-0.1.4-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "a7c0f1e46a194cdec4e07561f96adf3f", "sha256": "7cb43fe7a76dbc40e03753eafbaf74da955f1d2c6fab94146f000e25a23db75b" }, "downloads": -1, "filename": "croniter-0.1.4.tar.gz", "has_sig": false, "md5_digest": "a7c0f1e46a194cdec4e07561f96adf3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4362, "upload_time": "2010-01-27T05:29:07", "url": "https://files.pythonhosted.org/packages/82/61/55bb3abc8f395b55fa31737246a662074f8eb0aa0658ce0464034b0112b7/croniter-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "ce15b9db2b0d746bb19b1b4e1659bc08", "sha256": "1e3448bdd750537130b8493b45158189336e7b4b49c37fd3c4b1fe8d4e3b07e8" }, "downloads": -1, "filename": "croniter-0.1.5-py2.5.egg", "has_sig": false, "md5_digest": "ce15b9db2b0d746bb19b1b4e1659bc08", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 10771, "upload_time": "2010-01-27T05:30:55", "url": "https://files.pythonhosted.org/packages/7c/56/6e71b1a381f8bc26f7ca6a51214636fd445303c02482d8d835f156701c06/croniter-0.1.5-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "7a6109ed8afc527e9be51d00144c2a15", "sha256": "e893d1227f5ff91dcdda98e6a570d83fd57f63b526e9cc52bc59f905fb5cda41" }, "downloads": -1, "filename": "croniter-0.1.5.tar.gz", "has_sig": false, "md5_digest": "7a6109ed8afc527e9be51d00144c2a15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4354, "upload_time": "2010-01-27T05:30:56", "url": "https://files.pythonhosted.org/packages/8d/69/fa9e75850e269c8dc0b2a321dd54433f9e19e18d12eb005eddbd88e532e5/croniter-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "51c8e3b378c2bf65b8ecb484985b6e8e", "sha256": "865717ccaacb9a6039b4159163fcf6b82ee1d1ce4c94b5afff7f8c188849eb13" }, "downloads": -1, "filename": "croniter-0.1.6.tar.gz", "has_sig": false, "md5_digest": "51c8e3b378c2bf65b8ecb484985b6e8e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4381, "upload_time": "2010-08-10T00:13:08", "url": "https://files.pythonhosted.org/packages/e4/ac/1d194ca5c253ae8391af8e95c6a485316421b423b4dcaab06fa5c5ba2601/croniter-0.1.6.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "fd7477bd050f2474ca06f51504203585", "sha256": "f2e0e568c636309d4ea30cd174295ef4b5a49b6311b6382cfbe7c2e1ba4df2c3" }, "downloads": -1, "filename": "croniter-0.2.0.tar.gz", "has_sig": false, "md5_digest": "fd7477bd050f2474ca06f51504203585", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4947, "upload_time": "2010-08-25T10:06:19", "url": "https://files.pythonhosted.org/packages/da/27/99f52ad43909fb91d369881b3367e253e3bb0ce462f269955619a1e4206e/croniter-0.2.0.tar.gz" } ], "0.2.1": [], "0.2.2": [ { "comment_text": "", "digests": { "md5": "cecbde42ba4138423d62d1a77befa4fe", "sha256": "333eea2c3751af164b93a9307bb83e8c02d3ff68fb8b8ce7b397fc0f4477c21f" }, "downloads": -1, "filename": "croniter-0.2.2.tar.gz", "has_sig": false, "md5_digest": "cecbde42ba4138423d62d1a77befa4fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4972, "upload_time": "2011-01-26T16:40:50", "url": "https://files.pythonhosted.org/packages/ee/4e/d255e7b094c3d3f14adb502b0e5c8add16409a9e09e5c38088f1ddacb1f9/croniter-0.2.2.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "5257165c61a57a06e947976156ddac4b", "sha256": "949d5af4d214de3d80944ca28bff7eca979a748d2093aa40a85ef7415b47391b" }, "downloads": -1, "filename": "croniter-0.2.4.tar.gz", "has_sig": false, "md5_digest": "5257165c61a57a06e947976156ddac4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5018, "upload_time": "2011-01-26T18:05:33", "url": "https://files.pythonhosted.org/packages/84/a5/16a9ba322ab7d13eb9bd7fa3320f93b4ccb0ed68aaa33d469a8cf700ee33/croniter-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "a8b4e4204c8b08c07d1039058797a111", "sha256": "6b196b9376c103f2c793870fcfc4134861c363ef92134a5a284879e0e0837b09" }, "downloads": -1, "filename": "croniter-0.2.5.tar.gz", "has_sig": false, "md5_digest": "a8b4e4204c8b08c07d1039058797a111", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5026, "upload_time": "2011-01-27T16:05:17", "url": "https://files.pythonhosted.org/packages/6f/a8/eae77d00502617c7f7f6e504f2cd8f366f491fb7dfa3d969b2f0c72d0ed7/croniter-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "7572d3597e7873ff603506a03315f7ff", "sha256": "3c26afa6828008bab2dcf5f17299690db7ab2a30f3624d250e11af78bf27a1cd" }, "downloads": -1, "filename": "croniter-0.2.6-py2.6.egg", "has_sig": false, "md5_digest": "7572d3597e7873ff603506a03315f7ff", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 17212, "upload_time": "2011-10-29T23:03:28", "url": "https://files.pythonhosted.org/packages/b3/b6/6b536055a40cda5bf0976786d803fef7aff95fcf4e0f38c6c955e24e828c/croniter-0.2.6-py2.6.egg" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "94087628871a70358a23eb43358f20c6", "sha256": "c3d83150576cd6d2a7c1d501a6b7ebe03819c054b8585cdf98be3acb3ef9bff7" }, "downloads": -1, "filename": "croniter-0.2.7-py2.6.egg", "has_sig": false, "md5_digest": "94087628871a70358a23eb43358f20c6", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 17260, "upload_time": "2012-02-24T19:27:21", "url": "https://files.pythonhosted.org/packages/94/57/62bc5629f5a95dc0604963eefd40d31c2d7cfb386d553db78d127529e002/croniter-0.2.7-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "afb866f5cb00ccd1b90c3de6e2bd97af", "sha256": "744ffca9231a33260934c45b898adef008726b0d67a761c480a34364a6baa0b8" }, "downloads": -1, "filename": "croniter-0.2.7.tar.gz", "has_sig": false, "md5_digest": "afb866f5cb00ccd1b90c3de6e2bd97af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6005, "upload_time": "2012-02-24T19:27:29", "url": "https://files.pythonhosted.org/packages/af/48/bf20779b18efca1a0cdde293d541d5bf6f3a746267b6ddeffa8aa1c70237/croniter-0.2.7.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "2a42e266a2cf6aff0442968428c54a43", "sha256": "f9a1946a349abc6394043d2eb10a2d7bfadc64a645dbfec6e5693a244a7bee3b" }, "downloads": -1, "filename": "croniter-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2a42e266a2cf6aff0442968428c54a43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6530, "upload_time": "2012-04-06T16:46:27", "url": "https://files.pythonhosted.org/packages/c2/1c/b7db6779e3f9e87a216eb6c425b22211bf506100f7a87c3aa057a4a7a296/croniter-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "e5f560291697e2a93b8d19353670573d", "sha256": "b0b2844fea8ba13ab3399b9ced9dc87d6564882a8ba90245b32ba2c087ccdfb2" }, "downloads": -1, "filename": "croniter-0.3.1.tar.gz", "has_sig": false, "md5_digest": "e5f560291697e2a93b8d19353670573d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6682, "upload_time": "2012-09-26T03:12:00", "url": "https://files.pythonhosted.org/packages/e8/1f/6ca13f2eb85fd670b962b738c0dc749c6943627e81bc383066f95b10a9b9/croniter-0.3.1.tar.gz" } ], "0.3.10": [ { "comment_text": "", "digests": { "md5": "b660a73bd3e0e5cfbc9d0350c5a469d3", "sha256": "42a30786c229eac4cd808c8f407c1a69e539e995e8fbaed51a7e7b03e96918e4" }, "downloads": -1, "filename": "croniter-0.3.10.tar.gz", "has_sig": false, "md5_digest": "b660a73bd3e0e5cfbc9d0350c5a469d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13391, "upload_time": "2015-11-29T14:01:31", "url": "https://files.pythonhosted.org/packages/aa/e3/7e3eb628c89d65d7ce51fd911041e415524aa20ac69f6aff2349e271a8b5/croniter-0.3.10.tar.gz" } ], "0.3.11": [ { "comment_text": "", "digests": { "md5": "4846554e16ee644d6faafca44ad4a786", "sha256": "38fa316e95990a2d7f45bc7c29edb0c4777e87ac5dd49b102e67d0dae304492b" }, "downloads": -1, "filename": "croniter-0.3.11.tar.gz", "has_sig": false, "md5_digest": "4846554e16ee644d6faafca44ad4a786", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13647, "upload_time": "2016-01-13T09:19:25", "url": "https://files.pythonhosted.org/packages/96/b0/6d3617854d092113c95ab35a52523a1a85d87adcc4a4d2587ec5004cc3d2/croniter-0.3.11.tar.gz" } ], "0.3.12": [ { "comment_text": "", "digests": { "md5": "7c3690bb66ff53d91de7f41c52491d4b", "sha256": "445cb26bc2f3cff25a7b06575caf98312b552affffeee0437f26d416c6e3c895" }, "downloads": -1, "filename": "croniter-0.3.12.tar.gz", "has_sig": false, "md5_digest": "7c3690bb66ff53d91de7f41c52491d4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13761, "upload_time": "2016-03-10T20:31:25", "url": "https://files.pythonhosted.org/packages/b1/2d/652b55de9fbda7f2337022399e990645a2f28401aca411c6af09e4e72d94/croniter-0.3.12.tar.gz" } ], "0.3.13": [ { "comment_text": "", "digests": { "md5": "02642bbbb84b41454fe342374522c74f", "sha256": "eca07fa66f9aef886468526133eadf0b71700e2be8a9f379a76cae08f79dcb9d" }, "downloads": -1, "filename": "croniter-0.3.13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "02642bbbb84b41454fe342374522c74f", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14919, "upload_time": "2016-11-01T15:47:47", "url": "https://files.pythonhosted.org/packages/92/4e/64d76cb2bfe54f4c1e81f7e0a2994c7e3d96796aa43a97231d885083f6f8/croniter-0.3.13-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "764caed3ec3d7a2d9ceeee8e666370ae", "sha256": "e8784d1a87b99699246aac9bb1105d80d379484c882e6f2792603eba48937747" }, "downloads": -1, "filename": "croniter-0.3.13.tar.gz", "has_sig": false, "md5_digest": "764caed3ec3d7a2d9ceeee8e666370ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14534, "upload_time": "2016-11-01T15:31:34", "url": "https://files.pythonhosted.org/packages/e3/b9/2658291fb86dc07abed098b7de3b1e558761e0aa6c9ddfee7c0624a5038c/croniter-0.3.13.tar.gz" } ], "0.3.14": [ { "comment_text": "", "digests": { "md5": "92b69e56c9ae2959f22170f7a390d1d1", "sha256": "692373cbf56845827ad58ca8d7dc9922ad35a6fa4d1521645ead22a30b299206" }, "downloads": -1, "filename": "croniter-0.3.14.tar.gz", "has_sig": false, "md5_digest": "92b69e56c9ae2959f22170f7a390d1d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15421, "upload_time": "2017-01-25T10:14:23", "url": "https://files.pythonhosted.org/packages/c2/aa/d97af4bdd4b2a42e0979f5cb84f4c41e5ad88c6e2fea85f3e1ba19eb7a69/croniter-0.3.14.tar.gz" } ], "0.3.15": [ { "comment_text": "", "digests": { "md5": "3839211d8701108b5a1d84b7bc1b6b5b", "sha256": "ac0c9811ebdecd27bc29eb0711e2d87c8c280a53d0e92c48b600654d23b1d541" }, "downloads": -1, "filename": "croniter-0.3.15.tar.gz", "has_sig": false, "md5_digest": "3839211d8701108b5a1d84b7bc1b6b5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15953, "upload_time": "2017-02-16T09:49:43", "url": "https://files.pythonhosted.org/packages/54/ac/fa2e0779c8949bb16a21b73433d3a2fdf9cb9ab51b0f77e76ba97a58314f/croniter-0.3.15.tar.gz" } ], "0.3.16": [ { "comment_text": "", "digests": { "md5": "3657a536a91089d5f8b9fec439a2ce40", "sha256": "4bab3358c52fcff087a58635dfdda6c68809b7367cd7cb5054740f11c4d85ffa" }, "downloads": -1, "filename": "croniter-0.3.16.tar.gz", "has_sig": false, "md5_digest": "3657a536a91089d5f8b9fec439a2ce40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16686, "upload_time": "2017-03-15T22:42:51", "url": "https://files.pythonhosted.org/packages/58/2a/17d003f2a9a0188cf9365d63b3351c6522b7d83996b70270c65c789e35b9/croniter-0.3.16.tar.gz" } ], "0.3.17": [ { "comment_text": "", "digests": { "md5": "98a98597901f4e03b0701a46a8c0cfab", "sha256": "9db0f313db21e38c6861e88f3649cb828dfc0d450994fb1ed20c279727fc811b" }, "downloads": -1, "filename": "croniter-0.3.17.tar.gz", "has_sig": false, "md5_digest": "98a98597901f4e03b0701a46a8c0cfab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17362, "upload_time": "2017-05-22T10:11:48", "url": "https://files.pythonhosted.org/packages/7d/55/e8fff5a04207aaf17bc98a1c25205e6f746cd5b47fa0ace7d1135956a8df/croniter-0.3.17.tar.gz" } ], "0.3.18": [ { "comment_text": "", "digests": { "md5": "938b0c2139d8a7e6c09d6c63dfce92fc", "sha256": "f79cce36cb00e81000d46ffb58b9866eb189bc29fd074a5da4b9fbba4a42cd66" }, "downloads": -1, "filename": "croniter-0.3.18.tar.gz", "has_sig": false, "md5_digest": "938b0c2139d8a7e6c09d6c63dfce92fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17807, "upload_time": "2017-08-31T07:43:50", "url": "https://files.pythonhosted.org/packages/bf/9b/5bacf3e50c3121f803b095a566fc07366c81a3d89a844cee28eb4708fab9/croniter-0.3.18.tar.gz" } ], "0.3.19": [ { "comment_text": "", "digests": { "md5": "e8b3f4a684c64878f7c6be6c4f9352a6", "sha256": "7cf86afeb7af0e6de7d3fa33128a2bcdba74afe50fb4b936ad13b338d42d0c0b" }, "downloads": -1, "filename": "croniter-0.3.19.tar.gz", "has_sig": false, "md5_digest": "e8b3f4a684c64878f7c6be6c4f9352a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18199, "upload_time": "2017-08-31T10:04:55", "url": "https://files.pythonhosted.org/packages/5a/c4/2bf4dc79f7d17f7d5bd9f334a951ffb3af441797ed30308467a04e010d55/croniter-0.3.19.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "6b721369abbf86ac49b5d6080fe82bd4", "sha256": "7b23863432d57c0e1f5b43485a816ead6d8f46cbe99ad1838821d2da4641f8af" }, "downloads": -1, "filename": "croniter-0.3.2.tar.gz", "has_sig": false, "md5_digest": "6b721369abbf86ac49b5d6080fe82bd4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7048, "upload_time": "2012-09-26T03:27:32", "url": "https://files.pythonhosted.org/packages/cb/80/24105efbf85ff5bb66194123ee01882c2b05f399c2589b95d6b558970ff8/croniter-0.3.2.tar.gz" } ], "0.3.20": [ { "comment_text": "", "digests": { "md5": "317388d3e8439894dd87ff6b754de033", "sha256": "272c333ab0b354a82173e502d419299e2f3dfdd5dce771ecd8bdf03680495016" }, "downloads": -1, "filename": "croniter-0.3.20.tar.gz", "has_sig": false, "md5_digest": "317388d3e8439894dd87ff6b754de033", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18279, "upload_time": "2017-11-06T21:22:35", "url": "https://files.pythonhosted.org/packages/69/84/1a839fdb454929b2f5f34dfc0f6ae9c393193e4c088fa62b37ec318c0df4/croniter-0.3.20.tar.gz" } ], "0.3.22": [ { "comment_text": "", "digests": { "md5": "b3a9523d20c33ef87d6dd5d5e198a5c6", "sha256": "4f8e828fab4bf5918b4c2e990b6a8f9d653557ae7f1f38bebed63bcfe1858a45" }, "downloads": -1, "filename": "croniter-0.3.22.tar.gz", "has_sig": false, "md5_digest": "b3a9523d20c33ef87d6dd5d5e198a5c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18643, "upload_time": "2018-05-16T14:24:41", "url": "https://files.pythonhosted.org/packages/79/f1/3d9dac6f43a1f789ad79c1dc2589e7389fc4f0c4753a451485ecb326c357/croniter-0.3.22.tar.gz" } ], "0.3.23": [ { "comment_text": "", "digests": { "md5": "8925413b536fd390ec7b9fd73f50e5d3", "sha256": "1cdc2589b2954bebaa339dec687588ebed6884bde37f7594ac637dd7d851facf" }, "downloads": -1, "filename": "croniter-0.3.23.tar.gz", "has_sig": false, "md5_digest": "8925413b536fd390ec7b9fd73f50e5d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18941, "upload_time": "2018-05-23T17:35:33", "url": "https://files.pythonhosted.org/packages/28/27/f2c883373aa58fe77ecfc09a984f1ae52bc05790c0eee66b87f65d14cbfe/croniter-0.3.23.tar.gz" } ], "0.3.24": [ { "comment_text": "", "digests": { "md5": "10762f3b56abce09de29777e7942cc40", "sha256": "4e9cb809d8879372e179cabfb7dc15432815b62be034713cc7d9dc09d62ebf02" }, "downloads": -1, "filename": "croniter-0.3.24.tar.gz", "has_sig": false, "md5_digest": "10762f3b56abce09de29777e7942cc40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19153, "upload_time": "2018-06-20T16:56:23", "url": "https://files.pythonhosted.org/packages/27/69/2426b76c3647d8cc959e88aadecfb7ad96cf2c40c0ea784b6bf43a844c73/croniter-0.3.24.tar.gz" } ], "0.3.25": [ { "comment_text": "", "digests": { "md5": "16795bd790ddfae47997aa1d3bbbaa6e", "sha256": "64d5f8c719249694265190810ef2f051345007246c99a3879a35b393d593d668" }, "downloads": -1, "filename": "croniter-0.3.25-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "16795bd790ddfae47997aa1d3bbbaa6e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 15485, "upload_time": "2018-08-07T10:07:43", "url": "https://files.pythonhosted.org/packages/1f/96/700cea52151d14af35cfe33966da872e04b0440b86bcbee25c0abda85745/croniter-0.3.25-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49a4b08394ec9326cb6a98a2c33e4d61", "sha256": "8ce5e4edd6f1956e70c8a31211cf86a7859aa1f0ff256107723582d79238e002" }, "downloads": -1, "filename": "croniter-0.3.25.tar.gz", "has_sig": false, "md5_digest": "49a4b08394ec9326cb6a98a2c33e4d61", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 19340, "upload_time": "2018-08-07T10:07:45", "url": "https://files.pythonhosted.org/packages/7b/7c/0309360f1540701e9a7390e058ac069f98f6f97fb62def6d3736e4d1fd88/croniter-0.3.25.tar.gz" } ], "0.3.28": [ { "comment_text": "", "digests": { "md5": "e8142366bd5ce99292566e1f1a158be7", "sha256": "79a5eeaa10a7d5fb9bdae54211b8c1d306e0ed481fa970934bf3197940650d6f" }, "downloads": -1, "filename": "croniter-0.3.28-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e8142366bd5ce99292566e1f1a158be7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 16022, "upload_time": "2019-03-19T15:30:35", "url": "https://files.pythonhosted.org/packages/78/62/2c20e81eafeb07128e8a94d8b0835fa8ffc88160a87f4d5725d5ece949bb/croniter-0.3.28-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f52af46d07317af7863d96a228cb7b2f", "sha256": "c31adf6a9b0b1981d362538bfa57769acaade1d62f80c264f402ce1f8d1210b4" }, "downloads": -1, "filename": "croniter-0.3.28.tar.gz", "has_sig": false, "md5_digest": "f52af46d07317af7863d96a228cb7b2f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 20294, "upload_time": "2019-03-19T15:30:37", "url": "https://files.pythonhosted.org/packages/91/05/0097f22727453052cf700b7999f7e4df1c9a576749eba65df0bdc07502d3/croniter-0.3.28.tar.gz" } ], "0.3.29": [ { "comment_text": "", "digests": { "md5": "7a8ad6d99ac3988e6640e5041b4526eb", "sha256": "625949cbd38a0b2325295591940dfa5fa0dfca41d03150ae0284a924e0be10f0" }, "downloads": -1, "filename": "croniter-0.3.29-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7a8ad6d99ac3988e6640e5041b4526eb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 16018, "upload_time": "2019-03-26T13:37:14", "url": "https://files.pythonhosted.org/packages/a9/c9/11182a2507798c661b04a7914739ea8ca73a738e6869a23742029f51bc1a/croniter-0.3.29-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d2b9d7f85c3d007c1e0d53f70f9b94c2", "sha256": "66b6a9c6b2d1a85d4af51453b2328be775a173e688b69eb3a96a7ec752ba77a3" }, "downloads": -1, "filename": "croniter-0.3.29.tar.gz", "has_sig": false, "md5_digest": "d2b9d7f85c3d007c1e0d53f70f9b94c2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 20276, "upload_time": "2019-03-26T13:37:16", "url": "https://files.pythonhosted.org/packages/c6/63/250b21f69d8577f8840977ac7d154b3188c95d7f67a8d5cf21775c0dd99f/croniter-0.3.29.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "0fca7813a1d145ec9fdc3018c79b2a54", "sha256": "f252c907c1583cd6ba709a5f1ddd8159e09348e28a96c3179bae7c2ad464cfc8" }, "downloads": -1, "filename": "croniter-0.3.3.zip", "has_sig": false, "md5_digest": "0fca7813a1d145ec9fdc3018c79b2a54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18151, "upload_time": "2012-09-29T16:21:12", "url": "https://files.pythonhosted.org/packages/86/b2/62de49793e47e81d154a172f66ac73c5c6506737a6a5604bac4a71e14d19/croniter-0.3.3.zip" } ], "0.3.30": [ { "comment_text": "", "digests": { "md5": "7655b3a90c297a983c4a61fd28c5385b", "sha256": "0d905dbe6f131a910fd3dde792f0129788cd2cb3a8048c5f7aaa212670b0cef2" }, "downloads": -1, "filename": "croniter-0.3.30-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7655b3a90c297a983c4a61fd28c5385b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 16001, "upload_time": "2019-04-20T15:44:36", "url": "https://files.pythonhosted.org/packages/c8/4c/04dea44f87b963d5c3f2bbc391e6c69d0a14aa896e35590be56213a04e4f/croniter-0.3.30-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e4a8987521b144c4c2149d4adde8f55c", "sha256": "538adeb3a7f7816c3cdec6db974c441620d764c25ff4ed0146ee7296b8a50590" }, "downloads": -1, "filename": "croniter-0.3.30.tar.gz", "has_sig": false, "md5_digest": "e4a8987521b144c4c2149d4adde8f55c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 18122, "upload_time": "2019-04-20T15:44:37", "url": "https://files.pythonhosted.org/packages/2c/ad/1cf1dba43cd3740b07879671c6c9c9870941bf78356ac432d24529da8913/croniter-0.3.30.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "0e82c181071558136d63ff3203f91290", "sha256": "a4cb85b6c8aafe56ff1cd22479bc3c22a70d2df758f314818ffb5b1f4d3e8189" }, "downloads": -1, "filename": "croniter-0.3.4.zip", "has_sig": false, "md5_digest": "0e82c181071558136d63ff3203f91290", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16040, "upload_time": "2014-01-29T23:05:27", "url": "https://files.pythonhosted.org/packages/a3/d2/ed7f770633649339fb47ae497e7215dd0907c271f5d735e3289c5b7f95ff/croniter-0.3.4.zip" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "63cf9e4d6778dc4102a4794a39a1b45b", "sha256": "ecd5cda855668ae11ed5ea341e9c2145bbab88bfd0763666951cfe15bab23f50" }, "downloads": -1, "filename": "croniter-0.3.5.zip", "has_sig": false, "md5_digest": "63cf9e4d6778dc4102a4794a39a1b45b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16215, "upload_time": "2014-08-01T15:12:45", "url": "https://files.pythonhosted.org/packages/40/d4/850e2e4880370135bfc31c5b68e7d4ede7fbf68c2a8ed1a355c3ce759ad9/croniter-0.3.5.zip" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "679ae474b881434abc58ab3275d74365", "sha256": "6dc440f8259488df456ec6a762585b9572bcb54602b3e9564225457008d77a1d" }, "downloads": -1, "filename": "croniter-0.3.6.tar.gz", "has_sig": false, "md5_digest": "679ae474b881434abc58ab3275d74365", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12475, "upload_time": "2015-05-29T19:48:20", "url": "https://files.pythonhosted.org/packages/ac/72/1a4994856a6ed1eaa1651947d616bcffc4203875740601be4371f92a70c9/croniter-0.3.6.tar.gz" } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "bdbccaebca7e9650486ae8b953bbf014", "sha256": "6b8ca55291b9ea7d90d440cb9a1bc8b8d1ccb71c360eac8a252b7ff51ba7aab6" }, "downloads": -1, "filename": "croniter-0.3.7.tar.gz", "has_sig": false, "md5_digest": "bdbccaebca7e9650486ae8b953bbf014", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12760, "upload_time": "2015-06-01T07:38:02", "url": "https://files.pythonhosted.org/packages/d5/dd/6068ea7d729c90e81300c48977b80a83e883b4dd96e7a48c4ffde96ef273/croniter-0.3.7.tar.gz" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "a7b57bf67979e0f724eb66018c30048a", "sha256": "dee09f46367717123a89a0e1df46b2e268d107a12321157c6a891d281652e3f0" }, "downloads": -1, "filename": "croniter-0.3.8.tar.gz", "has_sig": false, "md5_digest": "a7b57bf67979e0f724eb66018c30048a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12913, "upload_time": "2015-06-23T19:35:12", "url": "https://files.pythonhosted.org/packages/71/df/f36756144521445654c77d2e98071ed60b9447764901038b148f6c834d94/croniter-0.3.8.tar.gz" } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "5ae76240790797d46946a71199224162", "sha256": "8eb2fe68d261c935fd1f5bab610f50bcdd51992793f52ad73074735ccddf0156" }, "downloads": -1, "filename": "croniter-0.3.9.tar.gz", "has_sig": false, "md5_digest": "5ae76240790797d46946a71199224162", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13130, "upload_time": "2015-11-19T09:41:19", "url": "https://files.pythonhosted.org/packages/83/ae/9109f06be4c59089bd8d0f528a228fc64f5236ebe1f1effc33805a2ab2c6/croniter-0.3.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7655b3a90c297a983c4a61fd28c5385b", "sha256": "0d905dbe6f131a910fd3dde792f0129788cd2cb3a8048c5f7aaa212670b0cef2" }, "downloads": -1, "filename": "croniter-0.3.30-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7655b3a90c297a983c4a61fd28c5385b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 16001, "upload_time": "2019-04-20T15:44:36", "url": "https://files.pythonhosted.org/packages/c8/4c/04dea44f87b963d5c3f2bbc391e6c69d0a14aa896e35590be56213a04e4f/croniter-0.3.30-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e4a8987521b144c4c2149d4adde8f55c", "sha256": "538adeb3a7f7816c3cdec6db974c441620d764c25ff4ed0146ee7296b8a50590" }, "downloads": -1, "filename": "croniter-0.3.30.tar.gz", "has_sig": false, "md5_digest": "e4a8987521b144c4c2149d4adde8f55c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 18122, "upload_time": "2019-04-20T15:44:37", "url": "https://files.pythonhosted.org/packages/2c/ad/1cf1dba43cd3740b07879671c6c9c9870941bf78356ac432d24529da8913/croniter-0.3.30.tar.gz" } ] }