1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-06-17 00:07:37 +02:00

Support older pygments

This commit is contained in:
Dean Serenevy
2020-07-09 11:27:01 -04:00
parent bc7116c31b
commit ddafa5bf06
2 changed files with 47 additions and 7 deletions

View File

@ -11,11 +11,13 @@ import importlib
import textwrap import textwrap
import signal import signal
import json import json
import pygments
from pygments import highlight from pygments import highlight
from pygments.style import Style from pygments.style import Style
from pygments.token import (Name, Number, String, Keyword) from pygments.token import (Name, Number, String, Keyword)
from pygments.lexers import JsonLexer from pygments.lexers import JsonLexer
from pygments.formatters import Terminal256Formatter from pygments.formatters import Terminal256Formatter
from packaging import version
import jc.appdirs as appdirs import jc.appdirs as appdirs
@ -98,6 +100,45 @@ if os.path.isdir(local_parsers_dir):
parsers.append(plugin_name) parsers.append(plugin_name)
if version.parse(pygments.__version__) < version.parse("2.4.0"):
PYGMENT_COLOR = {
'black': '#ansiblack',
'red': '#ansidarkred',
'green': '#ansidarkgreen',
'yellow': '#ansibrown',
'blue': '#ansidarkblue',
'magenta': '#ansipurple',
'cyan': '#ansiteal',
'gray': '#ansilightgray',
'brightblack': '#ansidarkgray',
'brightred': '#ansired',
'brightgreen': '#ansigreen',
'brightyellow': '#ansiyellow',
'brightblue': '#ansiblue',
'brightmagenta': '#ansifuchsia',
'brightcyan': '#ansiturquoise',
'white': '#ansiwhite',
}
else:
PYGMENT_COLOR = {
'black': 'ansiblack',
'red': 'ansired',
'green': 'ansigreen',
'yellow': 'ansiyellow',
'blue': 'ansiblue',
'magenta': 'ansimagenta',
'cyan': 'ansicyan',
'gray': 'ansigray',
'brightblack': 'ansibrightblack',
'brightred': 'ansibrightred',
'brightgreen': 'ansibrightgreen',
'brightyellow': 'ansibrightyellow',
'brightblue': 'ansibrightblue',
'brightmagenta': 'ansibrightmagenta',
'brightcyan': 'ansibrightcyan',
'white': 'ansiwhite',
}
def set_env_colors(): def set_env_colors():
""" """
Grab custom colors from JC_COLORS environment variable. JC_COLORS env variable takes 4 comma Grab custom colors from JC_COLORS environment variable. JC_COLORS env variable takes 4 comma
@ -127,8 +168,7 @@ def set_env_colors():
input_error = True input_error = True
for color in color_list: for color in color_list:
if color not in ['black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'gray', 'brightblack', 'brightred', if color != 'default' and color not in PYGMENT_COLOR:
'brightgreen', 'brightyellow', 'brightblue', 'brightmagenta', 'brightcyan', 'white', 'default']:
input_error = True input_error = True
# if there is an issue with the env variable, just set all colors to default and move on # if there is an issue with the env variable, just set all colors to default and move on
@ -138,10 +178,10 @@ def set_env_colors():
# Try the color set in the JC_COLORS env variable first. If it is set to default, then fall back to default colors # Try the color set in the JC_COLORS env variable first. If it is set to default, then fall back to default colors
return { return {
Name.Tag: f'bold ansi{color_list[0]}' if not color_list[0] == 'default' else 'bold ansiblue', # key names Name.Tag: f'bold {PYGMENT_COLOR[color_list[0]]}' if not color_list[0] == 'default' else 'bold ' + PYGMENT_COLOR['blue'], # key names
Keyword: f'ansi{color_list[1]}' if not color_list[1] == 'default' else 'ansibrightblack', # true, false, null Keyword: PYGMENT_COLOR[color_list[1]] if not color_list[1] == 'default' else PYGMENT_COLOR['brightblack'], # true, false, null
Number: f'ansi{color_list[2]}' if not color_list[2] == 'default' else 'ansimagenta', # numbers Number: PYGMENT_COLOR[color_list[2]] if not color_list[2] == 'default' else PYGMENT_COLOR['magenta'], # numbers
String: f'ansi{color_list[3]}' if not color_list[3] == 'default' else 'ansigreen' # strings String: PYGMENT_COLOR[color_list[3]] if not color_list[3] == 'default' else PYGMENT_COLOR['green'] # strings
} }

View File

@ -12,7 +12,7 @@ setuptools.setup(
install_requires=[ install_requires=[
'ruamel.yaml>=0.15.0', 'ruamel.yaml>=0.15.0',
'xmltodict>=0.12.0', 'xmltodict>=0.12.0',
'Pygments>=2.4.2' 'Pygments>=2.3.0'
], ],
license='MIT', license='MIT',
long_description=long_description, long_description=long_description,