19
19
from typing import Union
20
20
21
21
from app .translator .const import DEFAULT_VALUE_TYPE
22
- from app .translator .core .custom_types .tokens import LogicalOperatorType
22
+ from app .translator .core .custom_types .tokens import LogicalOperatorType , OperatorType
23
23
from app .translator .core .exceptions .core import StrictPlatformException
24
24
from app .translator .core .exceptions .render import BaseRenderException
25
25
from app .translator .core .mapping import LogSourceSignature , SourceMapping
@@ -43,36 +43,36 @@ class LogRhythmAxonFieldValue(BaseQueryFieldValue):
43
43
escape_manager = microsoft_escape_manager
44
44
45
45
def __is_complex_regex (self , regex : str ) -> bool :
46
- regex_items = ("[" , "]" , "(" , ")" , "{" , "}" , "+" , "?" , "^" , "$" , "\d" , "\w" , "\s" , "-" )
47
- return any (v in regex_items for v in regex )
46
+ regex_items = ("[" , "]" , "(" , ")" , "{" , "}" , "+" , "?" , "^" , "$" , "\\ d" , "\\ w" , "\ \ s" , "-" )
47
+ return any (v in regex for v in regex_items )
48
48
49
- def __is_regex (self , value : str ) -> bool :
50
- regex_items = ("" , " [" , "]" , "(" , ")" , "{" , "}" , "*" , "+" , "?" , "^" , "$" , "|" , "." , "\d" , "\w" , "\s" , "\\ " , "-" )
51
- return any (v in regex_items for v in value )
49
+ def __is_contain_regex_items (self , value : str ) -> bool :
50
+ regex_items = ("[" , "]" , "(" , ")" , "{" , "}" , "*" , "+" , "?" , "^" , "$" , "|" , "." , "\\ d" , "\\ w" , "\ \ s" , "\\ " , "-" )
51
+ return any (v in value for v in regex_items )
52
52
53
- def __regex_to_str_list (self , value : Union [int , str ]) -> list [list [str ]]: # noqa
53
+ def __regex_to_str_list (self , value : Union [int , str ]) -> list [list [str ]]: # noqa: PLR0912
54
54
value_groups = []
55
55
56
56
stack = [] # [(element: str, escaped: bool)]
57
57
58
- for index in range ( len ( value )) :
59
- if value [ index ] == "\\ " :
58
+ for char in value :
59
+ if char == "\\ " :
60
60
if stack and stack [- 1 ][0 ] == "\\ " and stack [- 1 ][1 ] is False :
61
61
stack .pop ()
62
- stack .append ((value [ index ] , True ))
62
+ stack .append ((char , True ))
63
63
else :
64
64
stack .append (("\\ " , False ))
65
- elif value [ index ] == "|" :
65
+ elif char == "|" :
66
66
if stack and stack [- 1 ][0 ] == "\\ " and stack [- 1 ][1 ] is False :
67
67
stack .pop ()
68
- stack .append ((value [ index ] , True ))
68
+ stack .append ((char , True ))
69
69
elif stack :
70
70
value_groups .append ("" .join (element [0 ] for element in stack ))
71
71
stack = []
72
72
else :
73
- stack .append ((value [ index ] , False ))
73
+ stack .append ((char , False ))
74
74
if stack :
75
- value_groups .append ("" .join (element [0 ] for element in stack if element [0 ] != ' \\ ' or element [- 1 ] is True ))
75
+ value_groups .append ("" .join (element [0 ] for element in stack if element [0 ] != " \\ " or element [- 1 ] is True ))
76
76
77
77
joined_components = []
78
78
for value_group in value_groups :
@@ -133,7 +133,7 @@ def not_equal_modifier(self, field: str, value: DEFAULT_VALUE_TYPE) -> str:
133
133
def contains_modifier (self , field : str , value : DEFAULT_VALUE_TYPE ) -> str :
134
134
if isinstance (value , list ):
135
135
return f"({ self .or_token .join (self .contains_modifier (field = field , value = v ) for v in value )} )"
136
- if isinstance (value , str ) and self .__is_regex (value ):
136
+ if isinstance (value , str ) and self .__is_contain_regex_items (value ):
137
137
if self .__is_complex_regex (value ):
138
138
raise LogRhythmRegexRenderException
139
139
values = self .__regex_to_str_list (value )
@@ -194,7 +194,7 @@ def apply_token(self, token: Union[FieldValue, Keyword, Identifier], source_mapp
194
194
try :
195
195
return self .field_value_map .apply_field_value (
196
196
field = "general_information.raw_message" ,
197
- operator = Identifier (token_type = "contains" ),
197
+ operator = Identifier (token_type = OperatorType . CONTAINS ),
198
198
value = token .value ,
199
199
)
200
200
except LogRhythmRegexRenderException as exc :
0 commit comments