auxilium/tools/const.py
# -*- coding: utf-8 -*-
# auxilium
# --------
# Python project for an automated test and deploy toolkit.
#
# Author: sonntagsgesicht
# Version: 0.2.8, copyright Friday, 14 January 2022
# Website: https://github.com/sonntagsgesicht/auxilium
# License: Apache License 2.0 (see LICENSE file)
from os import name as os_name
from os.path import basename, join, normpath
from sys import executable
PYTHON = basename(executable)
REPLACE = ":()-*.#/\\'?!<>" + '"'
DEMO_PATH = "auxilium_demo"
PROFILE_PATH = "dev.py"
TEST_PATH = normpath('test/')
AUX_PATH = '.aux'
LAST_M_FILE = join(AUX_PATH, 'last.json')
CONFIG_PATH = join(AUX_PATH, 'config')
VENV_PATH = join(AUX_PATH, 'venv')
FREEZE_FILE = join(AUX_PATH, '.freeze')
TEMP_REMOVE_FILE = join(AUX_PATH, '.site_packages_to_remove')
GIT_PATH = '.git'
if os_name == 'nt':
VENV_TAIL = join('Scripts', PYTHON)
VENV = join(VENV_PATH, VENV_TAIL)
elif os_name == 'posix':
VENV_TAIL = join('bin', PYTHON)
VENV = join(VENV_PATH, VENV_TAIL)
else:
VENV_TAIL = ''
VENV = PYTHON
DETAIL_FORMATTER = '%(levelname)-7.7s %(message)s'
MINIMAL_FORMATTER = ' %(message)s'
TEST_LOG_FORMATTER = 'โข' + MINIMAL_FORMATTER
VERBOSITY_LEVELS = (
(20, MINIMAL_FORMATTER),
(0, MINIMAL_FORMATTER),
(10, MINIMAL_FORMATTER),
(20, DETAIL_FORMATTER),
(30, DETAIL_FORMATTER),
(40, DETAIL_FORMATTER),
(50, DETAIL_FORMATTER)
)
SUB_FORMATTER_PREFIX = '|'
_ICONS = {
# basic
'ok': 'โ
',
'cancel': 'โ',
# log level
'debug': '๐ชฒ',
'info': 'โน๏ธ',
'warn': 'โ',
'warning': 'โ',
'error': '๐ซ',
# git
'init': '๐ฃ',
'clone': '๐งช',
'branch': '๐ฆ',
'checkout': '๐',
'add': 'โ',
'missing': '๐คท',
'status': '๐',
'commit': '๐',
'tag': '๐ท',
'pull': '๐ฅ',
'push': '๐ค',
# commands
'python': '๐',
'run': '๐',
'demo': '๐น',
'uninstall': '๐',
'clean': '๐งน',
'finish': '๐',
# create
'create': '๐ช',
'setup': '๐งฐ', # 'โ๏ธ',
'install': '๐',
'venv': '๐ป',
# update
'maintenance': '๐ ',
'upgrade': '๐
',
# test
'test': 'โ',
'quality': '๐',
'security': '๐จ',
'inspect': '๐ถ',
'coverage': '๐',
'profile': 'โฑ',
# doc
'apidoc': 'โ๏ธ',
'html': '๐',
'single': '๐ชง',
'epub': '๐',
'latex': '๐',
'pdf': '๐',
'show': '๐ก',
# build
'build': '๐',
'archive': '๐',
'deploy': '๐ซ',
}
class IconContainer(dict):
none = ''
default = '*'
length = 3, 1
def __getitem__(self, item):
item = item.lower()
if super(IconContainer, self).__contains__(item):
value = super(IconContainer, self).__getitem__(item)
if value is None:
value = ''
elif not item:
value = ''
else:
value = '*'
length, pre = self.__class__.length
value = value.ljust(length if len(value.encode()) < 4 else length-1)
return ' ' * pre + value
ICONS = IconContainer(_ICONS)