2024-01-29 17:47:47 +01:00
|
|
|
"""GLiCID spawner module."""
|
|
|
|
|
|
|
|
from batchspawner import SlurmSpawner
|
2024-01-30 16:15:18 +01:00
|
|
|
from jinja2 import Environment, PackageLoader, select_autoescape
|
|
|
|
|
|
|
|
from .pyenv import get_pyenv
|
2024-01-29 17:47:47 +01:00
|
|
|
|
|
|
|
|
|
|
|
class GlicidSpawner(SlurmSpawner):
|
|
|
|
"""Glicid SLURM Spawner."""
|
|
|
|
|
2024-01-30 16:15:18 +01:00
|
|
|
def _options_form_default(self) -> str:
|
|
|
|
"""JupyterHub rendered form template."""
|
|
|
|
environment = Environment(
|
|
|
|
loader=PackageLoader('glicid_spawner'),
|
|
|
|
autoescape=select_autoescape(),
|
|
|
|
)
|
|
|
|
template = environment.get_template('interactive.html')
|
2024-01-29 17:47:47 +01:00
|
|
|
|
2024-01-30 16:15:18 +01:00
|
|
|
return template.render(
|
|
|
|
username=self.user.name,
|
|
|
|
python_envs=get_pyenv(self.user.name),
|
|
|
|
)
|
2024-01-29 17:47:47 +01:00
|
|
|
|
2024-01-30 16:15:18 +01:00
|
|
|
def options_from_form(self, formdata) -> dict:
|
|
|
|
options = {}
|
|
|
|
options['pyenv'] = formdata['python-env'][0]
|
2024-01-29 17:47:47 +01:00
|
|
|
return options
|