diff --git a/pyproject.toml b/pyproject.toml index 7fcc16b..558f0ed 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -58,6 +58,9 @@ quote-style = "single" inline-quotes = "single" docstring-quotes = "double" +[tool.ruff.lint.pydocstyle] +convention = "numpy" + [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" diff --git a/src/glicid_spawner/__init__.py b/src/glicid_spawner/__init__.py index c298340..95a8eb5 100644 --- a/src/glicid_spawner/__init__.py +++ b/src/glicid_spawner/__init__.py @@ -4,8 +4,6 @@ from importlib.metadata import version from .spawner import GlicidSpawner -__all__ = [ - 'GlicidSpawner', -] +__all__ = ['GlicidSpawner'] __version__ = version('glicid-spawner') diff --git a/src/glicid_spawner/pyenv.py b/src/glicid_spawner/pyenv.py new file mode 100644 index 0000000..4ec2206 --- /dev/null +++ b/src/glicid_spawner/pyenv.py @@ -0,0 +1,65 @@ +"""Python environment module.""" + +from dataclasses import dataclass + + +@dataclass +class PyEnv: + """Python environment generic class.""" + + name: str + path: str + + def __eq__(self, item): + return self.path == str(item) + + +class UserPyEnv(PyEnv): + """User python environment.""" + + scope = 'USER' + + +class TeamPyEnv(PyEnv): + """Team python environment.""" + + scope = 'TEAM' + + +class GlobalPyEnv(PyEnv): + """Global python environment.""" + + scope = 'GLOBAL' + + +def get_pyenv_user(username: str) -> list: + """List of python environment available to the user.""" + return [ + # Dummy values + UserPyEnv('base', f'/micromamba/{username}'), + UserPyEnv('pytorch', f'/micromamba/{username}/envs/pytorch'), + ] + + +def get_pyenv_team() -> list: + """List of python environment available to the user's team.""" + return [ + # Dummy values + TeamPyEnv( + 'nuts-workshop', '/micromamba/operator/share/nuts-workshop-team/env/envs/nuts-workshop' + ), + ] + + +def get_pyenv_global() -> list: + """List of python environment available globally.""" + return [ + # Dummy values + GlobalPyEnv('base', '/micromamba/operator/envs/base'), + GlobalPyEnv('data-science', '/micromamba/operator/envs/data-science'), + ] + + +def get_pyenv(username: str) -> list: + """List of all the python environment available to a user.""" + return get_pyenv_user() + get_pyenv_team() + get_pyenv_global() diff --git a/src/glicid_spawner/spawner.py b/src/glicid_spawner/spawner.py index ffed7f5..1d516a4 100644 --- a/src/glicid_spawner/spawner.py +++ b/src/glicid_spawner/spawner.py @@ -1,51 +1,28 @@ """GLiCID spawner module.""" -import shlex - from batchspawner import SlurmSpawner +from jinja2 import Environment, PackageLoader, select_autoescape + +from .pyenv import get_pyenv class GlicidSpawner(SlurmSpawner): """Glicid SLURM Spawner.""" - def _options_form_default(self): - default_env = f'YOURNAME={self.user.name}\n' - return f""" -