Spaces:
Runtime error
Runtime error
import types | |
import click | |
from click.core import Context, Option | |
from ..config.meta import __TITLE__, __VERSION__, __AUTHOR__, __AUTHOR_EMAIL__ | |
_raw_authors = [item.strip() for item in __AUTHOR__.split(',') if item.strip()] | |
_raw_emails = [item.strip() for item in __AUTHOR_EMAIL__.split(',')] | |
if len(_raw_emails) < len(_raw_authors): # pragma: no cover | |
_raw_emails += [None] * (len(_raw_authors) - len(_raw_emails)) | |
elif len(_raw_emails) > len(_raw_authors): # pragma: no cover | |
_raw_emails[len(_raw_authors) - 1] = tuple(_raw_emails[len(_raw_authors) - 1:]) | |
del _raw_emails[len(_raw_authors):] | |
_author_tuples = [ | |
(author, tuple([item for item in (email if isinstance(email, tuple) else ((email,) if email else ())) if item])) | |
for author, email in zip(_raw_authors, _raw_emails) | |
] | |
_authors = [ | |
author if not emails else '{author} ({emails})'.format(author=author, emails=', '.join(emails)) | |
for author, emails in _author_tuples | |
] | |
GLOBAL_CONTEXT_SETTINGS = dict( | |
help_option_names=['-h', '--help'] | |
) | |
def print_version(module, ctx: Context, param: Option, value: bool) -> None: | |
""" | |
Print version information of cli | |
:param module: current module using this cli. | |
:param ctx: click context | |
:param param: current parameter's metadata | |
:param value: value of current parameter | |
""" | |
if not value or ctx.resilient_parsing: | |
return # pragma: no cover | |
if module is None: | |
title = __TITLE__ | |
elif isinstance(module, types.ModuleType): | |
title = module.__name__ | |
else: | |
title = str(module) | |
click.echo('{title}, version {version}.'.format(title=title.capitalize(), version=__VERSION__)) | |
if _authors: | |
click.echo('Developed by {authors}.'.format(authors=', '.join(_authors))) | |
ctx.exit() | |