Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2bc9ab2

Browse files
committed
sql str value manager
1 parentbf008fe commit2bc9ab2

File tree

4 files changed

+39
-73
lines changed

4 files changed

+39
-73
lines changed

‎uncoder-core/app/translator/platforms/anomali/renders/anomali.py‎

Lines changed: 3 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -17,65 +17,16 @@
1717
-----------------------------------------------------------------
1818
"""
1919
fromapp.translator.constimportDEFAULT_VALUE_TYPE
20-
fromapp.translator.core.custom_types.valuesimportValueType
2120
fromapp.translator.core.models.platform_detailsimportPlatformDetails
22-
fromapp.translator.core.renderimportBaseFieldValueRender,PlatformQueryRender
21+
fromapp.translator.core.renderimportPlatformQueryRender
2322
fromapp.translator.managersimportrender_manager
2423
fromapp.translator.platforms.anomali.constimportanomali_query_details
2524
fromapp.translator.platforms.anomali.mappingimportAnomaliMappings,anomali_query_mappings
26-
fromapp.translator.platforms.base.sql.str_value_managerimportsql_str_value_manager
25+
fromapp.translator.platforms.base.sql.renders.sqlimportSqlFieldValueRender
2726

2827

29-
classAnomaliFieldValueRender(BaseFieldValueRender):
28+
classAnomaliFieldValueRender(SqlFieldValueRender):
3029
details:PlatformDetails=anomali_query_details
31-
str_value_manager=sql_str_value_manager
32-
33-
@staticmethod
34-
def_wrap_str_value(value:str)->str:
35-
returnf"'{value}'"
36-
37-
defequal_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
38-
ifisinstance(value,list):
39-
returnf"({self.or_token.join([self.equal_modifier(field=field,value=v)forvinvalue])})"
40-
returnf"{field} ={self._pre_process_value(field,value,wrap_str=True)}"
41-
42-
defnot_equal_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
43-
ifisinstance(value,list):
44-
returnf"({self.or_token.join([self.not_equal_modifier(field=field,value=v)forvinvalue])})"
45-
returnf"{field} !={self._pre_process_value(field,value,wrap_str=True)}"
46-
47-
defless_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
48-
returnf"{field} <{self._pre_process_value(field,value,wrap_str=True)}"
49-
50-
defless_or_equal_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
51-
returnf"{field} <={self._pre_process_value(field,value,wrap_str=True)}"
52-
53-
defgreater_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
54-
returnf"{field} >{self._pre_process_value(field,value,wrap_str=True)}"
55-
56-
defgreater_or_equal_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
57-
returnf"{field} >={self._pre_process_value(field,value,wrap_str=True)}"
58-
59-
defcontains_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
60-
ifisinstance(value,list):
61-
returnf"({self.or_token.join(self.contains_modifier(field=field,value=v)forvinvalue)})"
62-
returnf"{field} like '%{self._pre_process_value(field,value)}%'"
63-
64-
defendswith_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
65-
ifisinstance(value,list):
66-
returnf"({self.or_token.join(self.endswith_modifier(field=field,value=v)forvinvalue)})"
67-
returnf"{field} like '%{self._pre_process_value(field,value)}'"
68-
69-
defstartswith_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
70-
ifisinstance(value,list):
71-
returnf"({self.or_token.join(self.startswith_modifier(field=field,value=v)forvinvalue)})"
72-
returnf"{field} like '{self._pre_process_value(field,value)}%'"
73-
74-
defregex_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
75-
ifisinstance(value,list):
76-
returnf"({self.or_token.join(self.regex_modifier(field=field,value=v)forvinvalue)})"
77-
regex_str=self._pre_process_value(field,value,value_type=ValueType.regex_value,wrap_str=True)
78-
returnf"regexp_like({field},{regex_str})"
7930

8031
defkeywords(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
8132
returnf'message contains "{self._pre_process_value(field,value)}"'

‎uncoder-core/app/translator/platforms/base/spl/renders/spl.py‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,12 @@ def _wrap_str_value(value: str) -> str:
3434
returnf'"{value}"'
3535

3636
def_pre_process_value(
37-
self,field:str,value:Union[int,str,StrValue],value_type:str=ValueType.value,wrap_str:bool=False
37+
self,
38+
field:str,
39+
value:Union[bool,int,str,StrValue],
40+
value_type:str=ValueType.value,
41+
wrap_str:bool=False,
42+
wrap_int:bool=False,# noqa: ARG002
3843
)->Union[int,str]:
3944
value=super()._pre_process_value(field,value,value_type=value_type,wrap_str=wrap_str)
4045
returnself._wrap_str_value(str(value))ifnotisinstance(value,str)elsevalue

‎uncoder-core/app/translator/platforms/base/sql/renders/sql.py‎

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,55 +17,62 @@
1717
-----------------------------------------------------------------
1818
"""
1919

20-
fromtypingimportUnion
21-
2220
fromapp.translator.constimportDEFAULT_VALUE_TYPE
21+
fromapp.translator.core.custom_types.valuesimportValueType
2322
fromapp.translator.core.mappingimportLogSourceSignature
2423
fromapp.translator.core.renderimportBaseFieldValueRender,PlatformQueryRender
24+
fromapp.translator.platforms.base.sql.str_value_managerimportsql_str_value_manager
2525

2626

2727
classSqlFieldValueRender(BaseFieldValueRender):
28+
str_value_manager=sql_str_value_manager
29+
30+
@staticmethod
31+
def_wrap_str_value(value:str)->str:
32+
returnf"'{value}'"
33+
2834
defequal_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
2935
ifisinstance(value,list):
3036
returnf"({self.or_token.join([self.equal_modifier(field=field,value=v)forvinvalue])})"
31-
returnf"{field} ='{value}'"
37+
returnf"{field} ={self._pre_process_value(field,value,wrap_str=True)}"
3238

33-
defless_modifier(self,field:str,value:Union[int,str])->str:
34-
returnf"{field} < '{value}'"
39+
defnot_equal_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
40+
ifisinstance(value,list):
41+
returnf"({self.or_token.join([self.not_equal_modifier(field=field,value=v)forvinvalue])})"
42+
returnf"{field} !={self._pre_process_value(field,value,wrap_str=True)}"
3543

36-
defless_or_equal_modifier(self,field:str,value:Union[int,str])->str:
37-
returnf"{field} <= '{value}'"
44+
defless_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
45+
returnf"{field} <{self._pre_process_value(field,value,wrap_str=True)}"
3846

39-
defgreater_modifier(self,field:str,value:Union[int,str])->str:
40-
returnf"{field}> '{value}'"
47+
defless_or_equal_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
48+
returnf"{field}<={self._pre_process_value(field,value,wrap_str=True)}"
4149

42-
defgreater_or_equal_modifier(self,field:str,value:Union[int,str])->str:
43-
returnf"{field} >= '{value}'"
50+
defgreater_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
51+
returnf"{field} >{self._pre_process_value(field,value,wrap_str=True)}"
4452

45-
defnot_equal_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
46-
ifisinstance(value,list):
47-
returnf"({self.or_token.join([self.not_equal_modifier(field=field,value=v)forvinvalue])})"
48-
returnf"{field} != '{value}'"
53+
defgreater_or_equal_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
54+
returnf"{field} >={self._pre_process_value(field,value,wrap_str=True)}"
4955

5056
defcontains_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
5157
ifisinstance(value,list):
5258
returnf"({self.or_token.join(self.contains_modifier(field=field,value=v)forvinvalue)})"
53-
returnf"{field}ILIKE '%{value}%' ESCAPE '\\'"
59+
returnf"{field}like '%{self._pre_process_value(field,value)}%'"
5460

5561
defendswith_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
5662
ifisinstance(value,list):
5763
returnf"({self.or_token.join(self.endswith_modifier(field=field,value=v)forvinvalue)})"
58-
returnf"{field}ILIKE '%{value}' ESCAPE '\\'"
64+
returnf"{field}like '%{self._pre_process_value(field,value)}'"
5965

6066
defstartswith_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
6167
ifisinstance(value,list):
6268
returnf"({self.or_token.join(self.startswith_modifier(field=field,value=v)forvinvalue)})"
63-
returnf"{field}ILIKE '{value}%' ESCAPE '\\'"
69+
returnf"{field}like '{self._pre_process_value(field,value)}%'"
6470

6571
defregex_modifier(self,field:str,value:DEFAULT_VALUE_TYPE)->str:
6672
ifisinstance(value,list):
6773
returnf"({self.or_token.join(self.regex_modifier(field=field,value=v)forvinvalue)})"
68-
returnf"{field} ILIKE '{value}' ESCAPE '\\'"
74+
regex_str=self._pre_process_value(field,value,value_type=ValueType.regex_value,wrap_str=True)
75+
returnf"regexp_like({field},{regex_str})"
6976

7077

7178
classSqlQueryRender(PlatformQueryRender):

‎uncoder-core/app/translator/platforms/base/sql/tokenizer.py‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
fromapp.translator.core.models.query_tokens.field_valueimportFieldValue
2525
fromapp.translator.core.models.query_tokens.identifierimportIdentifier
2626
fromapp.translator.core.tokenizerimportQueryTokenizer
27+
fromapp.translator.platforms.base.sql.str_value_managerimportsql_str_value_manager
2728
fromapp.translator.tools.utilsimportget_match_group
2829

2930

@@ -51,6 +52,8 @@ class SqlTokenizer(QueryTokenizer):
5152

5253
wildcard_symbol="%"
5354

55+
str_value_manager=sql_str_value_manager
56+
5457
@staticmethod
5558
defshould_process_value_wildcards(operator:Optional[str])->bool:
5659
returnoperatorandoperator.lower()in ("like",)
@@ -65,7 +68,7 @@ def get_operator_and_value(
6568
returnmapped_operator,bool_value
6669

6770
if (s_q_value:=get_match_group(match,group_name=ValueType.single_quotes_value))isnotNone:
68-
returnmapped_operator,s_q_value
71+
returnmapped_operator,self.str_value_manager.from_str_to_container(s_q_value)
6972

7073
returnsuper().get_operator_and_value(match,mapped_operator,operator)
7174

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp