{ "info": { "author": "Alex Pearce", "author_email": "alex@alexpearce.me", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Flask", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Scientific/Engineering :: Physics" ], "description": "Job monitoring\n==============\n\nA `Flask`_ web application to monitor `rq`_ jobs, with a preference for\nmonitoring histograms using |d3.plotable|_.\n\nThis base package allows you to quickly get a robust submit-poll loop up\non running on the client side, with the server handling job submission\nand results retrieval.\n\nSee |example-monitoring-app|_ for an example application that uses\n``jobmonitor`` to display `histograms`_ from a `ROOT`_ file, including\nexample deployment scripts in a `Vagrant`_ virtual machine.\n\nInstalling\n----------\n\n`Pip`_ is the recommend way of installing the ``jobmonitor`` module. As\nthe latest release is available on `PyPI`_, installing it is simple.\n\n.. code:: bash\n\n $ pip install jobmonitor\n\nThe latest development version, the `head of the master branch`_, can be\ninstalled instead, if desired.\n\n.. code:: bash\n\n $ pip install \"git+https://github.com/alexpearce/jobmonitor.git#egg=jobmonitor\"\n\nEither option will automatically install the monitor\u2019s dependencies.\n\nRunning\n-------\n\nThe job monitor doesn\u2019t do much user-facing stuff by itself, instead it\nis expected that you will want to `create a \u2018child\u2019 application`_ that\nuses ``jobmonitor``. You can run the application if you like though,\nonce it is `installed`_, by creating and running a script to start\nFlask\u2019s development server.\n\n.. code:: python\n\n import jobmonitor\n app = jobmonitor.create_app()\n app.run(debug=True)\n\nThe `rq workers`_ can be started with a separate script. An `example`_ is included. A `Redis database`_ is\nexpected to be running when the workers start.\n\nTesting\n-------\n\n|Build status|\n\n`Tox`_ is recommended to run the test suite for the ``jobmonitor``\nmodule.\n\n.. code:: bash\n\n $ git clone https://github.com/alexpearce/jobmonitor.git\n $ cd jobmonitor\n $ pip install tox\n $ tox\n\nThis will run the test suite under the Python environments defined in\nthe |tox.ini|_ file.\n\n.. _Flask: http://flask.pocoo.org/\n.. _rq: http://python-rq.org/\n.. |d3.plotable| replace:: ``d3.plotable``\n.. _d3.plotable: https://github.com/alexpearce/histograms\n.. |example-monitoring-app| replace:: ``example-monitoring-app``\n.. _example-monitoring-app: https://github.com/alexpearce/example-monitoring-app\n.. _histograms: http://en.wikipedia.org/wiki/Histogram\n.. _ROOT: http://root.cern.ch/\n.. _Vagrant: https://www.vagrantup.com/\n.. _Pip: https://pip.pypa.io/en/latest/\n.. _PyPI: https://pypi.python.org/pypi/jobmonitor\n.. _head of the master branch: https://github.com/alexpearce/jobmonitor/tree/master\n.. _create a \u2018child\u2019 application: https://github.com/alexpearce/example-monitoring-app\n.. _installed: #installing\n.. _rq workers: http://python-rq.org/docs/workers/\n.. _example: https://github.com/alexpearce/jobmonitor/blob/master/webmonitor/start_worker.py\n.. _Redis database: http://redis.io/\n.. _Tox: http://tox.readthedocs.org/en/latest/\n.. |tox.ini| replace:: ``tox.ini``\n.. _tox.ini: https://github.com/alexpearce/jobmonitor/blob/master/tox.ini\n\n.. |Build status| image:: https://travis-ci.org/alexpearce/jobmonitor.svg?branch=modularise\n :target: http://travis-ci.org/alexpearce/jobmonitor", "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/alexpearce/jobmonitor", "keywords": null, "license": "The MIT License (MIT)\n\nCopyright (c) 2014 Alex Pearce\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.", "maintainer": null, "maintainer_email": null, "name": "jobmonitor", "package_url": "https://pypi.org/project/jobmonitor/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/jobmonitor/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/alexpearce/jobmonitor" }, "release_url": "https://pypi.org/project/jobmonitor/0.0.5/", "requires_dist": null, "requires_python": null, "summary": "Physics-orientated job monitoring over HTTP with Flask.", "version": "0.0.5" }, "last_serial": 1933844, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "0bf4a813508761ccbd8347ea1663a1e1", "sha256": "8f24d1a1a5ffe957bc16a0bb837de0a56aca9a3cb2ccededbc54e2548778cf6e" }, "downloads": -1, "filename": "jobmonitor-0.0.1.tar.gz", "has_sig": false, "md5_digest": "0bf4a813508761ccbd8347ea1663a1e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 136206, "upload_time": "2014-12-08T10:02:20", "url": "https://files.pythonhosted.org/packages/c4/10/e3692c8d548ac46e722a7e2ae7ea063e78313148634f7c29bcab0b82ce99/jobmonitor-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "cfa4b23198564660f9272512a245e5d6", "sha256": "d40eea818825502301a2e3c0c212424f818c3bdac35e281ad51699953b701b2a" }, "downloads": -1, "filename": "jobmonitor-0.0.2.tar.gz", "has_sig": false, "md5_digest": "cfa4b23198564660f9272512a245e5d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 136026, "upload_time": "2014-12-08T11:06:39", "url": "https://files.pythonhosted.org/packages/c9/00/b03752e9f5030f497275638ce8df1fbfab06d030a383d96363a2a0ab33ef/jobmonitor-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "230af2c5174ca85432974e82aef2290a", "sha256": "96e22754f74be1c523890450d080391dce8d9751545b66c8ea0765f38fb6b7a3" }, "downloads": -1, "filename": "jobmonitor-0.0.3.tar.gz", "has_sig": false, "md5_digest": "230af2c5174ca85432974e82aef2290a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 136247, "upload_time": "2016-02-01T14:34:30", "url": "https://files.pythonhosted.org/packages/2c/82/b957f17bfe093dcfed37e65dde2df69771c14a1463108fa949fbbbd71274/jobmonitor-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "12adf47162fb9838bc2f9ec25bdf5945", "sha256": "f4e463736937804061cc5778ba183f7fb097ecc84d891f1ae95c327fda1ae2ad" }, "downloads": -1, "filename": "jobmonitor-0.0.4.tar.gz", "has_sig": false, "md5_digest": "12adf47162fb9838bc2f9ec25bdf5945", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 136235, "upload_time": "2016-02-01T14:57:09", "url": "https://files.pythonhosted.org/packages/8d/c0/cc65cbee2cb3c954071e628bd5893b53a612964855ef5fb5d05c57ebbfd7/jobmonitor-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "f0ef4de95b6e84a8cc01df3246fb5a8c", "sha256": "cfd6fda5c463b4b516575d77b120c809383887694125f690cb0c88c17245ff31" }, "downloads": -1, "filename": "jobmonitor-0.0.5.tar.gz", "has_sig": false, "md5_digest": "f0ef4de95b6e84a8cc01df3246fb5a8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 136251, "upload_time": "2016-02-01T15:07:57", "url": "https://files.pythonhosted.org/packages/75/09/a568051355029b6f30526d676d991b2aa905d1aa76ee50628a857fef5250/jobmonitor-0.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f0ef4de95b6e84a8cc01df3246fb5a8c", "sha256": "cfd6fda5c463b4b516575d77b120c809383887694125f690cb0c88c17245ff31" }, "downloads": -1, "filename": "jobmonitor-0.0.5.tar.gz", "has_sig": false, "md5_digest": "f0ef4de95b6e84a8cc01df3246fb5a8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 136251, "upload_time": "2016-02-01T15:07:57", "url": "https://files.pythonhosted.org/packages/75/09/a568051355029b6f30526d676d991b2aa905d1aa76ee50628a857fef5250/jobmonitor-0.0.5.tar.gz" } ] }