yaecs

YAECS (Yet Another Experiment Config System): Config System which allows easy manipulation of config files for safe, clear and repeatable experiments.

LGPL-3.0 License

Stars
8
yaecs - Yaecs 4 - the end of config tags

Published by Antzyx over 1 year ago

  • make_config now also scans the CLI for a config argument and falls back to no config by default
  • for all functions that check for a config argument in the CLI, the name of that argument can now be defined by the user (--config by default)
  • sub-configs no longer need a tag, instead any yaml dict is assumed to be a sub-config by default except if it is type-hinted as a dict
  • dict params now require a dict type hint, otherwise they are parsed as subconfigs
  • experiment configs now no longer require any tag (types for parsing are inferred from the default)
  • sub-configs can be type-hinted with !type:config
yaecs - Fix variations-related issues

Published by Antzyx over 1 year ago

yaecs - Fix a few issues with 3.2.2

Published by Antzyx over 1 year ago

yaecs - Fix a few issues with 3.2.1

Published by Antzyx over 1 year ago

yaecs - Fix a few issues with 3.2.0

Published by Antzyx over 1 year ago

yaecs - Processing Update

Published by Antzyx over 1 year ago

This update introduces 3 main features :

  • typing now supports the following keywords, which can be used and composed like their equivalents in the typing module : Union, List, Dict, Optional, Any
  • processing now supports a new feature : ORDERING. All functions have order 0 by default. By setting the order of a function, one defines in which order it is applied to the parameter. Functions are applied in ascending order. Most hooks and basic processing functions were assigned an order. Order can be assigned using the decorator yaecs.assign_order(order). Orders can be ints or floats, or taken from the Enum yaecs.Priority, which contains some named placeholders (ALWAYS_FIRST (-20), OFTEN_FIRST (-10), INDIFFERENT (0), SITUATIONAL (0), OFTEN_LAST (10), ALWAYS_LAST (20))
  • some processing functions can now be assigned using a yaml tag rather than the processing dictionaries. Tags were associated to most hooks and basic processing functions
yaecs - v3.1.0 - Add processing functions

Published by Antzyx over 1 year ago

Configurations now come with packaged common processing functions :

  • check_param_in_list(list_of_choices) returns a pre-processing function that checks if the value is in the list
  • copy_param is a pre-processing function that tags the param as a copy of another param. The path to the copied param is the default value of the param.
  • number_in_range(minimum, maximum) returns a pre-processing function that checks if the value is in the range
  • protected_param is a pre-processing function that tags a param as protected. Protected params can only be set in the default config
  • folder_in_experiment(condition_list) returns a post-processing function that changes a path to place it inside the experiment path, then create the corresponding folder to your experiment folder if conditions are met
yaecs - v3.0.0

Published by valentingol over 1 year ago

✨ Intern tracker system compatible with clearml and tensorboard

yaecs - v1.0.2

Published by valentingol about 2 years ago

🎨 Improve coding style in all Python files and Markdown

yaecs - v1.0.1

Published by valentingol about 2 years ago

Changes:

  • 🐛 Refactor a line in config.py to be compatible with Python3.7-3.8 syntax
  • 📝 Change the name of the branch in short-readme.md for last-commit badge
yaecs - v1.0.0

Published by valentingol about 2 years ago

🎉 Initial commit!

YAECS is the continuity of rr-ml-config-public (v1.11.1) and includes all previous features plus style changes to make the code cleaner.

Badges
Extracted from project README
License PyPI version Documentation Status