mirror of
https://github.com/soimort/you-get.git
synced 2025-02-12 04:55:21 +03:00
rebuild and enhance the structure of package color
This commit is contained in:
parent
d6fc4af203
commit
c183d1143f
@ -3,6 +3,9 @@
|
||||
"""
|
||||
################################################################################
|
||||
Establish a Unified Color print across all kinds of os
|
||||
|
||||
However, you should care about that
|
||||
we only implemented 8^1=8 kind of basic color in color_sh
|
||||
################################################################################
|
||||
"""
|
||||
|
||||
@ -13,83 +16,62 @@ if islinux():
|
||||
elif iswin():
|
||||
from . import color_cmd as cmd
|
||||
|
||||
def _remove_key(dic,keys):
|
||||
return {_key:dic[_key] for _key in dic if _key not in set(keys)}
|
||||
|
||||
def print_color(*objs,**kwargs):
|
||||
|
||||
_end=kwargs.get('end' ,'\n')
|
||||
_sep=kwargs.get('sep' ,' ')
|
||||
_color=kwargs.get('color','blank')
|
||||
kwargs=_remove_key(kwargs,['end','sep','color'])
|
||||
|
||||
def printWhite(obj):
|
||||
if iswin():
|
||||
with cmd.printWhite():
|
||||
print(obj)
|
||||
with cmd.print_color(color=_color):
|
||||
[print(obj, end=_sep, sep='',**kwargs) for obj in objs]
|
||||
print(end=_end)
|
||||
|
||||
elif islinux():
|
||||
print(sh.UseStyle(obj,'white'))
|
||||
[print(sh.UseStyle(obj,fore=_color), end=_sep, sep='',**kwargs)
|
||||
for obj in objs]
|
||||
|
||||
print(end=_end)
|
||||
|
||||
else:
|
||||
print(obj)
|
||||
def printDarkPink(obj):
|
||||
if iswin():
|
||||
with cmd.printDarkPink():
|
||||
print(obj)
|
||||
elif islinux():
|
||||
print(sh.UseStyle(obj,'purple'))
|
||||
[print(obj, end=_sep, sep='',**kwargs) for obj in objs]
|
||||
print(end=_end)
|
||||
|
||||
else:
|
||||
print(obj)
|
||||
def printWhite(*objs,**kwargs):
|
||||
print_color(*objs,color='white',**kwargs)
|
||||
|
||||
def printBlue(obj):
|
||||
|
||||
def printDarkPink(*objs,**kwargs):
|
||||
print_color(*objs,color='darkpink',**kwargs)
|
||||
|
||||
def printBlue(*objs,**kwargs):
|
||||
"""
|
||||
Belive it ,It's an ugly print-color.
|
||||
Blue makes you blue :(
|
||||
:param obj:
|
||||
:return:
|
||||
"""
|
||||
if iswin():
|
||||
with cmd.printBlue():
|
||||
print(obj)
|
||||
elif islinux():
|
||||
print(sh.UseStyle(obj,'blue'))
|
||||
print_color(*objs,color='blue',**kwargs)
|
||||
|
||||
else:
|
||||
print(obj)
|
||||
def printDarkRed(*objs,**kwargs):
|
||||
print_color(*objs,color='darkred',**kwargs)
|
||||
|
||||
|
||||
def printDarkRed(obj):
|
||||
if iswin():
|
||||
with cmd.printDarkRed():
|
||||
print(obj)
|
||||
elif islinux():
|
||||
print(sh.UseStyle(obj,'red'))
|
||||
def printDarkSkyBlue(*objs,**kwargs):
|
||||
print_color(*objs,color='darkblue',**kwargs)
|
||||
|
||||
else:
|
||||
print(obj)
|
||||
def printDarkGreen(*objs,**kwargs):
|
||||
print_color(*objs,color='darkgreen',**kwargs)
|
||||
|
||||
def printDarkYellow(*objs,**kwargs):
|
||||
print_color(*objs,color='darkyellow',**kwargs)
|
||||
|
||||
def printDarkSkyBlue(obj):
|
||||
if iswin():
|
||||
with cmd.printDarkSkyBlue():
|
||||
print(obj)
|
||||
elif islinux():
|
||||
print(sh.UseStyle(obj,'cyan'))
|
||||
|
||||
else:
|
||||
print(obj)
|
||||
|
||||
def printDarkGreen(obj):
|
||||
if iswin():
|
||||
with cmd.printDarkGreen():
|
||||
print(obj)
|
||||
elif islinux():
|
||||
print(sh.UseStyle(obj,'green'))
|
||||
|
||||
else:
|
||||
print(obj)
|
||||
|
||||
def printDarkYellow(obj):
|
||||
if iswin():
|
||||
with cmd.printDarkYellow():
|
||||
print(obj)
|
||||
elif islinux():
|
||||
print(sh.UseStyle(obj,'yellow'))
|
||||
|
||||
else:
|
||||
print(obj)
|
||||
def printBlank(*objs,**kwargs):
|
||||
print_color(*objs,color='blank',**kwargs)
|
||||
|
||||
################################################################################
|
||||
# Application layer encapsulation
|
||||
@ -107,9 +89,9 @@ color_dict={'green' : printDarkGreen,
|
||||
'skyblue' : printDarkSkyBlue,
|
||||
'yellow' : printDarkYellow,
|
||||
'red' : printDarkRed,
|
||||
'blue':printBlue,
|
||||
'white':printWhite,
|
||||
'purple':printDarkPink}
|
||||
'blue' : printBlue,
|
||||
'white' : printWhite,
|
||||
'purple' : printDarkPink}
|
||||
|
||||
print_map={'info' : color_dict['skyblue'],
|
||||
'ok' : color_dict['green'],
|
||||
@ -131,8 +113,8 @@ if __name__ == '__main__':
|
||||
print('isLinux?%r'%islinux())
|
||||
print('isWindows?%r'%iswin())
|
||||
|
||||
printDarkRed({'a':1,'b':2})
|
||||
printDarkGreen([1,2,3])
|
||||
printDarkRed({'a':1,'b':2}, {'c':3}, end='')
|
||||
printDarkGreen([1,2,3], 4, sep='*', end='\n')
|
||||
printDarkSkyBlue((1,2,3))
|
||||
printDarkYellow({1,2,3})
|
||||
|
||||
|
@ -39,8 +39,8 @@ FOREGROUND_WHITE = 0x0f # white.
|
||||
|
||||
|
||||
# Windows CMD命令行 背景颜色定义 background colors
|
||||
BACKGROUND_BLUE = 0x10 # dark blue.
|
||||
BACKGROUND_GREEN = 0x20 # dark green.
|
||||
BACKGROUND_DARKBLUE = 0x10 # dark blue.
|
||||
BACKGROUND_DARKGREEN = 0x20 # dark green.
|
||||
BACKGROUND_DARKSKYBLUE = 0x30 # dark skyblue.
|
||||
BACKGROUND_DARKRED = 0x40 # dark red.
|
||||
BACKGROUND_DARKPINK = 0x50 # dark pink.
|
||||
@ -205,57 +205,100 @@ class printYellowRed(printColor):
|
||||
def __enter__(self):
|
||||
set_cmd_text_color(BACKGROUND_YELLOW | FOREGROUND_RED)
|
||||
|
||||
#原样输出
|
||||
#write origin text
|
||||
class printBlank(printColor):
|
||||
def __enter__(self):
|
||||
pass
|
||||
|
||||
################################################################################
|
||||
# Application layer encapsulation
|
||||
#
|
||||
# with print_color('xxx'):
|
||||
# print(xxx)
|
||||
################################################################################
|
||||
print_map={'darkblue' : printDarkBlue,
|
||||
'darkgreen' : printDarkGreen,
|
||||
'darkskyblue' : printDarkSkyBlue,
|
||||
'darkred' : printDarkRed,
|
||||
'darkpink' : printDarkPink,
|
||||
'darkyellow' : printDarkYellow,
|
||||
'darkwhite' : printDarkWhite,
|
||||
'darkgray' : printDarkGray,
|
||||
|
||||
'blue' : printBlue,
|
||||
'green' : printGreen,
|
||||
'skyblue' : printSkyBlue,
|
||||
'red' : printRed,
|
||||
'pink' : printPink,
|
||||
'yellow' : printYellow,
|
||||
'white' : printWhite,
|
||||
|
||||
'blank' : printBlank}
|
||||
|
||||
|
||||
##############################################################
|
||||
|
||||
def print_color(color='darkwhite'):
|
||||
"""
|
||||
|
||||
Args:
|
||||
color: default darkwhite/printDarkWhite
|
||||
|
||||
Returns: an printColor instance
|
||||
|
||||
"""
|
||||
return print_map.get(color,printDarkWhite)()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
with printDarkBlue():
|
||||
with print_color('darkblue'):
|
||||
print(u'printDarkBlue:暗蓝色文字\n')
|
||||
|
||||
with printDarkGreen():
|
||||
with print_color('darkgreen'):
|
||||
print(u'printDarkGreen:暗绿色文字\n')
|
||||
|
||||
with printDarkSkyBlue():
|
||||
with print_color('darkblue'):
|
||||
print(u'printDarkSkyBlue:暗天蓝色文字\n')
|
||||
|
||||
with printDarkRed():
|
||||
with print_color('darkred'):
|
||||
print(u'printDarkRed:暗红色文字\n')
|
||||
|
||||
with printDarkPink():
|
||||
with print_color('darkpink'):
|
||||
print(u'printDarkPink:暗粉红色文字\n')
|
||||
|
||||
with printDarkYellow():
|
||||
with print_color('darkyellow'):
|
||||
print(u'printDarkYellow:暗黄色文字\n')
|
||||
|
||||
with printDarkWhite():
|
||||
with print_color('darkwhite'):
|
||||
print(u'printDarkWhite:暗白色文字\n')
|
||||
|
||||
with printDarkGray():
|
||||
with print_color('darkgray'):
|
||||
print(u'printDarkGray:暗灰色文字\n')
|
||||
|
||||
with printBlue():
|
||||
with print_color('blue'):
|
||||
print(u'printBlue:蓝色文字\n')
|
||||
|
||||
with printGreen():
|
||||
with print_color('green'):
|
||||
print(u'printGreen:绿色文字\n')
|
||||
|
||||
with printSkyBlue():
|
||||
with print_color('skyblue'):
|
||||
print(u'printSkyBlue:天蓝色文字\n')
|
||||
|
||||
with printRed():
|
||||
with print_color('red'):
|
||||
print(u'printRed:红色文字\n')
|
||||
|
||||
with printPink():
|
||||
with print_color('pink'):
|
||||
print(u'printPink:粉红色文字\n')
|
||||
|
||||
with printYellow():
|
||||
with print_color('yellow'):
|
||||
print(u'printYellow:黄色文字\n')
|
||||
|
||||
with printWhite():
|
||||
with print_color('white'):
|
||||
print(u'printWhite:白色文字\n')
|
||||
|
||||
with print_color('blank'):
|
||||
print(u'printBlank:原生颜色')
|
||||
with printWhiteBlack():
|
||||
print(u'printWhiteBlack:白底黑字输出\n')
|
||||
|
||||
@ -264,3 +307,4 @@ if __name__ == '__main__':
|
||||
|
||||
with printYellowRed():
|
||||
print(u'printYellowRed:黄底红字输出\n')
|
||||
|
||||
|
@ -49,6 +49,7 @@ STYLE = {
|
||||
'purple' : 35, # 紫红色
|
||||
'cyan' : 36, # 青蓝色
|
||||
'white' : 37, # 白色
|
||||
'blank' : 0, #原生色
|
||||
},
|
||||
|
||||
'back' :
|
||||
@ -121,6 +122,7 @@ def TestColor( ):
|
||||
print(UseStyle('紫红色', fore = 'purple'), end=' ')
|
||||
print(UseStyle('青蓝色', fore = 'cyan'), end=' ')
|
||||
print(UseStyle('白色', fore = 'white'))
|
||||
print(UseStyle('原生色', fore = 'blank'))
|
||||
print('')
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user