jetstream
jetstream copied to clipboard
Error running `validate_config` from CLI
I'm getting an error running validate_config
locally from the CLI on certain experiment configs from metric-hub/jetstream
. The error is attr.exceptions.NotAnAttrsClassError: <class 'NoneType'> is not an attrs-decorated class.
.
I tried running on a handful of experiment configs. All of these configs have been merged into metric-hub
and so presumably the validation succeeded when running in CI.
- I got this error for
dynamic-wikipedia-suggestions.toml
,firefox-suggest-by-merino-beta.toml
,firefox-add-ons-suggestions-experiment.toml
. - Ran without error:
dictionary-addon-all-users.toml
,mr2-upgrade-spotlight-holdback.toml
Steps to reproduce:
- pull
metric-hub
main - create new venv and
pip install mozilla-jetstream
$ jetstream validate_config dynamic-wikipedia-suggestions.toml
Evaluating dynamic-wikipedia-suggestions.toml...
Traceback (most recent call last):
File "/Users/dzeber/git/metric-hub/jetstream/.env/bin/jetstream", line 8, in <module>
sys.exit(cli())
^^^^^
File "/Users/dzeber/git/metric-hub/jetstream/.env/lib/python3.11/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/dzeber/git/metric-hub/jetstream/.env/lib/python3.11/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/Users/dzeber/git/metric-hub/jetstream/.env/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/dzeber/git/metric-hub/jetstream/.env/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/dzeber/git/metric-hub/jetstream/.env/lib/python3.11/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/dzeber/git/metric-hub/jetstream/.env/lib/python3.11/site-packages/jetstream/cli.py", line 1081, in validate_config
call()
File "/Users/dzeber/git/metric-hub/jetstream/.env/lib/python3.11/site-packages/jetstream/config.py", line 283, in validate
Analysis("no project", "no dataset", resolved_config).validate()
File "/Users/dzeber/git/metric-hub/jetstream/.env/lib/python3.11/site-packages/jetstream/analysis.py", line 439, in validate
metrics.add(Metric.from_metric_config(metric_config.metric).to_mozanalysis_metric())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/dzeber/git/metric-hub/jetstream/.env/lib/python3.11/site-packages/jetstream/metric.py", line 67, in from_metric_config
args["data_source"] = data_source.DataSource(**attr.asdict(metric_config.data_source))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/dzeber/git/metric-hub/jetstream/.env/lib/python3.11/site-packages/attr/_funcs.py", line 53, in asdict
attrs = fields(inst.__class__)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/dzeber/git/metric-hub/jetstream/.env/lib/python3.11/site-packages/attr/_make.py", line 1944, in fields
raise NotAnAttrsClassError(f"{cls!r} is not an attrs-decorated class.")
attr.exceptions.NotAnAttrsClassError: <class 'NoneType'> is not an attrs-decorated class.
Not sure if this is related, but I was previously running from inside a conda env, and it was failing on the same config files but with a different error: RecursionError: maximum recursion depth exceeded in comparison
┆Issue is synchronized with this Jira Task