slurmformspawner


Nameslurmformspawner JSON
Version 2.6.0 PyPI version JSON
download
home_pagehttps://github.com/cmd-ntrf/slurmformspawner
Summaryslurmformspawner: JupyterHub SlurmSpawner with a dynamic spawn form
upload_time2024-04-04 20:19:49
maintainerNone
docs_urlNone
authorFélix-Antoine Fortin
requires_pythonNone
licenseMIT
keywords interactive web jupyterhub
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # slurmformspawner
JupyterHub SlurmSpawner with a dynamic spawn form

## Requirements

- Python >= 3.7
- JupyterHub >= 4.0.0
- batchspawner>= 1.3.0
- cachetools
- traitlets

## Configuration

### SlurmFormSpawner

| Variable                          | Type    | Description                                     | Default |
| --------------------------------- | :------ | :---------------------------------------------- | ------- |
| `c.SlurmFormSpawner.disable_form`    | `CBool` | Disable the spawner input form, use only default values instead | `False` |
| `c.SlurmFormSpawner.error_template_path` | `Unicode` | Path to the Jinja2 template of the error page | `os.path.join(sys.prefix, 'share',  'slurmformspawner', 'templates', 'error.html')` |
| `c.SlurmFormSpawner.submit_template_path` | `Unicode` | Path to the Jinja2 template of the submit file | `os.path.join(sys.prefix, 'share', 'slurmformspawner', 'templates', 'submit.sh')` |
| `c.SlurmFormSpawner.ui_args` | `Dict` | Dictionary of dictionaries describing the UI options | refer to `ui_args` section |

#### `ui_args`

`ui_args` is a dictionary where the keys are labels that will be re-used in `SbatchForm.ui` and the values are dictionnaries describing how to launch the user interface.
Each option dictionary can have the following keys:
- `name` (required): string that will appear in the Spawner form
- `url`  (optional): url user is being redirected to after spawning the single-user server (refer to `JUPYTERHUB_DEFAULT_URL` documentation)
- `args` (optional): list of flags and options that will be appended to jupyter single-user command that should redirect to the UI.
- `modules` (optional): list of module names that needs to be loaded to make the user interface work

Here is an example of a dictionary that would configure Jupyter Notebook, a terminal and RStudio.
```
c.SlurmFormSpawner.ui_args = {
    'notebook' : {
        'name': 'Jupyter Notebook'
    },
    'terminal' : {
        'name': 'Terminal',
        'url': '/terminal/1'
    },
    'rstudio' : {
        'name': 'RStudio',
        'url': '/rstudio',
        'modules': ['rstudio-server']
    }
}
```

### SbatchForm

| Variable                          | Type    | Description                                     | Default |
| --------------------------------- | :------ | :---------------------------------------------- | ------- |
| `c.SbatchForm.runtime`  | `Dict({'max', 'min', 'step', 'lock', 'def'})` | Runtime widget parameters  | refer to `form.py`   |
| `c.SbatchForm.nprocs`  | `Dict({'max', 'min', 'step', 'lock', 'def'})` | Number of cores widget parameters | refer to `form.py` |
| `c.SbatchForm.memory`  | `Dict({'max', 'min', 'step', 'lock', 'def'})` | Memory (MB) widget parameters | refer to `form.py`    |
| `c.SbatchForm.oversubscribe`  | `Dict({'def', 'lock'})` | Oversubscribe widget parameters | refer to `form.py`  |
| `c.SbatchForm.gpus`  | `Dict({'def', 'choices', 'lock'})` | GPUs widget parameters | refer to `form.py`  |
| `c.SbatchForm.ui`  | `Dict({'def', 'choices', 'lock'})` | User interface widget parameters | refer to `form.py`  |
| `c.SbatchForm.reservation`  | `Dict({'def', 'choices', 'lock'})` | Reservation widget parameters | refer to `form.py`  |
| `c.SbatchForm.account`  | `Dict({'def', 'choices', 'lock'})` | Account widget parameters | refer to `form.py`  |
| `c.SbatchForm.partition` | `Dict({'def', 'choices', 'lock'})` | Slurm partition parameters | refer to `form.py` |
| `c.SbatchForm.form_template_path` | `Unicode` | Path to the Jinja2 template of the form | `os.path.join(sys.prefix, 'share',  'slurmformspawner', 'templates', 'form.html')` |

### SlurmAPI

| Variable                          | Type      | Description                                                       | Default |
| --------------------------------- | :-------- | :---------------------------------------------------------------- | ------- |
| `c.SlurmAPI.info_cache_ttl`       | `Integer` | Slurm sinfo output cache time-to-live (seconds)                   | 300     |
| `c.SlurmAPI.acct_cache_ttl`       | `Integer` | Slurm sacct output cache time-to-live (seconds)                   | 300     |
| `c.SlurmAPI.acct_cache_size`      | `Integer` | Slurm sacct output cache size (number of users)                   | 100     |
| `c.SlurmAPI.res_cache_ttl`        | `Integer` | Slurm scontrol (reservations) output cache time-to-live (seconds) | 300     |

## screenshot

![form_screenshot](screenshot.png "Form screenshot")

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/cmd-ntrf/slurmformspawner",
    "name": "slurmformspawner",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "Interactive, Web, JupyterHub",
    "author": "F\u00e9lix-Antoine Fortin",
    "author_email": "felix-antoine.fortin@calculquebec.ca",
    "download_url": "https://files.pythonhosted.org/packages/c9/54/851efc7dd4e5b63f5e3393d1daad98dcab84a49f21a2e4dd0301ce39d2df/slurmformspawner-2.6.0.tar.gz",
    "platform": "Linux",
    "description": "# slurmformspawner\nJupyterHub SlurmSpawner with a dynamic spawn form\n\n## Requirements\n\n- Python >= 3.7\n- JupyterHub >= 4.0.0\n- batchspawner>= 1.3.0\n- cachetools\n- traitlets\n\n## Configuration\n\n### SlurmFormSpawner\n\n| Variable                          | Type    | Description                                     | Default |\n| --------------------------------- | :------ | :---------------------------------------------- | ------- |\n| `c.SlurmFormSpawner.disable_form`    | `CBool` | Disable the spawner input form, use only default values instead | `False` |\n| `c.SlurmFormSpawner.error_template_path` | `Unicode` | Path to the Jinja2 template of the error page | `os.path.join(sys.prefix, 'share',  'slurmformspawner', 'templates', 'error.html')` |\n| `c.SlurmFormSpawner.submit_template_path` | `Unicode` | Path to the Jinja2 template of the submit file | `os.path.join(sys.prefix, 'share', 'slurmformspawner', 'templates', 'submit.sh')` |\n| `c.SlurmFormSpawner.ui_args` | `Dict` | Dictionary of dictionaries describing the UI options | refer to `ui_args` section |\n\n#### `ui_args`\n\n`ui_args` is a dictionary where the keys are labels that will be re-used in `SbatchForm.ui` and the values are dictionnaries describing how to launch the user interface.\nEach option dictionary can have the following keys:\n- `name` (required): string that will appear in the Spawner form\n- `url`  (optional): url user is being redirected to after spawning the single-user server (refer to `JUPYTERHUB_DEFAULT_URL` documentation)\n- `args` (optional): list of flags and options that will be appended to jupyter single-user command that should redirect to the UI.\n- `modules` (optional): list of module names that needs to be loaded to make the user interface work\n\nHere is an example of a dictionary that would configure Jupyter Notebook, a terminal and RStudio.\n```\nc.SlurmFormSpawner.ui_args = {\n    'notebook' : {\n        'name': 'Jupyter Notebook'\n    },\n    'terminal' : {\n        'name': 'Terminal',\n        'url': '/terminal/1'\n    },\n    'rstudio' : {\n        'name': 'RStudio',\n        'url': '/rstudio',\n        'modules': ['rstudio-server']\n    }\n}\n```\n\n### SbatchForm\n\n| Variable                          | Type    | Description                                     | Default |\n| --------------------------------- | :------ | :---------------------------------------------- | ------- |\n| `c.SbatchForm.runtime`  | `Dict({'max', 'min', 'step', 'lock', 'def'})`\u00a0| Runtime widget parameters  | refer to `form.py`   |\n| `c.SbatchForm.nprocs`  | `Dict({'max', 'min', 'step', 'lock', 'def'})`\u00a0| Number of cores widget parameters | refer to `form.py` |\n| `c.SbatchForm.memory`  | `Dict({'max', 'min', 'step', 'lock', 'def'})` | Memory (MB) widget parameters | refer to `form.py`    |\n| `c.SbatchForm.oversubscribe`  | `Dict({'def', 'lock'})` | Oversubscribe widget parameters | refer to `form.py`  |\n| `c.SbatchForm.gpus`  | `Dict({'def', 'choices', 'lock'})` | GPUs widget parameters | refer to `form.py`  |\n| `c.SbatchForm.ui`  | `Dict({'def', 'choices', 'lock'})` | User interface widget parameters | refer to `form.py`  |\n| `c.SbatchForm.reservation`  | `Dict({'def', 'choices', 'lock'})` | Reservation widget parameters | refer to `form.py`  |\n| `c.SbatchForm.account`  | `Dict({'def', 'choices', 'lock'})` | Account widget parameters | refer to `form.py`  |\n| `c.SbatchForm.partition` | `Dict({'def', 'choices', 'lock'})` | Slurm partition parameters | refer to `form.py` |\n| `c.SbatchForm.form_template_path` | `Unicode` | Path to the Jinja2 template of the form | `os.path.join(sys.prefix, 'share',  'slurmformspawner', 'templates', 'form.html')` |\n\n### SlurmAPI\n\n| Variable                          | Type      | Description                                                       | Default |\n| --------------------------------- | :-------- | :---------------------------------------------------------------- | ------- |\n| `c.SlurmAPI.info_cache_ttl`       | `Integer`\u00a0| Slurm sinfo output cache time-to-live (seconds)                   | 300     |\n| `c.SlurmAPI.acct_cache_ttl`       | `Integer`\u00a0| Slurm sacct output cache time-to-live (seconds)                   | 300     |\n| `c.SlurmAPI.acct_cache_size`      | `Integer`\u00a0| Slurm sacct output cache size (number of users)                   | 100     |\n| `c.SlurmAPI.res_cache_ttl`        | `Integer`\u00a0| Slurm scontrol (reservations) output cache time-to-live (seconds) | 300     |\n\n## screenshot\n\n![form_screenshot](screenshot.png \"Form screenshot\")\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "slurmformspawner: JupyterHub SlurmSpawner with a dynamic spawn form",
    "version": "2.6.0",
    "project_urls": {
        "Homepage": "https://github.com/cmd-ntrf/slurmformspawner"
    },
    "split_keywords": [
        "interactive",
        " web",
        " jupyterhub"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2f521eb11165d1322f9e0bd628fca7ea63aa30c4654dd07d4c4f722e5e3275f0",
                "md5": "0c54a25a5d5d4c84890606dd7643e41a",
                "sha256": "60a2c7a67cc83ec4fd52a2256e4a4ea89f1e690b3ad90efe6b6cbbefb408d43e"
            },
            "downloads": -1,
            "filename": "slurmformspawner-2.6.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0c54a25a5d5d4c84890606dd7643e41a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 19930,
            "upload_time": "2024-04-04T20:19:43",
            "upload_time_iso_8601": "2024-04-04T20:19:43.311461Z",
            "url": "https://files.pythonhosted.org/packages/2f/52/1eb11165d1322f9e0bd628fca7ea63aa30c4654dd07d4c4f722e5e3275f0/slurmformspawner-2.6.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c954851efc7dd4e5b63f5e3393d1daad98dcab84a49f21a2e4dd0301ce39d2df",
                "md5": "ffed0cf8a4aa842b0a32af35ea1dae64",
                "sha256": "8cef6cda6c3cb7ba571d09e0c5f0d11537a5c33b2d377d18fe2e3a0382f6f573"
            },
            "downloads": -1,
            "filename": "slurmformspawner-2.6.0.tar.gz",
            "has_sig": false,
            "md5_digest": "ffed0cf8a4aa842b0a32af35ea1dae64",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 20174,
            "upload_time": "2024-04-04T20:19:49",
            "upload_time_iso_8601": "2024-04-04T20:19:49.574174Z",
            "url": "https://files.pythonhosted.org/packages/c9/54/851efc7dd4e5b63f5e3393d1daad98dcab84a49f21a2e4dd0301ce39d2df/slurmformspawner-2.6.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-04 20:19:49",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cmd-ntrf",
    "github_project": "slurmformspawner",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "slurmformspawner"
}
        
Elapsed time: 0.31020s