core/source: make help URL configurable

This commit is contained in:
Sean Breckenridge 2022-03-23 09:51:05 -07:00 committed by karlicoss
parent 16c777b45a
commit 444ec1c450

View file

@ -152,7 +152,7 @@ def error_to_json(e: Exception) -> Json:
MODULE_SETUP_URL = 'https://github.com/karlicoss/HPI/blob/master/doc/SETUP.org#private-configuration-myconfig' MODULE_SETUP_URL = 'https://github.com/karlicoss/HPI/blob/master/doc/SETUP.org#private-configuration-myconfig'
def warn_my_config_import_error(err: Union[ImportError, AttributeError]) -> bool: def warn_my_config_import_error(err: Union[ImportError, AttributeError], help_url: str = MODULE_SETUP_URL) -> bool:
""" """
If the user tried to import something from my.config but it failed, If the user tried to import something from my.config but it failed,
possibly due to missing the config block in my.config? possibly due to missing the config block in my.config?
@ -168,10 +168,10 @@ def warn_my_config_import_error(err: Union[ImportError, AttributeError]) -> bool
em = re.match(r"cannot import name '(\w+)' from 'my.config'", str(err)) em = re.match(r"cannot import name '(\w+)' from 'my.config'", str(err))
if em is not None: if em is not None:
section_name = em.group(1) section_name = em.group(1)
click.echo(click.style(f"""\ click.secho(f"""\
You may be missing the '{section_name}' section from your config. You may be missing the '{section_name}' section from your config.
See {MODULE_SETUP_URL}\ See {help_url}\
""", fg='yellow'), err=True) """, fg='yellow', err=True)
return True return True
elif type(err) == AttributeError: elif type(err) == AttributeError:
# test if user had a nested config block missing # test if user had a nested config block missing
@ -181,7 +181,9 @@ See {MODULE_SETUP_URL}\
# e.g. active_browser for my.browser # e.g. active_browser for my.browser
nested_block_name = err.name # type: ignore[attr-defined] nested_block_name = err.name # type: ignore[attr-defined]
if config_obj.__module__ == 'my.config': if config_obj.__module__ == 'my.config':
click.secho(f"You're likely missing the nested config block for '{getattr(config_obj, '__name__', str(config_obj))}.{nested_block_name}'.\nSee {MODULE_SETUP_URL} or check the module.py file for an example", fg='yellow', err=True) click.secho(f"""You're likely missing the nested config block for '{getattr(config_obj, '__name__', str(config_obj))}.{nested_block_name}'.
See {help_url} or check the corresponding module.py file for an example\
""", fg='yellow', err=True)
return True return True
else: else:
click.echo(f"Unexpected error... {err}", err=True) click.echo(f"Unexpected error... {err}", err=True)