Closed dfuchsgruber closed 1 year ago
Thanks a lot! Great contribution. A few more comments:
groups
and we have to split by groups but keep the commands associated with their command.seml collection description set ... delete ...
the same as seml collection description set ...; seml collection delete
or seml collection description set ...; seml collection description delete ...
? I.e., do we reset after every command back to the top-level command? If not one can never return to chain top-level commands.seml collection description list
to show which jobs have which description?seml list
gives
/nfs/staff-ssd/gaoni/miniconda3/envs/jax4/lib/python3.11/typing.py:1275 in __getattr__ │
│ │
│ 1272 │ │ # Also for simplicity we don't relay any dunder names │
│ 1273 │ │ if '__origin__' in self.__dict__ and not _is_dunder(attr): │
│ 1274 │ │ │ return getattr(self.__origin__, attr) │
│ ❱ 1275 │ │ raise AttributeError(attr) │
│ 1276 │ │
│ 1277 │ def __setattr__(self, attr, val): │
│ 1278 │ │ if _is_dunder(attr) or attr in {'_name', '_inst', '_nparams', │
│ │
│ ╭────── locals ──────╮ │
│ │ attr = '__args__' │ │
│ │ self = typing.List │ │
│ ╰────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
AttributeError: __args__
I additionally implemented seml xyz description list
.
LGTM
Adds per-experiment descriptions to SEML
What does this implement/fix?
This allows the user to add descriptions on a per-experiment basis to MongoDB. The preferred way to do so should be to add a
description
key to the experiment YAML-file'sseml
section, as in:This description is available when running the following commands:
seml list
: Will add a "Description(s)"-column that displays all distinct descriptions of experiments in each collection.seml status
will display similar informationseml {collection} print-fail-trace
will also display per-experiment descriptions in the footer of the panel.Both
seml list
andseml {collection} status
support the--full-descriptions
flag, that will print full descriptions instead of truncating them such that they do not exceed a line, e.g.:The descriptions can also retroactively be set (=updated) or deleted via the new commands:
seml {collection} description set {description}
that will set the description of all documents to a string. This command supports common filters on sacred ID, batch ID, states and custom user filtersseml {collection} description delete
deletes all descriptions of these documents. Again, aforementioned common filters are supported.Projections to fail-trace-printing
Somewhat orthogonal to experiment descriptions: The
seml {collection} print-fail-trace
command was extended to also display additional config fields requested by the user via the-p
/--projection
flag, e.g.As I encountered looking into the MongoDB for what parameters might have triggered experiment failure, this is another IMHO very convenient functionality.
Additional information
_SEML_COMPLETE=1 typer seml.__main__ utils docs --name seml --output docs.md
or did not change the CLI :typer
is not a valid command after installing the requirements. Is this an issue with the typer version? How do I build docstrings otherwise? Also,python -m typer
is not valid.