{ "info": { "author": "Grigoris Chatzinikolaou", "author_email": "greghatzis@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "Runium\n======\n\n|PyPI version shields.io| |PyPI pyversions| |Documentation Status| |GitHub license|\n\n.. |PyPI version shields.io| image:: https://img.shields.io/pypi/v/runium.svg\n :target: https://pypi.org/project/runium/\n\n.. |PyPI pyversions| image:: https://img.shields.io/pypi/pyversions/runium.svg\n :target: https://pypi.org/project/runium/\n\n.. |Documentation Status| image:: https://readthedocs.org/projects/runium/badge/?version=latest\n :target: https://runium.readthedocs.io/en/latest/main.html\n\n.. |GitHub license| image:: https://img.shields.io/github/license/AGTGreg/runium.svg\n :target: https://github.com/AGTGreg/runium/blob/master/LICENSE\n\nRunium is a Python library that makes it easy to write non-blocking,\nasynchronous tasks.\n\nYou can add new tasks as you please, choose when and how to execute them as\n**Threads** or **Processes** and attach callbacks to be executed as soon as the\ntask is finished running. Run those tasks once or periodically or schedule to\nrun them at a specific time.\n\nThe purpose of Runium is to do these simple, easy and clean with minimum to\nno changes to your code. Just one line of code is all it takes.\n\n**Documentation** `https://runium.readthedocs.io/en/latest/main.html `_\n\n**Pypi:** `https://pypi.org/project/runium/ `_\n\nFeatures\n========\n* **Concurrency**: Run a task once or many times in its own Thread or Process.\n* **Repetition**: Run tasks periodically on even time intervals. Optionally for a certain amount of times.\n* **Scheduling**: Run tasks at a certain date and time.\n* **Callbacks**: Runium tasks can accept callback functions which are executed when the task is finished running.\n* **Simplicity and Readability**: Do all the above in a single line of code that is easy to read.\n\n\nInstallation\n============\n\nRunium is distributed on PyPI. The best way to install it is with pip:\n\n.. code-block:: console\n\n $ pip install runium\n\nQuickstart\n==========\n\n.. code-block:: python\n\n from runium.core import Runium\n\n # Initialize Runium\n rn = Runium()\n\n # Or you may want to run your tasks in Processes\n rn = Runium(mode='multiprocessing')\n\n # Create a task\n async_task = rn.new_task(task)\n\n # Attach callbacks (Check the documentation for callbacks)\n async_task.on_finished(callback)\n\n # or you can be more flexible...\n async_task.on_success(s_callback).on_error(e_callback)\n\n # Run it. This will return a future object.\n future = async_task.run()\n\n # Or if you want to run it multiple times\n future = async_task.run(times=3)\n\n # Or maybe run it 3 times every 1 hour\n future = async_task.run(every='1 hour', times=3)\n\n # Or tell Runium to start the task in a specific time\n future = async_task.run(start_in='5 hours')\n\n # Then you can wait for the result.\n future.result()\n\n # Of course you can do all these in one line :)\n rn.new_task(task).run(every='1 second', times=3).result()\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/AGTGreg/runium", "keywords": "concurrecy,asynchonous,tasks,scheduling,scheduler,cron,multiprocessing,multithreading,callbacks,non-blocking", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "runium", "package_url": "https://pypi.org/project/runium/", "platform": "", "project_url": "https://pypi.org/project/runium/", "project_urls": { "Homepage": "https://github.com/AGTGreg/runium" }, "release_url": "https://pypi.org/project/runium/0.1.8/", "requires_dist": null, "requires_python": "", "summary": "Clean and simple task concurrency for Python.", "version": "0.1.8" }, "last_serial": 5569229, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "1e665f61286bc3ee6e67db339edeaf29", "sha256": "e36a49a150e6a23d94fd4a2436a3d40d71576be927b9acb8494ffe80f35a01d1" }, "downloads": -1, "filename": "runium-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1e665f61286bc3ee6e67db339edeaf29", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2153, "upload_time": "2019-07-08T12:47:21", "url": "https://files.pythonhosted.org/packages/15/e6/70507bed8d203aaf319cbcf1c85e9ea4a7b21fa138cdfa41133c08c0717d/runium-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9054901a659153fe32e5ef1ed44e6ece", "sha256": "be40286380cbcb69f3abff1e6febc8e26df9282f79b56c097839c9feddeea77c" }, "downloads": -1, "filename": "runium-0.0.1.tar.gz", "has_sig": false, "md5_digest": "9054901a659153fe32e5ef1ed44e6ece", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1547, "upload_time": "2019-07-08T12:47:23", "url": "https://files.pythonhosted.org/packages/4e/47/50268b8b9497db955c08327002121dca5de896880992cc442eb9e9b4e4c4/runium-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "a7e64591077b914b5ea6cf552ef52bb4", "sha256": "f43b60c26a97995fa48c7f4d99c4de10c8e89f5ff91e4904e46bbac8fdbae238" }, "downloads": -1, "filename": "runium-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a7e64591077b914b5ea6cf552ef52bb4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6510, "upload_time": "2019-07-11T19:23:03", "url": "https://files.pythonhosted.org/packages/5d/84/5351635073eefe2c6d1f6b702211a690626f25808b27ec61206160c0c4dc/runium-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f0a3ad2fbe82154ec3d3c6a33404f1e", "sha256": "86165c233ca999c3c2b27ad0d06a69fb88140bfca50de86e9738ffd36d0651e7" }, "downloads": -1, "filename": "runium-0.1.0.tar.gz", "has_sig": false, "md5_digest": "8f0a3ad2fbe82154ec3d3c6a33404f1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4781, "upload_time": "2019-07-11T19:23:05", "url": "https://files.pythonhosted.org/packages/c8/c9/bbc8b8ed57f7d195e95650807521cac87f1453d85314da40bd0d90ad57d1/runium-0.1.0.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "f0cd467b4abb6409e3bc45d7c00f39e4", "sha256": "468211b9fb509da8bc0835b7cca072adbdb7851750ef24f95977629d8a9a2f82" }, "downloads": -1, "filename": "runium-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "f0cd467b4abb6409e3bc45d7c00f39e4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9113, "upload_time": "2019-07-17T10:32:50", "url": "https://files.pythonhosted.org/packages/68/27/cc3969f6a870558eceac3aa0adc42e75b97a57d05db1de171feb21976ac6/runium-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "48bab6a0a0f8d6403ee0431f9996af5f", "sha256": "5d3f07275381ec966d33d2b19a5c6bbaf3913dc9c9d7cebbaf17973825c0112b" }, "downloads": -1, "filename": "runium-0.1.5.tar.gz", "has_sig": false, "md5_digest": "48bab6a0a0f8d6403ee0431f9996af5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4870, "upload_time": "2019-07-17T10:32:52", "url": "https://files.pythonhosted.org/packages/91/98/092d288906ba8d711f6384b9d32e6ab525b2d8ad9d67ff06478970d88a11/runium-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "adbca770959f7acb8b099898f3157a13", "sha256": "897d387d51ef9048bccffbc8dc74ac3db62548c29339c1a66065dbb68100e4a0" }, "downloads": -1, "filename": "runium-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "adbca770959f7acb8b099898f3157a13", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9112, "upload_time": "2019-07-17T10:38:12", "url": "https://files.pythonhosted.org/packages/ed/fa/96b7f6e872469004a947d29b82cd0a321325b29eb3a4041db564f9ea7456/runium-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "165f20bf00c7d8a082624cab0c546f54", "sha256": "341ad170ef398ba794c83eb5f22fcd8339292dcfeeb21e7825ae7db1ae764e2d" }, "downloads": -1, "filename": "runium-0.1.6.tar.gz", "has_sig": false, "md5_digest": "165f20bf00c7d8a082624cab0c546f54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4869, "upload_time": "2019-07-17T10:38:14", "url": "https://files.pythonhosted.org/packages/dc/76/26b8b7312f499cac680dacb32d49572a62639983775759b1837d2ade83e4/runium-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "c78fb34613ada3e6d0d47a0b9ff13559", "sha256": "0d689b09ea6f052f74130f5896121c4893b2becc5b9440550444da7c4ecef413" }, "downloads": -1, "filename": "runium-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "c78fb34613ada3e6d0d47a0b9ff13559", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8734, "upload_time": "2019-07-22T20:35:15", "url": "https://files.pythonhosted.org/packages/eb/c5/da2a8943fc328eb46c17906743e883a78050dbe4ad16e6e1d88e483fc01d/runium-0.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5a4cc6fa8f2aaef00fbfb1a648d0c25f", "sha256": "135da046e33bd93c366bf371eabfdfea2a7ee3eab778442383441283932d57d8" }, "downloads": -1, "filename": "runium-0.1.7.tar.gz", "has_sig": false, "md5_digest": "5a4cc6fa8f2aaef00fbfb1a648d0c25f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6190, "upload_time": "2019-07-22T20:35:16", "url": "https://files.pythonhosted.org/packages/2d/66/ecb1772b9f1a186875daa60c8639bef35d18a9d64c4c010e484acd16e0d6/runium-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "d59549eb3e3fdad793778b0cb7efa665", "sha256": "f9d1fc529cbe287940f2093ef94525a3ae33f1c7e6d92dd466dce4813a974326" }, "downloads": -1, "filename": "runium-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "d59549eb3e3fdad793778b0cb7efa665", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8865, "upload_time": "2019-07-22T21:30:51", "url": "https://files.pythonhosted.org/packages/d0/47/7e242c51f7d2e416f0cdf320375aa1f8bc64f576723050e266bf495c79e0/runium-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a903c8f49f85caf40e2ac8589101a460", "sha256": "1f3853f5b8cdf2c910982784bb3f4729ab17761e1f6dfd55208bce32aeb4e09b" }, "downloads": -1, "filename": "runium-0.1.8.tar.gz", "has_sig": false, "md5_digest": "a903c8f49f85caf40e2ac8589101a460", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6339, "upload_time": "2019-07-22T21:30:52", "url": "https://files.pythonhosted.org/packages/63/33/7d95dee5c8fa5448b7be46654982587d581f2c37603fd5a646c4f802851d/runium-0.1.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d59549eb3e3fdad793778b0cb7efa665", "sha256": "f9d1fc529cbe287940f2093ef94525a3ae33f1c7e6d92dd466dce4813a974326" }, "downloads": -1, "filename": "runium-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "d59549eb3e3fdad793778b0cb7efa665", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8865, "upload_time": "2019-07-22T21:30:51", "url": "https://files.pythonhosted.org/packages/d0/47/7e242c51f7d2e416f0cdf320375aa1f8bc64f576723050e266bf495c79e0/runium-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a903c8f49f85caf40e2ac8589101a460", "sha256": "1f3853f5b8cdf2c910982784bb3f4729ab17761e1f6dfd55208bce32aeb4e09b" }, "downloads": -1, "filename": "runium-0.1.8.tar.gz", "has_sig": false, "md5_digest": "a903c8f49f85caf40e2ac8589101a460", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6339, "upload_time": "2019-07-22T21:30:52", "url": "https://files.pythonhosted.org/packages/63/33/7d95dee5c8fa5448b7be46654982587d581f2c37603fd5a646c4f802851d/runium-0.1.8.tar.gz" } ] }