Seml

Latest version: v0.4.6

Safety actively analyzes 619000 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

0.4.5

Bug fixes
* This version supports newer versions of `typer`.

0.4.4

Features
* Added support for port forwarding to access MongoDB Server 134 .
* To use this feature install `seml` via `pip install seml[ssh_forward]`.
* Configure your MongoDB and ssh forward via `seml configure --ssh_forward`
* Add clickable VSCode Debugger links 133
* You need the [Debug Launcher ](https://marketplace.visualstudio.com/items?itemName=fabiospampinato.vscode-debug-launcher) extension for this feature.
* Add option `stash_all_py_files` to the `seml` configuration block to stash all python files within the current directory (instead of only stashing the imported ones).
* Added status widget to show which command is currently running.
* Allow the import of `seml.experiment.Experiment` directly from `seml`.

Fixes
* Fixed minor issues in source code discovery.

0.4.3

Features
* `seml` now provides template(s), if you want to initialize a new project simply run `seml project init <project_name>` and a new folder `project_name` will be created with sensible defaults. List available templates via `seml project list-templates`.
* Templates are managed in https://github.com/TUM-DAML/seml-templates
* Custom repositories and versioning is supported via git
* Add a setting to set the default terminal width for experiments `SETTINGS.EXPERIMENT.TERMINAL_WIDTH`.
* Parallel processing for `seml.get_results`

Bug fixes
* Fixed node detection.
* Several fixes related to `print-output`.

0.4.2

Breaking changes
* The use of `sacred.Experiment` has been deprecated. Please use `seml.experiment.Experiment` going forward. See https://github.com/TUM-DAML/seml/blob/master/examples/example_experiment.py
* `seml.experiment.Experiment` already includes the common MongoDB, logging and experiment statistics collection setup
* By default, stdout is no longer stored in the MongoDB, reenable this in your `settings.py` or for a specific experiment with `seml.experiment.Experiment(capture_output=True)`.
* Some settings have been reorganized, see https://github.com/TUM-DAML/seml/blob/master/src/seml/settings.py

Features
* Added `seml <col> print-output`: print experiment outputs directly via CLI. This command first attempts to gather the output via the slurm log file. If that fails it will search for the correct log within the MongoDB.
* Added `seml --version`

TLDR:
old
python
import sacred
import seml

ex = sacred.Experiment()
seml.setup_logger(ex)

ex.post_run_hook
def collect_stats(_run):
seml.collect_exp_stats(_run)

ex.config
def config():
overwrite = None
db_collection = None
if db_collection is not None:
ex.observers.append(
seml.create_mongodb_observer(db_collection, overwrite=overwrite)
)

new
python
from seml.experiment import Experiment

ex = Experiment()

0.4.1

Features
* Add `seml drop <regex>` to delete all collections matching the regex pattern. (be careful with this one)
* Progress bars have been added if operations may take longer.

Fixes
* seml now correctly autocompletes if the cursor is not at the end.
* bools will no longer be converted to integers.
* source code reload now doesn't require you to first change into the correct directory.
* source code reload will resolve interpolations.

Development
* Added ruff linter and formatter as pre-commit hook, see readme.

0.4.0

Features

* `seml`'s CLI has been reimplemented for better usability, scalability, and optics. (116)
* As part of this, all seml output will now use `rich` for pretty printing.
* `seml` now supports sacred's [named configurations](https://sacred.readthedocs.io/en/stable/configuration.html#:~:text=Named%20Configurations,-With%20so%20called&text=Note%20that%20the%20named%20ConfigScope,that%20are%20computed%20from%20them.&text=You%20can%20have%20multiple%20named,like%20for%20any%20given%20run.) (119)
* You can import named configurations in your yaml file at the top level with `$config[_<optional_name>]: str | {'name': str, 'priority': int}`. Use the optional priority to indicate the import order. The optional name allows for importing multiple configs.
* As part of this change, the whole configuration is now evaluated when starting an experiment! (no more duplicates if you add a default parameter to your yaml file)
* [OmegaConf](https://omegaconf.readthedocs.io/en/latest/) is now supported to allow interpolations in your config files. (#119)
* See [advanced_example_config.yaml](https://github.com/TUM-DAML/seml/blob/master/examples/advanced_example_config.yaml).
* `seml` now supports descriptions! (118)
* Use `seml.description` in your `yaml` files to set descriptions.
* You can retrospectively change descriptions via `seml collection description set`
* Descriptions are listed in `status`, `list` and `print-fail-trace`
* Support for wildcards and multiple config files (100)
* `seml <collection> add *.yaml`
* `seml <collection> add config1.yaml config2.yaml`
* Added `seml list <regex>` to list the state of all collections matching the regex (if left empty, all collections will be shown). (114)
* Note: this does not checks for killed or interrupted experiments.
* Added `seml <collection> print-fail-trace` to print all fail traces in a collection. (114)
* No more manual checks in the MongoDB!
* Added projections to `status` and `print-fail-trace` (118)
* You can inspect data from your failed experiments via `seml collection status -p config.dataset -p config.model`
* Added support for CLI argument completion (115).
* Install argument completion via `seml --install-completion {shell}`
* `seml` will complete collection names, command names, and flags.
* Added support for Python 3.10 and 3.11

Breaking Changes
* Dropped support for Python 3.7
* The new CLI has slightly changed parameters. Make sure to check the documentation!
* The behavior of `seml configure` has been adjusted to incorporate more configurations in the future. For now, the default behavior is identical.
* All CLI outputs have been updated. Scripts relying on inspecting these are unlikely to work.
* The whole configuration is now evaluated when adding an experiment rather than at runtime (119)

Changes
* Collections will now be dropped if they are empty after `seml <collection> delete`. (100)
* Support integers as dict keys (we convert them to strings) (113)
* We switched to importing larger modules lazily. Thanks to this, `seml` is now faster
* Before: `time seml`: 1.2s - 2s
* After: `time seml`: 0.5 - 0.8s
* With the newest version of `munch` and `sacred`: ~0.3s

Bug fixes
* Better handling of working directories.
* Correct inheritance order to default -> template -> experiment (109)

Page 1 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.