Source code for flakeheaven.commands._codes

# built-in
import re

# app
from .._constants import ExitCode
from .._logic import color_code, color_description, extract
from .._types import CommandResult


REX_CODE = re.compile(r'([A-Z]+)([0-9]+)')
REX_PLACEHOLDER = re.compile(r'(\{[a-z0-9]+\}|\%[a-z])')
REX_QUOTES = re.compile(r'([\"\'\`][\w\s\:\_\-\.]+[\"\'\`])')


[docs]def codes_command(argv) -> CommandResult: """Show available codes and messages for given plugin. """ if not argv: return ExitCode.NO_PLUGIN_NAME, 'no plugin name provided' if argv[0] == '--help': print(codes_command.__doc__) return ExitCode.OK, '' if len(argv) > 1: return ExitCode.TOO_MANY_ARGS, 'the command accept only one argument' try: codes = extract(argv[0]) except ImportError as e: return ExitCode.IMPORT_ERROR, 'cannot import module: {}'.format(e.args[0]) if not codes: return ExitCode.NO_CODES, 'no codes found' width = max(len(code) for code in codes) for code, info in sorted(codes.items()): print('{code} | {info}'.format( code=color_code(code.ljust(width)), info=color_description(info), )) return ExitCode.OK, ''