# Jupyter-JobStorm
JupyterLab is a wonderful development environment for notebooks.
By using JupyterLab, you can run a Python program easily.
In a notebook, you can run a code and get the output directly below the code cell.
In case of quick code execution and fast response, it becomes a wonderful development experience.
Waiting about one minute for the response would be fine for almost everyone.
If it takes several minutes for executing a code, how do you spend your time?
You may use time to code for the next execution, chat or have a coffee.
But, do you want to run your codes any time and get results later?
Jupyter-JobStorm is a solution for executing your codes asynchronously.
Jupyter-JobStorm generates a job for a code to run and requests Jenkins to run the job.
You can check the job status and get the result through Jupyter-JobStorm.
Please see examples for details.
I believe that Jenkins will catch and execute jobs which are sent from you like the mighty storm on the planet Jupiter.
## Feature
- Supporting Jenkins as job runner
- Running a function (\*)(\*\*) of Python/SageMath script as a job
- Retrieving the status and the result of the job
(\*) Currently only variables of function arguments are passed to the function and variables outside of the function are not supported.
(\*\*) Since version 0.4.0, function using classes defined in Jupyter code cell is supported.
## Requirement
- dill >= 0.3.5.1
- python-jenkins >= 1.8.0
- tabulate >= 0.9.0
- Jenkins
- Jupyter
- Shared directory accessible to Jupyter server and Jenkins nodes.
## Installation
Installations required for Jupyter server and Jenkins nodes.
```console
$ pip install jupyter-jobstorm
```
## Usage
- [Example 1: Python Job Test](https://github.com/schrodingers-koala/jupyter-jobstorm/blob/main/example/job_test.ipynb)
- [Example 2: Sage Job Test](https://github.com/schrodingers-koala/jupyter-jobstorm/blob/main/example/sage_job_test.ipynb)
- [Example 3: Job Management Test](https://github.com/schrodingers-koala/jupyter-jobstorm/blob/main/example/job_management.ipynb)
## License
Jupyter-JobStorm is under MIT license.
Raw data
{
"_id": null,
"home_page": "https://github.com/schrodingers-koala/jupyter-jobstorm",
"name": "jupyter-jobstorm",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "jupyter-jobstorm,jobstorm",
"author": "schrodingers-koala",
"author_email": "schrodingers.koala@gmail.com",
"download_url": "",
"platform": null,
"description": "# Jupyter-JobStorm\n\nJupyterLab is a wonderful development environment for notebooks.\nBy using JupyterLab, you can run a Python program easily.\nIn a notebook, you can run a code and get the output directly below the code cell.\nIn case of quick code execution and fast response, it becomes a wonderful development experience.\nWaiting about one minute for the response would be fine for almost everyone.\nIf it takes several minutes for executing a code, how do you spend your time?\nYou may use time to code for the next execution, chat or have a coffee.\nBut, do you want to run your codes any time and get results later?\n\nJupyter-JobStorm is a solution for executing your codes asynchronously.\nJupyter-JobStorm generates a job for a code to run and requests Jenkins to run the job.\nYou can check the job status and get the result through Jupyter-JobStorm.\nPlease see examples for details.\n\nI believe that Jenkins will catch and execute jobs which are sent from you like the mighty storm on the planet Jupiter.\n\n## Feature\n\n- Supporting Jenkins as job runner\n- Running a function (\\*)(\\*\\*) of Python/SageMath script as a job\n- Retrieving the status and the result of the job\n\n(\\*) Currently only variables of function arguments are passed to the function and variables outside of the function are not supported.\n\n(\\*\\*) Since version 0.4.0, function using classes defined in Jupyter code cell is supported.\n\n## Requirement\n\n- dill >= 0.3.5.1\n- python-jenkins >= 1.8.0\n- tabulate >= 0.9.0\n- Jenkins\n- Jupyter\n- Shared directory accessible to Jupyter server and Jenkins nodes.\n\n## Installation\n\nInstallations required for Jupyter server and Jenkins nodes.\n\n```console\n$ pip install jupyter-jobstorm\n```\n\n## Usage\n\n- [Example 1: Python Job Test](https://github.com/schrodingers-koala/jupyter-jobstorm/blob/main/example/job_test.ipynb)\n\n- [Example 2: Sage Job Test](https://github.com/schrodingers-koala/jupyter-jobstorm/blob/main/example/sage_job_test.ipynb)\n\n- [Example 3: Job Management Test](https://github.com/schrodingers-koala/jupyter-jobstorm/blob/main/example/job_management.ipynb)\n\n## License\n\nJupyter-JobStorm is under MIT license.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A tool to run a function written in Jupyter cell as a job",
"version": "0.4.0",
"project_urls": {
"Homepage": "https://github.com/schrodingers-koala/jupyter-jobstorm"
},
"split_keywords": [
"jupyter-jobstorm",
"jobstorm"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3054924b0efecce3c9dfd43f76c943a44219cda93a405e1077d4784075cfcfb2",
"md5": "48f7b2e950235e5275009f2ecf21a170",
"sha256": "55bcdb4a966967407b1b42c6e3cb2dd7dbc3593a0b11c19426cb7ca2f675eb50"
},
"downloads": -1,
"filename": "jupyter_jobstorm-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "48f7b2e950235e5275009f2ecf21a170",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 9884,
"upload_time": "2023-09-23T01:39:04",
"upload_time_iso_8601": "2023-09-23T01:39:04.477596Z",
"url": "https://files.pythonhosted.org/packages/30/54/924b0efecce3c9dfd43f76c943a44219cda93a405e1077d4784075cfcfb2/jupyter_jobstorm-0.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-23 01:39:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "schrodingers-koala",
"github_project": "jupyter-jobstorm",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "jupyter-jobstorm"
}