Add slurm sinfo parser from file

This commit is contained in:
Benoît Seignovert 2024-02-14 17:09:12 +01:00
parent 52b96548c2
commit b0f8e336bc
Signed by: Benoît Seignovert
GPG key ID: F5D8895227D18A0B
2 changed files with 25 additions and 4 deletions

View file

@ -6,6 +6,7 @@ import subprocess
from dataclasses import dataclass, field
from itertools import groupby
from operator import attrgetter
from pathlib import Path
@dataclass
@ -94,6 +95,12 @@ def sinfo_filter(resources: list, with_states=('idle', 'mixed')) -> dict:
return {key: values for key, values in resources.items() if values}
def sinfo_from_file(fname, with_states=('idle', 'mixed')) -> dict:
"""SLURM SINFO resources available from a given file."""
content = Path(fname).read_text()
return sinfo_filter(sinfo_reader(content), with_states=with_states)
def sinfo(username: str = None, with_states=('idle', 'mixed')) -> dict:
"""SLURM SINFO resources available for a given user."""
return sinfo_filter(sinfo_reader(sinfo_run(username=username)), with_states=with_states)