-
Notifications
You must be signed in to change notification settings - Fork 773
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Metaflow Configs #1962
Metaflow Configs #1962
Conversation
b03a453
to
de97829
Compare
As a user interested in using a config file instead of using different sets of parameters, what would a config file look like? |
@bhogan-bdai -- the idea so far is to support a simple format like JSON (nested dicts basically) but other formats could be supported as well. We are also providing a |
a4b601d
to
bcdd987
Compare
f172725
to
0f3d6d8
Compare
5fdb25c
to
bc57f77
Compare
2bf8847
to
21f0c3a
Compare
else: | ||
kwargs["envvar"] = "METAFLOW_FLOW_%s" % option.upper() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
there can only be one envvar
in kwargs?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is click's way of indicating which env-var maps to that option. So yes, there is only one env-var that maps to the option.
641def0
to
fc1a3b8
Compare
This will allow parameters to be added when processing the `start` step (for the upcomming config change).
Previously, options like `branch` and `name` (injected by the project decorator for example) could be set using `METAFLOW_BRANCH`. They now need to be set using `METAFLOW_FLOW_BRANCH`. This change is made to prevent clashes between regular metaflow configuration settings and decorator level options. No other changes are made so `METAFLOW_RUN_MAX_WORKERS` still works as expected and `METAFLOW_PYLINT` as well.
Several fixes: - fixed an issue with default values - better handling of parameter defaults as configs - handle config defaults as functions - ConfigValue is more "dict"-like - made <myflow>.configs and <myflow>.steps work properly - renamed resolve_configs to init
Specifically: - moved things out of the INFO file - added to_dict - renamed user_configs to config_parameters
Specifically: - made config values immutable - cleaned up state stored in FlowSpec - added a test exercising configs in various places
- Separate out value and file (so default and default_value and --config and --config-value) - Provide classes for step and flow config decorators with proxy objects - Split things into several files (it was getting too long) - Addressed all bugs discussed
Fixed some typos and updated test to reflect latest code. Fixed a few other issues: - fixed an issue where a config was used in different decorators causing it to produce an incorrect access string - made the decorators work with or without arguments
…essages Use METAFLOW_DEBUG_USERCONF=1 to get a bit more detail. Should be feature complete now.
12f28ec
to
7a3a3be
Compare
This is not yet fully ready but putting out so people can get a general sense of the direction.