* Added formatted parameter to log function for conditional message formatting.
* Added a new test for comparing two variables with the `lt` command.
This commit is contained in:
@@ -74,6 +74,7 @@ def parse_prompt(
|
||||
re.sub(r"\n$", "", (parsed_prompt.pretty() if isinstance(parsed_prompt, lark.Tree) else parsed_prompt)),
|
||||
" ",
|
||||
),
|
||||
formatted=False,
|
||||
)
|
||||
return parsed_prompt
|
||||
|
||||
|
||||
+2
-2
@@ -98,7 +98,7 @@ class PromptPostProcessorLogCustomAdapter(logging.LoggerAdapter):
|
||||
"""
|
||||
return f"[PPP] {msg}", kwargs
|
||||
|
||||
def log(logger: logging.Logger, debug_level: DEBUG_LEVEL, kind: int, message: str, min_level: DEBUG_LEVEL | None = None):
|
||||
def log(logger: logging.Logger, debug_level: DEBUG_LEVEL, kind: int, message: str, min_level: DEBUG_LEVEL | None = None, formatted: bool = True):
|
||||
if logger:
|
||||
if min_level is None:
|
||||
if kind == logging.DEBUG:
|
||||
@@ -110,4 +110,4 @@ def log(logger: logging.Logger, debug_level: DEBUG_LEVEL, kind: int, message: st
|
||||
i_debug_level = list(DEBUG_LEVEL).index(debug_level)
|
||||
i_min_level = list(DEBUG_LEVEL).index(min_level)
|
||||
if i_debug_level >= i_min_level:
|
||||
logger.log(kind, format_output(message))
|
||||
logger.log(kind, format_output(message) if formatted else message)
|
||||
|
||||
+4
-4
@@ -221,12 +221,12 @@ class TreeProcessor(lark.visitors.Interpreter):
|
||||
val = self.__state.system_variables.get(c, None)
|
||||
if val is None:
|
||||
val = ""
|
||||
self.warn_or_stop(f"Unknown system variable {c}")
|
||||
self.warn_or_stop(f"Unknown system variable '{escape_single_quotes(c)}'")
|
||||
else:
|
||||
val = self.__get_user_variable_value(c)
|
||||
if val is None:
|
||||
val = ""
|
||||
self.warn_or_stop(f"Unknown user variable {c}")
|
||||
self.warn_or_stop(f"Unknown user variable '{escape_single_quotes(c)}'")
|
||||
return val.lower() if isinstance(val, str) else val
|
||||
|
||||
def __eval_basiccondition(self, cond_var: str, cond_comp: str, cond_value: str | list[str]) -> bool:
|
||||
@@ -249,12 +249,12 @@ class TreeProcessor(lark.visitors.Interpreter):
|
||||
var_value = self.__state.system_variables.get(cond_var, None)
|
||||
if var_value is None:
|
||||
var_value = ""
|
||||
self.warn_or_stop(f"Unknown system variable {cond_var}")
|
||||
self.warn_or_stop(f"Unknown system variable '{escape_single_quotes(cond_var)}'")
|
||||
else: # user variable
|
||||
var_value = self.__get_user_variable_value(cond_var)
|
||||
if var_value is None:
|
||||
var_value = ""
|
||||
self.warn_or_stop(f"Unknown user variable {cond_var}")
|
||||
self.warn_or_stop(f"Unknown user variable '{escape_single_quotes(cond_var)}'")
|
||||
if isinstance(var_value, str):
|
||||
var_value = var_value.lower()
|
||||
if isinstance(cond_value, list):
|
||||
|
||||
@@ -142,6 +142,15 @@ class TestVariables(TestPromptPostProcessorBase):
|
||||
PromptPair("YES", ""),
|
||||
)
|
||||
|
||||
def test_cmd_if_var_vs_var_lt(self): # var lt var: var1 less than var2
|
||||
self.process(
|
||||
PromptPair(
|
||||
"<ppp:set lesser>1<ppp:/set><ppp:set greater>2<ppp:/set><ppp:if lesser lt greater>YES<ppp:else>NO<ppp:/if>",
|
||||
"",
|
||||
),
|
||||
PromptPair("YES", ""),
|
||||
)
|
||||
|
||||
# NaN/undefined variable integer comparison tests
|
||||
|
||||
def test_cmd_if_undefined_var_int_compare_warn(self): # undefined var integer compare with on_warning=warn
|
||||
|
||||
Reference in New Issue
Block a user