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:
Vadim Yanitskiy
2026-06-25 22:46:36 +07:00
parent 45d37ed959
commit 597f1e0398
4 changed files with 27 additions and 10 deletions
+10 -2
View File
@@ -24,7 +24,15 @@
#
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):
def __init__(self, log_callback):
@@ -121,7 +129,7 @@ class PySimLogger:
if isinstance(color, str):
PySimLogger.print_callback(color + formatted_message + "\033[0m")
else:
PySimLogger.print_callback(style(formatted_message, fg = color))
PySimLogger.print_callback(_style(formatted_message, fg = color))
else:
PySimLogger.print_callback(formatted_message)