__all__ = ()

from .parameter import TYPE_IDENTIFIER_BOOL, TYPE_IDENTIFIER_FLOAT, TYPE_IDENTIFIER_INT, TYPE_IDENTIFIER_STR


PARAMETER_NOTE_SIGN_REQUIRED = '*'
PARAMETER_NOTE_SIGN_MULTIPLE_POSITIONAL = '**'
PARAMETER_NOTE_SIGN_MULTIPLE_KEYWORD = '***'

PARAMETER_NOTE_ADJUSTMENT = max(
    len(PARAMETER_NOTE_SIGN_REQUIRED),
    len(PARAMETER_NOTE_SIGN_MULTIPLE_POSITIONAL),
    len(PARAMETER_NOTE_SIGN_MULTIPLE_KEYWORD),
) + 1

PARAMETER_DEFAULT_PREFIX = 'Default: '

PARAMETER_COLUMN_SEPARATOR = '   '
PARAMETER_MODIFIER_SEPARATOR = ' / '

PARAMETER_TYPE_IDENTIFIER_TO_REPRESENTATION = {
    TYPE_IDENTIFIER_STR: 'TEXT',
    TYPE_IDENTIFIER_INT: 'INTEGER',
    TYPE_IDENTIFIER_FLOAT: 'FLOAT',
    TYPE_IDENTIFIER_BOOL: 'BOOLEAN'
}

BOX_LEFT_TOP = '╭─'
BOX_RIGHT_TOP = '─╮'
BOX_LEFT_BOT = '╰─'
BOX_RIGHT_BOT = '─╯'

BOX_LEFT = '│ '
BOX_RIGHT = ' │'

BOX_TOP = '─'
BOX_BOTTOM = '─'

BOX_TITLE_PARAMETER = ' PARAMETERS '
BOX_TITLE_MODIFIER = ' OPTIONS '
BOX_TITLE_SUB_COMMANDS = ' SUB-COMMANDS '
BOX_TITLE_ERROR = ' ERROR '

NOTE_SIGN_DESCRIPTION = {
    PARAMETER_NOTE_SIGN_REQUIRED: 'Required.',
    PARAMETER_NOTE_SIGN_MULTIPLE_POSITIONAL: 'Allows multiple parameters.',
    PARAMETER_NOTE_SIGN_MULTIPLE_KEYWORD: 'Captures any keyword parameters.'
}
