{ "info": { "author": "Vincent D. Warmerdam", "author_email": "", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8" ], "description": "![](docs/full-logo.png)\n\n> Skedulord is a tool that automates scheduling and logging of jobs. It's a \nlayer on top of cron. It's mainly meant for Python users but it can also be\nused for other tools launched from the command line. \n\nIf you're new, check out the [getting started guide](https://koaning.github.io/skedulord/getting-started.html). \n\n## Installation \n\n```python\npip install skedulord\n```\n\nIf you like to live dangerously, you can also install from GitHub for the latest commit. \n\n```\npython -m pip install --upgrade \"skedulord @ git+https://github.com/koaning/skedulord.git\"\n```\n\n## Usage \n\nThese are all the commands available: \n\n```\n> python -m skedulord\nUsage: __main__.py [OPTIONS] COMMAND [ARGS]...\n\n SKEDULORD: helps with cronjobs and logs.\n\nOptions:\n --help Show this message and exit.\n\nCommands:\n schedule Set (or reset) cron jobs based on config.\n run Run a single command, which is logged by skedulord.\n history Shows a table with job status.\n summary Shows a summary of all jobs.\n build Builds static html files so you may view a dashboard.\n serve Opens the dashboard in a browser.\n wipe Wipe the disk or schedule state.\n version Show the version.\n```\n\n## Docmentation\n\nThe docs are hosted on GitHub Pages and can be found [here](koaning.github.io/skedulord/).\n\n## Demo\n\nLet's say we've got this small python file. \n\n```python\n# script.py\nfor i in range(5):\n print(f\"i am at iteration {i}\")\n```\n\nThe idea here is that `skedulord` can run this and keep track of logs.\n\n```text\npython -m skedulord run jobname1 \"python script.py\" --retry 3 --wait 60\npython -m skedulord run jobname2 \"python script.py\" --retry 3 --wait 60\n```\n\nThis will run the `\"python script.py\"` command as if you'd normally run it\nfrom the command line. The `skedulord` parts around it do some extra things though.\n\n## Logs \n\nThe main thing `skedulord` does is structure logs from your scripts. The logs\nare generated in a structured format so it's easy to find bugs. When we ran \nthe `skedulord run` command we attached a jobname (aptly named `\"jobname\"`) which\nwill also be the name of the folder where logs can be found.\n\n```text\n> tree ~/.skedulord/\n/Users/vincent/.skedulord/\n\u251c\u2500\u2500 heartbeat.jsonl\n\u251c\u2500\u2500 jobname1\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 2021-02-14T16:56:34.html\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 2021-02-14T16:56:34.txt\n\u2514\u2500\u2500 jobname2\n \u251c\u2500\u2500 2021-02-14T16:56:35.html\n \u2514\u2500\u2500 2021-02-14T16:56:35.txt\n\n```\n\nThe logs themselves have a timestamp as the filename. There are basic `.txt` logs \nbut also fancy `.html` logs which render nicely in a dashboard.\n\n## Mechanics \n\nWe've designed `skedulord` to also be able to rerun jobs if they fail. Hiccups are\npart of real life and sometimes we can make a job succeed by trying again 5 minutes\nlater. This is why you can specify how many attempts you'd like the job to make by \nsetting `--retry`. You can also specify the wait time between attempts via `--wait`. \n\n### Schedule \n\nThe nice thing about `skedulord` running from the command line is that you can schedule\nit via `crontab` too! The downside is that it can get complex. You'd need to ensure that\nthe jobs have access to the correct virtual environments and this can become a drag. \n\nTo help out, `skedulord` can also configure cron for you by configuring a `.yml` file.\n\n```yaml\n# schedule.yml\nuser: vincent\nschedule:\n - name: ping\n command: python /home/vincent/path/scripts/ping.py\n cron: \"*/2 * * * *\"\n - name: github issues downloader\n command: python /full/path/to/cli.py --repo foobar --output /Users/vincent/data\n cron: \"0 1 * * *\"\n - name: github actions downloader\n command: python /full/path/to/scrape.py --repo foobar --output /Users/vincent/data\n cron: \"0 1 * * *\"\n```\n\nGiven a schedule like this, skedulord can schedule everything via; \n\n```text\npython -m skedulord schedule schedule.yml\n```\n\nYou can confirm yourself that all jobs are now scheduled to run, with skedulord\ntaking care of all the logging. \n\n```text\ncrontab -e\n```\n\n> Note that when a command starts with `python` skedulord will assume the same virtualenv\nas the one that ran the `skedulord schedule` command. You may also pass another Python path\nif you prefer to use another virtualenv.\n\n### Dashboard \n\nIf you want, you can even use skedulord to run a small dashboard for you to show\nall the logs from past jobs. These are all available from the terminal as well, \nbut it's nice to have an extra interface.\n\n```python\npython -m skedulord serve\n```\n\nThe landing page shows an overview of all jobs. \n\n![](docs/dashboard1.png)\n\nYou can click on the associated link to find all runs.\n\n![](docs/dashboard2.png)\n\nFrom here you can explore the logs. We host both the raw .txt logs\nand a \"fancy\" variant that attemps some syntax highlighting.\n\n![](docs/dashboard3.png)\n\nIf you'd like to play around, we host a small demo of this dashboard [here](https://koaning.github.io/skedulord-demo/).\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://koaning.github.io/skedulord/", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "skedulord", "package_url": "https://pypi.org/project/skedulord/", "platform": null, "project_url": "https://pypi.org/project/skedulord/", "project_urls": { "Homepage": "https://koaning.github.io/skedulord/" }, "release_url": "https://pypi.org/project/skedulord/2.0.0/", "requires_dist": [ "PyYAML (>=5.1.1)", "rich (>=9.10.0)", "clumper (>=0.2.8)", "typer (>=0.3.2)", "python-crontab (>=2.5.1)", "pytest ; extra == 'dev'", "pytest-cov ; extra == 'dev'", "mkdocs-material (>=6.2.8) ; extra == 'dev'" ], "requires_python": "", "summary": "", "version": "2.0.0", "yanked": false, "yanked_reason": null }, "last_serial": 13680115, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "6a8a6ca00d817aa3528f93106ec6c212", "sha256": "5858dc0ef4cec5044388d545bc97beda78cb75aae31ec11da996622cb367c314" }, "downloads": -1, "filename": "skedulord-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6a8a6ca00d817aa3528f93106ec6c212", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6693, "upload_time": "2019-10-15T14:30:31", "upload_time_iso_8601": "2019-10-15T14:30:31.250777Z", "url": "https://files.pythonhosted.org/packages/62/91/1c7b414dc9fd8d3f3bbbb7a3a1b584b6934b2e54a1f7122b2c57110df633/skedulord-0.2.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "97945748e61abfd63f1e4c53a9a021c7", "sha256": "b7d4978689896a1b7c3b7295d20cf7cdbabfd6d28e0920b5d05c4300198e8d7e" }, "downloads": -1, "filename": "skedulord-0.2.0.tar.gz", "has_sig": false, "md5_digest": "97945748e61abfd63f1e4c53a9a021c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5522, "upload_time": "2019-10-15T14:30:34", "upload_time_iso_8601": "2019-10-15T14:30:34.668590Z", "url": "https://files.pythonhosted.org/packages/4b/a7/76e0b8e1618d914f7b4925f54241e04ad7805ab17918f364e1a8d54759d3/skedulord-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "b0e5b4e6916d5306614efcf40ace68e3", "sha256": "d53a4c152264fceee222e09e18401f6eb4700aabfd4a8bbb0463ad5b9927cda7" }, "downloads": -1, "filename": "skedulord-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b0e5b4e6916d5306614efcf40ace68e3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6690, "upload_time": "2019-10-16T17:07:58", "upload_time_iso_8601": "2019-10-16T17:07:58.893757Z", "url": "https://files.pythonhosted.org/packages/b1/a4/1dfc992b35bc2a9d87a20621d65b05ea9a3746eab13c23f27c7957072c85/skedulord-0.2.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "94fb069624ec06a96f56b63d0ab3ba00", "sha256": "be1bc12ac5e8757369f0db404756b7d34b254c70978cbc1c425c707bdd67555e" }, "downloads": -1, "filename": "skedulord-0.2.1.tar.gz", "has_sig": false, "md5_digest": "94fb069624ec06a96f56b63d0ab3ba00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5521, "upload_time": "2019-10-16T17:08:00", "upload_time_iso_8601": "2019-10-16T17:08:00.809040Z", "url": "https://files.pythonhosted.org/packages/18/27/759cae53103af427a71ac49fd4ea69cd575f268ded01e65eb2d16d70ecd8/skedulord-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "33a7b4b0eba6193cd0c0506930c78dee", "sha256": "1a146a5a20ca6759fb625b29b77a55283847bfd4112c743c9f0e273118f28cef" }, "downloads": -1, "filename": "skedulord-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "33a7b4b0eba6193cd0c0506930c78dee", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6704, "upload_time": "2019-10-17T20:43:43", "upload_time_iso_8601": "2019-10-17T20:43:43.921284Z", "url": "https://files.pythonhosted.org/packages/b4/0d/a8d5f8a940a98062099730464d2abdf031918d5a4a804c2b4767b1722641/skedulord-0.2.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "01c50b3420f337b00ad4ef9be69200eb", "sha256": "926ea6ba47cb9ae18559fe2fc08afce46d8dec313ed9bae4d7b37b3557efe4b9" }, "downloads": -1, "filename": "skedulord-0.2.2.tar.gz", "has_sig": false, "md5_digest": "01c50b3420f337b00ad4ef9be69200eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5535, "upload_time": "2019-10-17T20:43:45", "upload_time_iso_8601": "2019-10-17T20:43:45.679742Z", "url": "https://files.pythonhosted.org/packages/18/9e/a75c17e5cd60bad9b2e1e516f9541be13be379e8f737a03b38e2e580c698/skedulord-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "aa3ccc2308a0c95540858df9c38d1541", "sha256": "82a956a207e2cb64417ad1c15740db5878ace470f45d6fb40898dff195e9633a" }, "downloads": -1, "filename": "skedulord-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "aa3ccc2308a0c95540858df9c38d1541", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7327, "upload_time": "2019-10-23T10:40:14", "upload_time_iso_8601": "2019-10-23T10:40:14.519448Z", "url": "https://files.pythonhosted.org/packages/76/83/c9b29b2fbacdb200caf5ff5bf4a0ce945638cf7bc1e424427121f68aed97/skedulord-0.2.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f6ccc6bba35d90619b0ab5a87d10ba66", "sha256": "c19a666ab20037bf4212a76585c6ac71feb5e8235daece8b0964976fab19353c" }, "downloads": -1, "filename": "skedulord-0.2.3.tar.gz", "has_sig": false, "md5_digest": "f6ccc6bba35d90619b0ab5a87d10ba66", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5416, "upload_time": "2019-10-23T10:40:16", "upload_time_iso_8601": "2019-10-23T10:40:16.005101Z", "url": "https://files.pythonhosted.org/packages/5b/a7/d9fbea0f4ef9cfe892a92b433bd8f543bc98d58486fd665d78ae96b727a4/skedulord-0.2.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "66f85599da78856dfe333fb4896bb01f", "sha256": "4b092e96a5052837195bced585c90022618b932a8c4001bdc4e631e881a573b7" }, "downloads": -1, "filename": "skedulord-0.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "66f85599da78856dfe333fb4896bb01f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7353, "upload_time": "2019-10-23T10:42:48", "upload_time_iso_8601": "2019-10-23T10:42:48.342432Z", "url": "https://files.pythonhosted.org/packages/ea/08/f5c2778cf851ab90dec49ca9b3f9f73729e8af74c579c17b39dcf205e225/skedulord-0.2.4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "beb37fe06a6b0c3dfcfc7b117801681a", "sha256": "25909ca994f8f34443b247feac0363dddecf90ca0a7c64a6ff96c25c79aa1203" }, "downloads": -1, "filename": "skedulord-0.2.4.tar.gz", "has_sig": false, "md5_digest": "beb37fe06a6b0c3dfcfc7b117801681a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5439, "upload_time": "2019-10-23T10:42:49", "upload_time_iso_8601": "2019-10-23T10:42:49.929223Z", "url": "https://files.pythonhosted.org/packages/33/f4/d1500bc9178c234cdcce9b23de02818d6e533d0056670c465a980d86b582/skedulord-0.2.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "10ed91a3004acbd03ed2ca6a32673f61", "sha256": "b305acae5e59dd611c35cef536f54d6a4060580f2a971feb07eb1308178a528d" }, "downloads": -1, "filename": "skedulord-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "10ed91a3004acbd03ed2ca6a32673f61", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8663, "upload_time": "2021-02-14T18:53:22", "upload_time_iso_8601": "2021-02-14T18:53:22.431624Z", "url": "https://files.pythonhosted.org/packages/38/fd/f9ba622a4b210fd3316f61d35364b1707d995df3bd62c6b49a9676dd17b5/skedulord-0.3.0-py2.py3-none-any.whl", "yanked": true, "yanked_reason": "Should have been version 1.0.0 that was pushed." }, { "comment_text": "", "digests": { "md5": "aa3345691e0d80ceae4a149bfedeb492", "sha256": "2dbef75bfd0d37e35c8f0adb11f99154239ec06c157449c54e93a3dc30a64d8e" }, "downloads": -1, "filename": "skedulord-0.3.0.tar.gz", "has_sig": false, "md5_digest": "aa3345691e0d80ceae4a149bfedeb492", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6629, "upload_time": "2021-02-14T18:53:23", "upload_time_iso_8601": "2021-02-14T18:53:23.840377Z", "url": "https://files.pythonhosted.org/packages/45/7d/bdaf973f24f4f1aed808732084cb13e7a44be09ade02ec1d02d4dec675ad/skedulord-0.3.0.tar.gz", "yanked": true, "yanked_reason": "Should have been version 1.0.0 that was pushed." } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "e1b85ebf81061a0e85ec589a3d7e6789", "sha256": "f8927a6396fdf133222bf1f89486776c9c053606de8e839cd2d4300e21f4915c" }, "downloads": -1, "filename": "skedulord-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e1b85ebf81061a0e85ec589a3d7e6789", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8666, "upload_time": "2021-02-14T18:57:46", "upload_time_iso_8601": "2021-02-14T18:57:46.801225Z", "url": "https://files.pythonhosted.org/packages/ab/44/6a224dd88d719b6934980674b993bd3d42f53b566e6a3391d4600bee751e/skedulord-1.0.0-py2.py3-none-any.whl", "yanked": true, "yanked_reason": "found a bug" }, { "comment_text": "", "digests": { "md5": "3e36d2f983b4a6a871ab8bba2dc7eaf3", "sha256": "69940bc286c01f791f6703737022397230a8333450bb9f9ced2088c07fce15f6" }, "downloads": -1, "filename": "skedulord-1.0.0.tar.gz", "has_sig": false, "md5_digest": "3e36d2f983b4a6a871ab8bba2dc7eaf3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6636, "upload_time": "2021-02-14T18:57:48", "upload_time_iso_8601": "2021-02-14T18:57:48.246673Z", "url": "https://files.pythonhosted.org/packages/7a/e2/b9cbc0a122eeee3da1b33c6372fcada9d40d12705de8b31d5b0c4a9ac5fc/skedulord-1.0.0.tar.gz", "yanked": true, "yanked_reason": "found a bug" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "3c44d6af8210e189d5765aa68446093d", "sha256": "e17cbc0b96f26c8d3df88c3aa7ac04ba2e270fc2903c94eb2e2b798476665dd3" }, "downloads": -1, "filename": "skedulord-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3c44d6af8210e189d5765aa68446093d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8613, "upload_time": "2021-02-14T19:12:39", "upload_time_iso_8601": "2021-02-14T19:12:39.184431Z", "url": "https://files.pythonhosted.org/packages/f9/e2/48e626747fa9313d8b7cac3666168f880eb4163e7ccdff0c4bb55cf6f8c5/skedulord-1.0.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "05a0883e8856c81a2ebd39ed35ef6265", "sha256": "c83dc338bf066c62ce2c59608dfd0f3ad8d8e3d3fe9c6d392fe0a83d35154175" }, "downloads": -1, "filename": "skedulord-1.0.1.tar.gz", "has_sig": false, "md5_digest": "05a0883e8856c81a2ebd39ed35ef6265", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6617, "upload_time": "2021-02-14T19:12:40", "upload_time_iso_8601": "2021-02-14T19:12:40.662060Z", "url": "https://files.pythonhosted.org/packages/f9/2a/edaac7512c76b8cf2fc29997028d9deb1920d797ab906ca13efcf9ec8bed/skedulord-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "1a305673522171dee668214d2258e13d", "sha256": "6fe8609914fb8764cfc8e8a13720e9e7bbb8f730adef954b1df28b1f42e1fcf7" }, "downloads": -1, "filename": "skedulord-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1a305673522171dee668214d2258e13d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8616, "upload_time": "2021-02-14T19:21:54", "upload_time_iso_8601": "2021-02-14T19:21:54.756920Z", "url": "https://files.pythonhosted.org/packages/34/6a/21c72eb2da9c55180e399d75a82b53c21478facb689b28efea46c39a1f31/skedulord-1.0.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b9f520426212dd3f33e106b1b46ea030", "sha256": "7eae4014340b7ac67621bad830d337b04a49c73c95363bee8570abe0f1e96c0a" }, "downloads": -1, "filename": "skedulord-1.0.2.tar.gz", "has_sig": false, "md5_digest": "b9f520426212dd3f33e106b1b46ea030", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6622, "upload_time": "2021-02-14T19:21:55", "upload_time_iso_8601": "2021-02-14T19:21:55.984533Z", "url": "https://files.pythonhosted.org/packages/8e/b2/942bc79924465000d90e557fe6a978b316b42e6354b5247adcbad9dc7c60/skedulord-1.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "3c4745d9c7bd482d7bfac76b08ab1bb7", "sha256": "d37fe34a6d0ef70117b2cc87e5346e7746f254dc693543711122788256f989de" }, "downloads": -1, "filename": "skedulord-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3c4745d9c7bd482d7bfac76b08ab1bb7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8926, "upload_time": "2021-02-19T06:31:55", "upload_time_iso_8601": "2021-02-19T06:31:55.794779Z", "url": "https://files.pythonhosted.org/packages/4a/d0/374a2d308c4b0e5c96f55845f1f16d58a8a50407e02b3337b6fa52713846/skedulord-1.0.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "09435659c7a2ca7ca6d3fb3f55349049", "sha256": "7d76560aedf9c2be4486d6cd7f6cf72f86cce350b3ae74bc8a462152d76337ff" }, "downloads": -1, "filename": "skedulord-1.0.3.tar.gz", "has_sig": false, "md5_digest": "09435659c7a2ca7ca6d3fb3f55349049", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6856, "upload_time": "2021-02-19T06:31:57", "upload_time_iso_8601": "2021-02-19T06:31:57.402187Z", "url": "https://files.pythonhosted.org/packages/8a/73/9933328236377978f0e081365f61a8adcf3b88e220abc61a5220e60449b7/skedulord-1.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "7b9e939672cccc8b18e15bec6550a911", "sha256": "3b6144fffdcd0a4626db23e7185341cdaa5ea6c46dceb92cb7c0c98880211d60" }, "downloads": -1, "filename": "skedulord-1.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7b9e939672cccc8b18e15bec6550a911", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9367, "upload_time": "2021-02-26T17:39:13", "upload_time_iso_8601": "2021-02-26T17:39:13.986793Z", "url": "https://files.pythonhosted.org/packages/78/5d/31ce321daec4cd4e3db1aec5cc09b9b9b64255573aceccd4ee25e0137183/skedulord-1.0.4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d187c6b74344b20d317f2d09c59b7711", "sha256": "c7a190d8f4e61dbae88073b980e750346c8f040efe39b40ba5086f117d046a31" }, "downloads": -1, "filename": "skedulord-1.0.4.tar.gz", "has_sig": false, "md5_digest": "d187c6b74344b20d317f2d09c59b7711", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7132, "upload_time": "2021-02-26T17:39:14", "upload_time_iso_8601": "2021-02-26T17:39:14.951361Z", "url": "https://files.pythonhosted.org/packages/b8/e2/89d06dbad15cf689cb565196beb54f16f187cd2277574772cec7a661f800/skedulord-1.0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "374c7cf8e06eb509d35472a9375f0ec0", "sha256": "13b2acb74499078db09bfebf704fcd98065e01fb1fbbbbecf164b00b858a094d" }, "downloads": -1, "filename": "skedulord-1.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "374c7cf8e06eb509d35472a9375f0ec0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9369, "upload_time": "2021-02-27T09:44:07", "upload_time_iso_8601": "2021-02-27T09:44:07.357719Z", "url": "https://files.pythonhosted.org/packages/02/66/56a65bd5800f327a7d1079fb3a80a514bd44a88d658e8606d52a99db81c7/skedulord-1.0.5-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f3d9e84c5bfe05a91b600025b477e2b0", "sha256": "e85fc36ce51eac6a490d99e98f98c7c5810c398bad73c4f29a672f81ab4b9cb0" }, "downloads": -1, "filename": "skedulord-1.0.5.tar.gz", "has_sig": false, "md5_digest": "f3d9e84c5bfe05a91b600025b477e2b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7130, "upload_time": "2021-02-27T09:44:08", "upload_time_iso_8601": "2021-02-27T09:44:08.801033Z", "url": "https://files.pythonhosted.org/packages/bf/ad/f638c3a7c262b23fc6b23d2526951613fe078d2871d4e85f59cd251051bd/skedulord-1.0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "b73645e0c2f4b7737b3b6da9df49fad1", "sha256": "ff01402efbf5341d564b24678632a5288ef78e5752a34e297313ef85622430df" }, "downloads": -1, "filename": "skedulord-1.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b73645e0c2f4b7737b3b6da9df49fad1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9388, "upload_time": "2021-02-27T09:51:54", "upload_time_iso_8601": "2021-02-27T09:51:54.980861Z", "url": "https://files.pythonhosted.org/packages/e1/0d/2ddc95101a770048067c679e6fa5350c842dcb9a05bf2ec392ab2492502a/skedulord-1.0.6-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2e4933b6000f8c3b063a93929bd04111", "sha256": "260a63de9dde6fadb20ebb6ae11b97448079a0636669fc46649640b0df979f5f" }, "downloads": -1, "filename": "skedulord-1.0.6.tar.gz", "has_sig": false, "md5_digest": "2e4933b6000f8c3b063a93929bd04111", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7138, "upload_time": "2021-02-27T09:51:56", "upload_time_iso_8601": "2021-02-27T09:51:56.204939Z", "url": "https://files.pythonhosted.org/packages/0e/53/146e153dd2ee7ef7e1ad9c8cb817f94f4000e84fde85bd51fa30c1d21edd/skedulord-1.0.6.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "7c770b304635bc9fc82645461477a57d", "sha256": "235e747734ea2fc7c385f5777e0cd4e8e4811615a5903dbd0e560f5ea5b392ab" }, "downloads": -1, "filename": "skedulord-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7c770b304635bc9fc82645461477a57d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13362, "upload_time": "2022-05-01T12:36:40", "upload_time_iso_8601": "2022-05-01T12:36:40.801088Z", "url": "https://files.pythonhosted.org/packages/d0/be/90a25d84a646fa6b6c2acd6c289ec7d222e499b7dca070bb835b4c788265/skedulord-2.0.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "560c0ab15e0e441bf4a319d6a0bcc1a7", "sha256": "5fbbeab6ede1a54053d97b402adebe979294034874b5823296e1eac43051aa1d" }, "downloads": -1, "filename": "skedulord-2.0.0.tar.gz", "has_sig": false, "md5_digest": "560c0ab15e0e441bf4a319d6a0bcc1a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11844, "upload_time": "2022-05-01T12:36:42", "upload_time_iso_8601": "2022-05-01T12:36:42.403637Z", "url": "https://files.pythonhosted.org/packages/63/f9/e1d1f9ec8c23265394475eceb7234ea0dc3646aaa764c07d6a25a8a162ca/skedulord-2.0.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7c770b304635bc9fc82645461477a57d", "sha256": "235e747734ea2fc7c385f5777e0cd4e8e4811615a5903dbd0e560f5ea5b392ab" }, "downloads": -1, "filename": "skedulord-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7c770b304635bc9fc82645461477a57d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13362, "upload_time": "2022-05-01T12:36:40", "upload_time_iso_8601": "2022-05-01T12:36:40.801088Z", "url": "https://files.pythonhosted.org/packages/d0/be/90a25d84a646fa6b6c2acd6c289ec7d222e499b7dca070bb835b4c788265/skedulord-2.0.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "560c0ab15e0e441bf4a319d6a0bcc1a7", "sha256": "5fbbeab6ede1a54053d97b402adebe979294034874b5823296e1eac43051aa1d" }, "downloads": -1, "filename": "skedulord-2.0.0.tar.gz", "has_sig": false, "md5_digest": "560c0ab15e0e441bf4a319d6a0bcc1a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11844, "upload_time": "2022-05-01T12:36:42", "upload_time_iso_8601": "2022-05-01T12:36:42.403637Z", "url": "https://files.pythonhosted.org/packages/63/f9/e1d1f9ec8c23265394475eceb7234ea0dc3646aaa764c07d6a25a8a162ca/skedulord-2.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }