{ "info": { "author": "Samuele Santi", "author_email": "redshadow@hackzine.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2.7" ], "description": "Job Control\n###########\n\n.. image:: https://raw.githubusercontent.com/rshk/jobcontrol/develop/.misc/banner.png\n\nJob scheduling and tracking library.\n\nProvides a base interface for scheduling, running, tracking and\nretrieving results for \"jobs\".\n\nEach job definition is simply any Python callable, along with\narguments to be passed to it.\n\nThe tracking include storing:\n- the function return value\n- any exception raised\n- log messages produced during task execution\n- optionally a \"progress\", if the task supports it\n\nThe status storage is completely decoupled from the main application.\n\nThe project \"core\" currently includes two storage implementations:\n\n- ``MemoryStorage`` -- keeps all data in memory, useful for\n development / testing.\n\n- ``PostgreSQLStorage`` -- keeps all data in a PostgreSQL database,\n meant for production use.\n\n\nProject status\n==============\n\n**Travis CI build status**\n\n+----------+-----------------------------------------------------------------------+\n| Branch | Status |\n+==========+=======================================================================+\n| master | .. image:: https://travis-ci.org/rshk/jobcontrol.svg?branch=master |\n| | :target: https://travis-ci.org/rshk/jobcontrol |\n+----------+-----------------------------------------------------------------------+\n| develop | .. image:: https://travis-ci.org/rshk/jobcontrol.svg?branch=develop |\n| | :target: https://travis-ci.org/rshk/jobcontrol |\n+----------+-----------------------------------------------------------------------+\n\nSource code\n-----------\n\nSource is hosted on GitHub: https://github.com/rshk/jobcontrol/\n\nAnd can be cloned with::\n\n git clone https://github.com/rshk/jobcontrol.git\n\nPython Package Index\n--------------------\n\nThe project can be found on PyPI here: https://pypi.python.org/pypi/jobcontrol\n\n.. image:: https://pypip.in/version/jobcontrol/badge.svg?text=version\n :target: https://github.com/rshk/jobcontrol.git\n :alt: Latest PyPI version\n\n.. image:: https://pypip.in/download/jobcontrol/badge.svg?period=month\n :target: https://github.com/rshk/jobcontrol.git\n :alt: Number of PyPI downloads\n\n.. image:: https://pypip.in/py_versions/jobcontrol/badge.svg\n :target: https://pypi.python.org/pypi/jobcontrol/\n :alt: Supported Python versions\n\n.. image:: https://pypip.in/status/jobcontrol/badge.svg\n :target: https://pypi.python.org/pypi/jobcontrol/\n :alt: Development Status\n\n.. image:: https://pypip.in/license/jobcontrol/badge.svg\n :target: https://pypi.python.org/pypi/jobcontrol/\n :alt: License\n\n..\n .. image:: https://pypip.in/wheel/jobcontrol/badge.svg\n :target: https://pypi.python.org/pypi/jobcontrol/\n :alt: Wheel Status\n\n .. image:: https://pypip.in/egg/jobcontrol/badge.svg\n :target: https://pypi.python.org/pypi/jobcontrol/\n :alt: Egg Status\n\n .. image:: https://pypip.in/format/jobcontrol/badge.svg\n :target: https://pypi.python.org/pypi/jobcontrol/\n :alt: Download format\n\n\n\nProject documentation\n=====================\n\nDocumentation is hosted on GitHub pages: *(coming soon!)*\nhttp://rshk.github.io/jobcontrol/\n\n\nConcepts\n========\n\n- Each job is defined as a Python function to be run, with arguments\n and keywords.\n- Each job can depend on other jobs; the dependency sistem ensures\n all dependencies are built before running a given job, and that\n depending jobs are rebuilt when a \"higher-level\" one is built.\n\nExample::\n\n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502\n \u2502 Job A \u2502 \u2192 \u2502 Job B \u2502 \u2192 \u2502 Job C \u2502 \u2192 \u2502 Job D \u2502\n \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\nWhen running the task ``C``, a build of ``B`` will be required; this\nin turn requires a build of ``A``. If ``build_deps=True`` was\nspecified, a build of ``C`` and ``B`` will be triggered. Otherwise,\nthe build will terminate with a \"dependencies not met\" error.\n\nAfter a successful build of ``C``, ``D`` is not outdated. If\n``build_depending=True`` was specified, a build of ``D`` will be\ntriggered.\n\nOther example: ``Job #2`` depends on ``Job #2``:\n\n\n**Job #1**\n\n+-------+-------+------+-------+\n| Build | Succ? | Time | Skip? |\n+=======+=======+======+=======+\n| 1 | TRUE | 1 | FALSE |\n+-------+-------+------+-------+\n| 2 | FALSE | 3 | FALSE |\n+-------+-------+------+-------+\n| 3 | TRUE | 4 | TRUE |\n+-------+-------+------+-------+\n| 4 | TRUE | 5 | FALSE |\n+-------+-------+------+-------+\n\n\n**Job #2**\n\n+-------+-------+------+-------+\n| Build | Succ? | Time | Skip? |\n+=======+=======+======+=======+\n| 1 | TRUE | 2 | FALSE |\n+-------+-------+------+-------+\n| No rebuild needed. |\n+-------+-------+------+-------+\n| No rebuild needed. |\n+-------+-------+------+-------+\n| 2 | TRUE | 6 | FALSE |\n+-------+-------+------+-------+\n\n\nChangelog\n#########\n\nv0.1a\n=====\n\n- Support definition of jobs, with: function, args, kwargs, dependencies\n- Support tracking of job runs, with start/end date, started/finished/success\n state and return value\n- Support for storing logs from job runs\n- Memory-backed storage (for state)\n- PostgreSQL-backed storage (for state)", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rshk/jobcontrol", "keywords": null, "license": "Apache 2.0 License", "maintainer": null, "maintainer_email": null, "name": "jobcontrol", "package_url": "https://pypi.org/project/jobcontrol/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/jobcontrol/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/rshk/jobcontrol" }, "release_url": "https://pypi.org/project/jobcontrol/0.1a/", "requires_dist": null, "requires_python": null, "summary": "Job scheduling and tracking library", "version": "0.1a" }, "last_serial": 1324251, "releases": { "0.1a": [] }, "urls": [] }