{
"info": {
"author": "Spil Games",
"author_email": "datawarehouse@spilgames.com",
"bugtrack_url": null,
"classifiers": [],
"description": "Job-Runner\n==========\n\n.. image:: https://api.travis-ci.org/spilgames/job-runner.png?branch=master\n :alt: Build Status\n :target: https://travis-ci.org/spilgames/job-runner\n\n**Job-Runner** is a crontab like tool, with a nice web-frontend for\nadministration and (live) monitoring the current status.\n\nFeatures:\n\n* Schedule recurring jobs\n* Chaining of jobs\n* Load-balance workers by putting them in a pool\n* Schedule jobs to run on all workers within a pool\n* Live dashboard (with option to kill runs and ad-hoc scheduling)\n* Multiple projects and per-project permission management\n\n\nThe whole project consists of three separate components (and repositories):\n\n* **Job-Runner**: provides the REST interface, admin interface and (live)\n dashboard. As well this component provides a long-running process\n (``manage.py broadcast_queue``) to broadcast messages (over ZeroMQ) to the\n workers. See: https://github.com/spilgames/job-runner\n\n* **Job-Runner Worker**: the process that is responsible for executing the job.\n It subscribes to (ZeroMQ) messages coming from ``broadcast_queue``, send data\n back over the REST interface and publishes events to the\n *Job-Runner WebSocket Server*.\n You can run as many workers as you like, as long as every worker has it's own\n API key (eg: when you want to run jobs on multiple servers or under different\n usernames on the same server). API keys can be created in the *Job-Runner*\n admin interface.\n See: https://github.com/spilgames/job-runner-worker\n\n* **Job-Runner WebSocket Server**: will subscribe to *Job-Runner Worker* events\n and re-broadcast them to WebSocket connections coming from the *Job-Runner*\n dashboard. This makes it possible to add realtime monitoring to the\n dashboard.\n See: https://github.com/spilgames/job-runner-ws-server\n\n\nLinks\n-----\n\n* `documentation `_\n* `job-runner source `_\n* `job-runner-worker source `_\n* `job-runner-ws-server source `_\n\n\nChanges\n-------\n\nv3.5.2\n~~~~~~\n\n* Added more logging (notifications) and fixed minor logging issues\n\nv3.5.1\n~~~~~~\n\n* Add logging about scheduling, job kills and general failures\n\nv3.5.0\n~~~~~~\n\n* Add support for filtering on ``title`` in the API.\n* Add support for updating and creating jobs in the API.\n\n\nv3.4.0\n~~~~~~\n\n* Add ``worker_version`` and ``concurrent_jobs`` fields to the Worker resource.\n These fields will be send by the worker at every ping response and are\n displayed in the admin.\n\n\nv3.3.0\n~~~~~~\n\n* Handle error response when the user does not have access anymore to the\n worker data in the REST API. This can happen when a worker is removed from a\n worker-pool.\n* Show the full job-chain on the jobs page.\n* Add check to assure that there is no recursion in the job-chain\n (parent/child relations).\n\n\nv3.2.0\n~~~~~~\n\n* Make it possible to continue the chain of jobs when one of the jobs failed\n (or when a worker failed when run on all workers is selected).\n* Add management-command ``health_check`` which marks runs assigned to\n unresponsive workers as failed and alert when all workers within a pool\n are unresponsive.\n* Fix ``order_by`` in ``reschedule`` method.\n\n\nv3.1.3\n~~~~~~\n\n* Redirect to the last selected project (failing that, to the first project\n in the list).\n\n\nv3.1.2\n~~~~~~\n\n* Fix: do not schedule disabled children (regression introduced by the new\n way of scheduling in v3.1.0).\n\n\nv3.1.1\n~~~~~~\n\n* Markdown support for job descriptions was added.\n* Scheduled runs are now displayed in the job details.\n* Improve performance by increasing the default API page-size to 200.\n* Show the user a warning when there are no projects.\n\n\nv3.1.0\n~~~~~~\n\n.. warning:: Before deploying this version, make sure that there aren't any\n running jobs! One way to do this is to disable all projects in the\n admin, let all runs complete, and then upgrade.\n\n* Schedule the next run before broadcasting the current scheduled run.\n* Remove \"after complete dts\" reschedule option.\n\n\nv3.0.3\n~~~~~~\n\n* Make sure to rollback transaction in case of an exception in\n ``broadcast_queue`` management command.\n* Fix issue with \"run on all workers\" jobs, where it wasn't detected that\n all siblings finished.\n\n\nv3.0.2\n~~~~~~\n\n* Apply \"Save as new\" button to all model admins.\n* Fix validation of the reschedule interval field (should not accept 0).\n* Add dropdown option to see the runs / jobs of all projects.\n* Show assigned workers in last 100 completed runs.\n* The ``broadcast_queue`` command is now locking the selected runs. This is\n needed to make sure that when there are multiple broadcasters, no duplicated\n runs are generated (in case of run on all workers).\n\n\nv3.0.1\n~~~~~~\n\n* Fix re-schedule issue (duplicates) when manually schedule a recurring job.\n* Fix schedule-time when switching from or to daylight saving-time. Before\n the time of a job would change when switching from or to DST. Now a job\n will be always re-scheduled at the same time (when increment schedule dts by\n interval is selected).\n\n\nv3.0.0\n~~~~~~\n\n* New dashboard layout to make it more easy to view large sets of data.\n* Optimization of the initial load of data (fewer API requests).\n* Add support to run a job across all workers within a worker-pool.\n\n\nv2.0.1\n~~~~~~\n\n* Optimize the way how the ``ModelAuthorization`` class is testing if the user\n or worker has access to the object.\n\n\nv2.0.0\n~~~~~~\n\n* Restructure the relations between models. Workers are now project independent\n and are grouped by pools. Permissions are now managed on project level\n (instead on project and job-template level) By assigning a job to a pool\n containing multiple workers, the job will be loadbalanced\n (by selecting a random worker).\n\n After upgrading, make sure to run ``manage.py migrate`` to migrate your\n data to the new structure.\n\n .. warning:: Before running ``manage.py migrate``, make a backup of your\n data! The new structure is not backwards compatible and\n thus can not be migrated backwards.\n\n\nv1.4.3\n~~~~~~\n\n* Fix duplicated enqueues when the worker is down or the enqueue is disabled\n for the job. This happened for example when a parent-job tried to schedule\n a child job which was disabled.\n\n\nv1.4.2\n~~~~~~\n\n* Fix the issue where runs from other projects than the selected one, were\n rendered on the dashboard.\n\n\nv1.4.1\n~~~~~~\n\n* Add caching of objects to improve the performance (frontend).\n\n\nv1.4.0\n~~~~~~\n\n* Complete refactor of front-end code. The front-end is now based on AngularJS.\n* Misc admin interface improvements (sorting, labels, etc...).\n* Add if the run was manual and / or killed to the error e-mail template.\n* Add compressor for JavaScript code.\n\n\nv1.3.3\n~~~~~~\n\n* Broadcast ping requests to the worker (default: every 5 minutes) and show\n last ping response in admin. This will make it more easy to discover problems\n with workers.\n\n\nv1.3.2\n~~~~~~\n\n* Spil specific settings removed.\n\n\nv1.3.1\n~~~~~~\n\n* Fix run status modal JavaScript code (was not working when there is no log\n yet).\n* Fix related name of ``run_log``, to make sure it shows up correctly in the\n template when there is an error.\n\n\nv1.3.0\n~~~~~~\n\n* Move logs to separate model and RESTful resource. Make sure that you update\n the worker to >= v1.1.0.\n\n\nv1.2.10\n~~~~~~~\n\n* Show full path (project - template - worker ...) in object title.\n* Improve ordering of objects in the admin.\n* Added getting started section to the docs.\n* Misc documentation improvements.\n\n\nv1.2.9\n~~~~~~\n\n* Fix kill button so that it is only visible when the user has permission to\n kill a job-run (would else result in a HTTP error).\n\n\nv1.2.8\n~~~~~~\n\n* Add option in dashboard to kill job-runs.\n* Fix time-zone in failed-run e-mail template (will now use the time-zone\n configured in the Django config).\n\n\nv1.2.7\n~~~~~~\n\n* Disable the job when it failed more than x times (optional setting).\n\n\nv1.2.6\n~~~~~~\n\n* Make it possible to disable the enqueue of a project, worker or job-template.\n\n\nv1.2.5\n~~~~~~\n\n* Display parent - child relationships in job details.\n* Fix an other issue with the run broadcaster to make sure it doesn't broadcast\n multiple runs for the same job.\n* Fix styling glitches by adding a ``boot.css`` which is used as long the\n ``.less`` files aren't compiled yet.\n\n\nv1.2.4\n~~~~~~\n\n* Fix run broadcaster so that it doesn't send runs to the workers when there\n is still an other run for the same job active (in queue or started).\n* Fix autoselect environment settings.\n* Update hostnames in configuration.\n\n\nv1.2.3\n~~~~~~\n\n* Add filters to limit the number of displayed jobs.\n* Add status icon to display if there is a connection with the WebSocket server\n* Add option for monthly re-scheduling **Note:** monthly re-scheduling works\n by incrementing the ``dts`` with the number of days that are in the ``dts``.\n When incrementing by multiple months, it will check the days for each month.\n\n\nv1.2.2\n~~~~~~\n\n* Add description fields to projects, workers, job-templates and jobs\n* Add ``TransactionMiddleware``\n* Fix rescheduling when two runs are active of the same job\n\n\nv1.2.1\n~~~~~~\n\n* Add MySQL to requirements.txt (since the python setup.py install is\n creating a zipped .egg which doesn't work when the user does not have\n a homedir (or when the homedir is not executable).\n\n\nv1.2.0\n~~~~~~\n\n* Show job details in a column instead of a modal\n* Show last 100 runs of a job incl. duration graph\n* Fix ``AUTHENTICATION_BACKENDS`` setting for staging and production\n (without ``ModelBackend`` included, permissions are not working!)\n* A job-title must now be unique per job-template\n* Show re-schedule interval in job details\n\n\nv1.1.1\n~~~~~~\n\n* Fix dependencies in ``setup.py`` (was not using the development version\n from GitHub).\n\n\nv1.1.0\n~~~~~~\n\n* Run and job details are made deeplinkable\n* Runs and jobs that are suspended are greyed-out\n\n\nv1.0.0\n~~~~~~\n\n* Fix size (height) of run / job headers\n* Fix order of run objects\n* Fix escaping of HTML characters in job script and log output\n* Enable timezone, all data is now presented (and expected to be) in the\n *Europe/Amsterdam* timezone\n* Order scheduled runs ascending (first to run on top)\n* Add option to schedule children or not, when manually scheduling runs\n\nv0.7.4\n~~~~~~\n\n* Internal related changes.\n\n\nv0.7.3\n~~~~~~\n\n* Add ``job_runner.settings.env.production_longrun`` settings module for long\n running processes to avoid \"cached\" results.\n\n\nv0.7.2\n~~~~~~\n\n* Fix issue where filtering the groups would result in duplicated results.\n* Remove WebKit browser notifications, since it was breaking the front-end in\n Firefox.\n\n\nv0.7.1\n~~~~~~\n\n* Check that runs received from the WebSocket server are within the current\n active project.\n* Add WebKit browser notifications.\n\n\nv0.7.0\n~~~~~~\n\n* **Major refactor:** It is now possible to use AD assigned groups when\n creating projects. Since basically all models are changed / renamed, it was\n not possible to migrate old data to the new structure. Therefore you should\n re-create the database!\n* Add ``broadcast_queue`` management command to publish enqueueable runs to\n the workers.\n\n\nv0.6.2\n~~~~~~\n\n* Add missing static-file and logging settings.\n\n\nv0.6.1\n~~~~~~\n\n* Add MySQL package as a requirement + update requirements in docs.\n* Make it possible to override production settings.\n\n\nv0.6.0\n~~~~~~\n\n* Create standalone application.\n* Add overview of jobs + scheduling.",
"description_content_type": null,
"docs_url": null,
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://github.com/spilgames/job-runner",
"keywords": null,
"license": "BSD",
"maintainer": null,
"maintainer_email": null,
"name": "job-runner",
"package_url": "https://pypi.org/project/job-runner/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/job-runner/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "http://github.com/spilgames/job-runner"
},
"release_url": "https://pypi.org/project/job-runner/3.5.2/",
"requires_dist": null,
"requires_python": null,
"summary": "Tool for scheduling jobs and realtime monitoring",
"version": "3.5.2"
},
"last_serial": 862680,
"releases": {
"1.4.2": [
{
"comment_text": "",
"digests": {
"md5": "766db4b254cfd8c5af6b2e9e243de8b3",
"sha256": "3a63357a3c2d909d664a3f42ac813fd1a5e6e859143ad79c24984d5156ae2755"
},
"downloads": -1,
"filename": "job-runner-1.4.2.tar.gz",
"has_sig": false,
"md5_digest": "766db4b254cfd8c5af6b2e9e243de8b3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 579693,
"upload_time": "2013-03-07T12:35:19",
"url": "https://files.pythonhosted.org/packages/73/b3/d2f4b0c9296fb8095a1fad14c003bdab4f0098e93446f3e9045d148687de/job-runner-1.4.2.tar.gz"
}
],
"1.4.3": [
{
"comment_text": "",
"digests": {
"md5": "bb4c2a8a107db2b2941bb793515b1698",
"sha256": "ec7c66c3e5acc902d6361259337aef39d6578c9ca5c45e07f8eb623d39d3b68a"
},
"downloads": -1,
"filename": "job-runner-1.4.3.tar.gz",
"has_sig": false,
"md5_digest": "bb4c2a8a107db2b2941bb793515b1698",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 580794,
"upload_time": "2013-03-19T08:16:50",
"url": "https://files.pythonhosted.org/packages/36/84/48293dc18a4f8ac81f9c5ec05cfb6622521011d1afe226669c62672966b8/job-runner-1.4.3.tar.gz"
}
],
"2.0.0": [
{
"comment_text": "",
"digests": {
"md5": "da8d6d3d50873de2fc2562c5e2684b7f",
"sha256": "e55224de23f02ea81cc696c4a164eb46e4414dc52c9d6f5717573c0d18ddca71"
},
"downloads": -1,
"filename": "job-runner-2.0.0.tar.gz",
"has_sig": false,
"md5_digest": "da8d6d3d50873de2fc2562c5e2684b7f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 584434,
"upload_time": "2013-03-25T09:24:17",
"url": "https://files.pythonhosted.org/packages/ce/50/fc16a35924408b945ccd4d22df4e236e70d2958819b6d9001ac5e98f6edc/job-runner-2.0.0.tar.gz"
}
],
"2.0.1": [
{
"comment_text": "",
"digests": {
"md5": "dda1284cd7327a25bbb61b35dfa01f5c",
"sha256": "e6a01e739f3587a683fa3395307d9ce7c482bbe51739a1e652f1939cb19d5b0b"
},
"downloads": -1,
"filename": "job-runner-2.0.1.tar.gz",
"has_sig": false,
"md5_digest": "dda1284cd7327a25bbb61b35dfa01f5c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 584518,
"upload_time": "2013-04-02T13:51:35",
"url": "https://files.pythonhosted.org/packages/84/16/e90aaab69ac2a4cf3c0c1d1bfdfc895465f9266ca6e4dc670935180d617e/job-runner-2.0.1.tar.gz"
}
],
"3.0.0": [
{
"comment_text": "",
"digests": {
"md5": "ccade1b63d8acb0e9abb7bd2d88a4657",
"sha256": "9b47056ba90dc5dcdd93b6c46cec94709440dffd83a0ff10ce4362df9c00b71b"
},
"downloads": -1,
"filename": "job-runner-3.0.0.tar.gz",
"has_sig": false,
"md5_digest": "ccade1b63d8acb0e9abb7bd2d88a4657",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 586699,
"upload_time": "2013-04-10T14:29:04",
"url": "https://files.pythonhosted.org/packages/8d/08/819dfa9c7d9ae06d28d7edc942adbe779102475c3f958e086876a4445c66/job-runner-3.0.0.tar.gz"
}
],
"3.0.1": [
{
"comment_text": "",
"digests": {
"md5": "2e79dbc368cc381c23a96dae8709550f",
"sha256": "7895a33e5ae7eb7cad04928453072cca39a7fcb7ec6a000d2a2b2195d8753958"
},
"downloads": -1,
"filename": "job-runner-3.0.1.tar.gz",
"has_sig": false,
"md5_digest": "2e79dbc368cc381c23a96dae8709550f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 588060,
"upload_time": "2013-04-15T06:45:13",
"url": "https://files.pythonhosted.org/packages/36/00/eca5c06fceaedb9eb8944df6bd458e8307e623a53c5cbe5b54b31d8720f1/job-runner-3.0.1.tar.gz"
}
],
"3.0.2": [
{
"comment_text": "",
"digests": {
"md5": "035963ec643530fbc7e1f783b80d3dec",
"sha256": "c3ea0304d57387dc97f424e6b0c8035304b6af42ee10dc3f275878bfe7d8b19d"
},
"downloads": -1,
"filename": "job-runner-3.0.2.tar.gz",
"has_sig": false,
"md5_digest": "035963ec643530fbc7e1f783b80d3dec",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 588611,
"upload_time": "2013-04-23T12:26:12",
"url": "https://files.pythonhosted.org/packages/cc/54/88cd9c16e6114e5fbd17ec4dee77c67264332df7ac610feaedc81249bad9/job-runner-3.0.2.tar.gz"
}
],
"3.0.3": [
{
"comment_text": "",
"digests": {
"md5": "a9434415a87c981a5ca15ca625f7c3d2",
"sha256": "0d6d876888162125918b94a69a3b1c439d6dd6e53480dada36cf70686250c975"
},
"downloads": -1,
"filename": "job-runner-3.0.3.tar.gz",
"has_sig": false,
"md5_digest": "a9434415a87c981a5ca15ca625f7c3d2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 588916,
"upload_time": "2013-04-24T10:02:43",
"url": "https://files.pythonhosted.org/packages/f0/6a/e4e17d15728dd90aa4dd020bd09ae132b78d1ffffbe5988013e56819d8eb/job-runner-3.0.3.tar.gz"
}
],
"3.1.0": [
{
"comment_text": "",
"digests": {
"md5": "2a44853f1224788a2d07eb70c5bf5353",
"sha256": "b3065fcdd28546c08edeb9e698da7241dfbd59d0fe3fd2bdfb8d891c14224ace"
},
"downloads": -1,
"filename": "job-runner-3.1.0.tar.gz",
"has_sig": false,
"md5_digest": "2a44853f1224788a2d07eb70c5bf5353",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 589089,
"upload_time": "2013-05-07T06:43:59",
"url": "https://files.pythonhosted.org/packages/b0/36/b643442dd6a43f1ea375f4b9102b6ca45d258030bacb7b0de21911ea9735/job-runner-3.1.0.tar.gz"
}
],
"3.1.1": [
{
"comment_text": "",
"digests": {
"md5": "9d82596b3d443bae1ed6fcbea6f7b0b3",
"sha256": "e126fbe20e755798f4b5a7be9311870cff50308bfe6e35eaa99d08211111bc6a"
},
"downloads": -1,
"filename": "job-runner-3.1.1.tar.gz",
"has_sig": false,
"md5_digest": "9d82596b3d443bae1ed6fcbea6f7b0b3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 594040,
"upload_time": "2013-05-14T07:15:58",
"url": "https://files.pythonhosted.org/packages/51/93/a5caa381dd79a6d6751e4b5ed39fbd3c1b30045b3e3f22a171c1339cd2f9/job-runner-3.1.1.tar.gz"
}
],
"3.1.2": [
{
"comment_text": "",
"digests": {
"md5": "fe705923e4ae1e34d640abbd3d2ac742",
"sha256": "fe6f0956290678c2b7c59d92349bb1342c670ab20d5dddd3fab391f3e03379d9"
},
"downloads": -1,
"filename": "job-runner-3.1.2.tar.gz",
"has_sig": false,
"md5_digest": "fe705923e4ae1e34d640abbd3d2ac742",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 594157,
"upload_time": "2013-05-16T07:57:11",
"url": "https://files.pythonhosted.org/packages/f6/8c/187460797839413bba11e462fdd8ff76c7a57fbb124a2e9a4e2573b8995d/job-runner-3.1.2.tar.gz"
}
],
"3.1.3": [
{
"comment_text": "",
"digests": {
"md5": "ed9702591731fb6c2ae023bd18ed9fa3",
"sha256": "f5a0e510e98cef557b58591c89675ed7e04e3d04b5d18a826e1f433a96684815"
},
"downloads": -1,
"filename": "job-runner-3.1.3.tar.gz",
"has_sig": false,
"md5_digest": "ed9702591731fb6c2ae023bd18ed9fa3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 596704,
"upload_time": "2013-05-21T07:40:12",
"url": "https://files.pythonhosted.org/packages/70/d0/98bb381551e9704af5ee6bdeb90f480780fd9b7bbcbd0cee463854cfe77a/job-runner-3.1.3.tar.gz"
}
],
"3.2.0": [
{
"comment_text": "",
"digests": {
"md5": "12f896931d9157dfd7e75bdad4c9460a",
"sha256": "aad7833a5bb99067a58787d0e2c258d656ba46e8e19a243efc08b316ba07b8ab"
},
"downloads": -1,
"filename": "job-runner-3.2.0.tar.gz",
"has_sig": false,
"md5_digest": "12f896931d9157dfd7e75bdad4c9460a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 599725,
"upload_time": "2013-05-31T09:42:58",
"url": "https://files.pythonhosted.org/packages/ea/47/14dd656ee9d18cf00c4dbbf76076f5ee0820281df1d58ccf26df714c7ab7/job-runner-3.2.0.tar.gz"
}
],
"3.3.0": [
{
"comment_text": "",
"digests": {
"md5": "3f1647b6d70fd9ee243b20ba9216db23",
"sha256": "dc9d2362bcd32d15ef3fa73d9824a890d3dd81f009b3497471fd581b30080ca3"
},
"downloads": -1,
"filename": "job-runner-3.3.0.tar.gz",
"has_sig": false,
"md5_digest": "3f1647b6d70fd9ee243b20ba9216db23",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 600462,
"upload_time": "2013-06-05T07:59:15",
"url": "https://files.pythonhosted.org/packages/03/12/27e753dab7fdc83fa284ac158d5e450ea2a2be4174bdee573cee0ee67a34/job-runner-3.3.0.tar.gz"
}
],
"3.4.0": [
{
"comment_text": "",
"digests": {
"md5": "d814001b90118cefb812ff53cf9846ba",
"sha256": "d7f392c2c86cffeaff5637d87e0d877b2e631841564b15829293d07346706520"
},
"downloads": -1,
"filename": "job-runner-3.4.0.tar.gz",
"has_sig": false,
"md5_digest": "d814001b90118cefb812ff53cf9846ba",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 600834,
"upload_time": "2013-06-24T11:43:42",
"url": "https://files.pythonhosted.org/packages/c4/76/1da08aaa8b61ac63d3905251e174cd3ee4a0f69a19b406d3299a9d60f897/job-runner-3.4.0.tar.gz"
}
],
"3.5.0": [
{
"comment_text": "",
"digests": {
"md5": "27c196f5f81d8dd794ba5e959e605448",
"sha256": "cb8a1505304c00c0216ea3207b62fae81e54dc9102dfa0e0b6478c99be301c62"
},
"downloads": -1,
"filename": "job-runner-3.5.0.tar.gz",
"has_sig": false,
"md5_digest": "27c196f5f81d8dd794ba5e959e605448",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 601340,
"upload_time": "2013-07-30T07:24:58",
"url": "https://files.pythonhosted.org/packages/a7/83/1974f46bedf3ff3211c2c246ee3f8da6d80136b54e6dff7d0816ed209ef5/job-runner-3.5.0.tar.gz"
}
],
"3.5.1": [
{
"comment_text": "",
"digests": {
"md5": "dfa4b23df78f0770ab8bf54434cf13ae",
"sha256": "fb4b452b6824bec715cf2178d42523aafafda54eaa69c033e3f313ba7fef78af"
},
"downloads": -1,
"filename": "job-runner-3.5.1.tar.gz",
"has_sig": false,
"md5_digest": "dfa4b23df78f0770ab8bf54434cf13ae",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 608574,
"upload_time": "2013-09-11T09:02:06",
"url": "https://files.pythonhosted.org/packages/bc/1a/2a09d508e1c7d56052188c5418300365c22aa64b67232b3e60efdae9648e/job-runner-3.5.1.tar.gz"
}
],
"3.5.2": [
{
"comment_text": "",
"digests": {
"md5": "6809b675217d42b2b46793d5c0f87762",
"sha256": "57be48cde1fb84612b28c2d1e64c69da28106e1e8e4f111377bd7c01660c06d4"
},
"downloads": -1,
"filename": "job-runner-3.5.2.tar.gz",
"has_sig": false,
"md5_digest": "6809b675217d42b2b46793d5c0f87762",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 608746,
"upload_time": "2013-09-11T12:34:38",
"url": "https://files.pythonhosted.org/packages/2e/1d/b05c3878c039c19931953b74ce40bd41dab8a4e0073efe8b7540cfbd4d6c/job-runner-3.5.2.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "6809b675217d42b2b46793d5c0f87762",
"sha256": "57be48cde1fb84612b28c2d1e64c69da28106e1e8e4f111377bd7c01660c06d4"
},
"downloads": -1,
"filename": "job-runner-3.5.2.tar.gz",
"has_sig": false,
"md5_digest": "6809b675217d42b2b46793d5c0f87762",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 608746,
"upload_time": "2013-09-11T12:34:38",
"url": "https://files.pythonhosted.org/packages/2e/1d/b05c3878c039c19931953b74ce40bd41dab8a4e0073efe8b7540cfbd4d6c/job-runner-3.5.2.tar.gz"
}
]
}