Skip to content

Commit a0f5f06

Browse files
committed
remove query pattern
1 parent 028a64e commit a0f5f06

File tree

17 files changed

+38
-33
lines changed

17 files changed

+38
-33
lines changed

uncoder-core/app/translator/core/render.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,6 @@ class PlatformQueryRender(QueryRender):
200200

201201
field_value_map = BaseQueryFieldValue(or_token=or_token)
202202

203-
query_pattern = "{prefix}{query}{functions}"
204203
raw_log_field_pattern_map: ClassVar[dict[str, str]] = None
205204

206205
def __init__(self):
@@ -211,12 +210,6 @@ def __init__(self):
211210
LogicalOperatorType.NOT: f" {self.not_token} ",
212211
}
213212

214-
def query_concatenation(self, prefix: str, search: str, functions: str) -> str:
215-
prefix = prefix if prefix else ""
216-
search = f" {search}" if search else ""
217-
functions = f" {functions}" if functions else ""
218-
return self.query_pattern.format(prefix=prefix, query=search, functions=functions).strip()
219-
220213
def generate_prefix(self, log_source_signature: LogSourceSignature, functions_prefix: str = "") -> str: # noqa: ARG002
221214
if str(log_source_signature):
222215
return f"{log_source_signature!s} {self.and_token}"
@@ -287,6 +280,10 @@ def wrap_query_with_meta_info(self, meta_info: MetaInfoContainer, query: str) ->
287280
query = f"{query}\n\n{query_meta_info}"
288281
return query
289282

283+
@staticmethod
284+
def _finalize_search_query(query: str) -> str:
285+
return query
286+
290287
def finalize_query(
291288
self,
292289
prefix: str,
@@ -298,8 +295,8 @@ def finalize_query(
298295
*args, # noqa: ARG002
299296
**kwargs, # noqa: ARG002
300297
) -> str:
301-
query = self.query_pattern.format(prefix=prefix, query=query, functions=functions).strip()
302-
298+
parts = filter(lambda s: bool(s), map(str.strip, [prefix, self._finalize_search_query(query), functions]))
299+
query = " ".join(parts)
303300
query = self.wrap_query_with_meta_info(meta_info=meta_info, query=query)
304301
if not_supported_functions:
305302
rendered_not_supported = self.render_not_supported_functions(not_supported_functions)
@@ -342,7 +339,7 @@ def _generate_from_raw_query_container(self, query_container: RawQueryContainer)
342339

343340
def process_raw_log_field(self, field: str, field_type: str) -> Optional[str]:
344341
if raw_log_field_pattern := self.raw_log_field_pattern_map.get(field_type):
345-
return raw_log_field_pattern.pattern.format(field=field)
342+
return raw_log_field_pattern.format(field=field)
346343

347344
def process_raw_log_field_prefix(self, field: str, source_mapping: SourceMapping) -> Optional[list]:
348345
if isinstance(field, list):

uncoder-core/app/translator/platforms/athena/renders/athena.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ class AthenaQueryRender(SqlQueryRender):
3636
or_token = "OR"
3737

3838
field_value_map = AthenaFieldValue(or_token=or_token)
39-
query_pattern = "{prefix} WHERE{query}{functions}"
4039
comment_symbol = "--"
4140
is_single_line_comment = True
41+
42+
@staticmethod
43+
def _finalize_search_query(query: str) -> str:
44+
return f"WHERE {query}" if query else ""

uncoder-core/app/translator/platforms/base/aql/renders/aql.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,6 @@ class AQLQueryRender(PlatformQueryRender):
128128
not_token = "NOT"
129129

130130
field_value_map = AQLFieldValue(or_token=or_token)
131-
query_pattern = "{prefix} AND{query}{functions}"
132131

133132
def generate_prefix(self, log_source_signature: AQLLogSourceSignature, functions_prefix: str = "") -> str: # noqa: ARG002
134133
table = str(log_source_signature)
@@ -137,3 +136,7 @@ def generate_prefix(self, log_source_signature: AQLLogSourceSignature, functions
137136

138137
def wrap_with_comment(self, value: str) -> str:
139138
return f"/* {value} */"
139+
140+
@staticmethod
141+
def _finalize_search_query(query: str) -> str:
142+
return f"AND {query}" if query else ""

uncoder-core/app/translator/platforms/base/lucene/renders/lucene.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,6 @@ class LuceneQueryRender(PlatformQueryRender):
107107
and_token = "AND"
108108
not_token = "NOT"
109109

110-
query_pattern = "{query}{functions}"
111-
112110
comment_symbol = "//"
113111
is_single_line_comment = True
114112

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ class SplQueryRender(PlatformQueryRender):
7979
and_token = "AND"
8080
not_token = "NOT"
8181

82-
query_pattern = "{prefix} {query} {functions}"
8382
comment_symbol = "```"
8483

8584
def wrap_with_comment(self, value: str) -> str:

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,13 @@ class SqlQueryRender(PlatformQueryRender):
7777
and_token = "AND"
7878
not_token = "NOT"
7979

80-
query_pattern = "{prefix} WHERE {query} {functions}"
8180
comment_symbol = "--"
8281
is_single_line_comment = True
8382

8483
def generate_prefix(self, log_source_signature: LogSourceSignature, functions_prefix: str = "") -> str: # noqa: ARG002
8584
table = str(log_source_signature) if str(log_source_signature) else "eventlog"
8685
return f"SELECT * FROM {table}"
86+
87+
@staticmethod
88+
def _finalize_search_query(query: str) -> str:
89+
return f"WHERE {query}" if query else ""

uncoder-core/app/translator/platforms/chronicle/renders/chronicle.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,5 @@ class ChronicleQueryRender(PlatformQueryRender):
110110
not_token = "not"
111111

112112
field_value_map = ChronicleFieldValue(or_token=or_token)
113-
query_pattern = "{query} {functions}"
114113
comment_symbol = "//"
115114
is_single_line_comment = True

uncoder-core/app/translator/platforms/crowdstrike/renders/crowdstrike.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ class CrowdStrikeFieldValue(SplFieldValue):
3232
@render_manager.register
3333
class CrowdStrikeQueryRender(SplQueryRender):
3434
details: PlatformDetails = crowdstrike_query_details
35-
query_pattern = "{prefix} {query} {functions}"
3635
mappings: CrowdstrikeMappings = crowdstrike_mappings
3736
platform_functions: CrowdStrikeFunctions = None
3837

uncoder-core/app/translator/platforms/elasticsearch/renders/detection_rule.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ class ElasticSearchRuleRender(ElasticSearchQueryRender):
5151
not_token = "NOT"
5252

5353
field_value_map = ElasticSearchRuleFieldValue(or_token=or_token)
54-
query_pattern = "{prefix} {query} {functions}"
5554

5655
def __create_mitre_threat(self, mitre_attack: dict) -> Union[list, list[dict]]:
5756
if not mitre_attack.get("techniques"):

uncoder-core/app/translator/platforms/elasticsearch/renders/elast_alert.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ class ElastAlertRuleRender(ElasticSearchQueryRender):
5050
not_token = "NOT"
5151

5252
field_value_map = ElasticAlertRuleFieldValue(or_token=or_token)
53-
query_pattern = "{prefix} {query} {functions}"
5453

5554
def finalize_query(
5655
self,

0 commit comments

Comments
 (0)