Description
In GitLab by @pjacock on Aug 6, 2019, 02:42
I have read http://flake8.pycqa.org/en/latest/plugin-development/plugin-parameters.html#accessing-parsed-options
I am working on a plugin which successfully sets and receives additional configuration values. However, I wish to validate the configuration once (as early as possible), and may need to indicate an error to flake8 signalling it to abort. The simple option of raising a ValueError
within parse_options
does not work gracefully:
...
@classmethod
def add_options(cls, parser):
...
# Define option "--our_config_file"
@classmethod
def parse_options(cls, options):
...
if not os.path.isfile(options.our_config_file):
raise ValueError("Could not find specified file: %r" % options.our_config_file)
...
This has the desired effect of aborting flake8 early, but with an ugly traceback.
Is there an expected approach I have overlooked, or would documenting this with a try/except in flake8 be preferred?
I think the change would be in the provide_options
method here:
https://gitlab.com/pycqa/flake8/blob/3.7.8/src/flake8/plugins/manager.py#L186