mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-07-06 23:16:23 +03:00
pySim.log, pySim-shell: fix compatibility with cmd2 >= 3.0.0
Some Linux distributions (e.g. Arch Linux) already ship cmd2 3.x.x, which removed the style()/Fg/Bg API in favor of stylize()/Color. Add a version guard to select the right API at runtime. Adjust the upper bound cap in requirements.txt and setup.py. Change-Id: Ibf2ac7847933296fb06665c87f53ed6e1f315d27
This commit is contained in:
+15
-6
@@ -24,16 +24,25 @@ import traceback
|
|||||||
import re
|
import re
|
||||||
import cmd2
|
import cmd2
|
||||||
from packaging import version
|
from packaging import version
|
||||||
from cmd2 import style, Fg, Bg
|
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
from pySim.log import PySimLogger
|
from pySim.log import PySimLogger
|
||||||
from osmocom.utils import auto_uint8
|
from osmocom.utils import auto_uint8
|
||||||
|
|
||||||
RED = Fg.RED
|
# cmd2 >= 3.0 replaced Fg + style() with Color + stylize()
|
||||||
YELLOW = Fg.YELLOW
|
if version.parse(cmd2.__version__) >= version.parse("3.0.0"):
|
||||||
LIGHT_RED = Fg.LIGHT_RED
|
from cmd2 import Color, stylize # pylint: disable=no-name-in-module
|
||||||
LIGHT_GREEN = Fg.LIGHT_GREEN
|
RED = Color.RED
|
||||||
|
YELLOW = Color.YELLOW
|
||||||
|
LIGHT_RED = Color.BRIGHT_RED
|
||||||
|
LIGHT_GREEN = Color.BRIGHT_GREEN
|
||||||
|
def style(text, fg=None, bg=None, bold=False): # pylint: disable=function-redefined
|
||||||
|
return stylize(text, fg) if fg else text
|
||||||
|
else:
|
||||||
|
from cmd2 import style, Fg # pylint: disable=no-name-in-module
|
||||||
|
RED = Fg.RED
|
||||||
|
YELLOW = Fg.YELLOW
|
||||||
|
LIGHT_RED = Fg.LIGHT_RED
|
||||||
|
LIGHT_GREEN = Fg.LIGHT_GREEN
|
||||||
from cmd2 import CommandSet, with_default_category, with_argparser
|
from cmd2 import CommandSet, with_default_category, with_argparser
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
|||||||
+10
-2
@@ -24,7 +24,15 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
from cmd2 import style
|
import cmd2
|
||||||
|
from packaging import version
|
||||||
|
|
||||||
|
if version.parse(cmd2.__version__) >= version.parse("3.0.0"):
|
||||||
|
from cmd2 import stylize as _stylize # pylint: disable=no-name-in-module
|
||||||
|
def _style(text, fg=None): # pylint: disable=function-redefined
|
||||||
|
return _stylize(text, fg) if fg else text
|
||||||
|
else: # cmd2>=2.6.2
|
||||||
|
from cmd2 import style as _style # type: ignore[no-redef]
|
||||||
|
|
||||||
class _PySimLogHandler(logging.Handler):
|
class _PySimLogHandler(logging.Handler):
|
||||||
def __init__(self, log_callback):
|
def __init__(self, log_callback):
|
||||||
@@ -121,7 +129,7 @@ class PySimLogger:
|
|||||||
if isinstance(color, str):
|
if isinstance(color, str):
|
||||||
PySimLogger.print_callback(color + formatted_message + "\033[0m")
|
PySimLogger.print_callback(color + formatted_message + "\033[0m")
|
||||||
else:
|
else:
|
||||||
PySimLogger.print_callback(style(formatted_message, fg = color))
|
PySimLogger.print_callback(_style(formatted_message, fg = color))
|
||||||
else:
|
else:
|
||||||
PySimLogger.print_callback(formatted_message)
|
PySimLogger.print_callback(formatted_message)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
pyscard
|
pyscard
|
||||||
pyserial
|
pyserial
|
||||||
pytlv
|
pytlv
|
||||||
cmd2>=2.6.2,<3.0
|
cmd2>=2.6.2,<4.0
|
||||||
jsonpath-ng
|
jsonpath-ng
|
||||||
construct>=2.10.70
|
construct>=2.10.70
|
||||||
bidict
|
bidict
|
||||||
|
|||||||
Reference in New Issue
Block a user