Skip to content

Commit 449c440

Browse files
committed
fix
1 parent 40d51c4 commit 449c440

File tree

8 files changed

+52
-12
lines changed

8 files changed

+52
-12
lines changed

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,11 @@ class StrValueManager:
182182
container_spec_symbols_map: ClassVar[dict[type[BaseSpecSymbol], str]] = CONTAINER_SPEC_SYMBOLS_MAP
183183

184184
@staticmethod
185-
def from_str_to_container(value: str, escape_symbol: Optional[str] = None) -> StrValue: # noqa: ARG004
185+
def from_str_to_container(
186+
value: str,
187+
value_type: str = ValueType.value, # noqa: ARG004
188+
escape_symbol: Optional[str] = None, # noqa: ARG004
189+
) -> StrValue:
186190
return StrValue(value=value, split_value=[value])
187191

188192
def from_re_str_to_container(self, value: str) -> StrValue:

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,12 @@ class AQLStrValueManager(StrValueManager):
5555
"%": UnboundLenWildCard,
5656
}
5757

58-
def from_str_to_container(self, value: str, escape_symbol: Optional[str] = None) -> StrValue: # noqa: ARG002
58+
def from_str_to_container(
59+
self,
60+
value: str,
61+
value_type: str = ValueType.value, # noqa: ARG002
62+
escape_symbol: Optional[str] = None, # noqa: ARG002
63+
) -> StrValue:
5964
split = []
6065
prev_char = None
6166
for char in value:

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
from typing import ClassVar, Optional
2121

22+
from app.translator.core.custom_types.values import ValueType
2223
from app.translator.core.str_value_manager import (
2324
BaseSpecSymbol,
2425
ReAnySymbol,
@@ -68,7 +69,12 @@ class LuceneStrValueManager(StrValueManager):
6869
}
6970
re_str_spec_symbols_map = RE_STR_SPEC_SYMBOLS_MAP
7071

71-
def from_str_to_container(self, value: str, escape_symbol: Optional[str] = None) -> StrValue: # noqa: ARG002
72+
def from_str_to_container(
73+
self,
74+
value: str,
75+
value_type: str = ValueType.value, # noqa: ARG002
76+
escape_symbol: Optional[str] = None, # noqa: ARG002
77+
) -> StrValue:
7278
split = []
7379
prev_char = None
7480
for char in value:

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"""
1919
from typing import ClassVar, Optional
2020

21+
from app.translator.core.custom_types.values import ValueType
2122
from app.translator.core.str_value_manager import BaseSpecSymbol, StrValue, StrValueManager, UnboundLenWildCard
2223
from app.translator.platforms.base.spl.escape_manager import spl_escape_manager
2324

@@ -26,7 +27,12 @@ class SplStrValueManager(StrValueManager):
2627
escape_manager = spl_escape_manager
2728
str_spec_symbols_map: ClassVar[dict[str, type[BaseSpecSymbol]]] = {"*": UnboundLenWildCard}
2829

29-
def from_str_to_container(self, value: str, escape_symbol: Optional[str] = None) -> StrValue: # noqa: ARG002
30+
def from_str_to_container(
31+
self,
32+
value: str,
33+
value_type: str = ValueType.value, # noqa: ARG002
34+
escape_symbol: Optional[str] = None, # noqa: ARG002
35+
) -> StrValue:
3036
split = []
3137
prev_char = None
3238
for char in value:

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

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import copy
2121
from typing import ClassVar, Optional
2222

23-
from app.translator.core.custom_types.values import ValueType
2423
from app.translator.core.str_value_manager import (
2524
CONTAINER_SPEC_SYMBOLS_MAP,
2625
RE_STR_SPEC_SYMBOLS_MAP,
@@ -34,6 +33,7 @@
3433
StrValueManager,
3534
UnboundLenWildCard,
3635
)
36+
from app.translator.platforms.base.sql.custom_types.values import SQLValueType
3737
from app.translator.platforms.base.sql.escape_manager import sql_escape_manager
3838

3939
SQL_CONTAINER_SPEC_SYMBOLS_MAP = copy.copy(CONTAINER_SPEC_SYMBOLS_MAP)
@@ -55,7 +55,9 @@ class SQLStrValueManager(StrValueManager):
5555
"%": UnboundLenWildCard,
5656
}
5757

58-
def from_str_to_container(self, value: str, escape_symbol: Optional[str] = None) -> StrValue:
58+
def from_str_to_container(
59+
self, value: str, value_type: str = SQLValueType.value, escape_symbol: Optional[str] = None
60+
) -> StrValue:
5961
split = []
6062
prev_char = None
6163
for char in value:
@@ -71,7 +73,7 @@ def from_str_to_container(self, value: str, escape_symbol: Optional[str] = None)
7173
split.append(char)
7274
prev_char = None
7375
continue
74-
elif char in ("'", "_", "%"):
76+
elif char in ("'", "_", "%") and value_type == SQLValueType.like_value:
7577
if escape_symbol and prev_char == escape_symbol:
7678
split.append(char)
7779
elif char in self.str_spec_symbols_map:
@@ -87,13 +89,13 @@ def from_re_str_to_container(self, value: str) -> StrValue:
8789
value = value.replace("''", "'")
8890
return super().from_re_str_to_container(value)
8991

90-
def from_container_to_str(self, container: StrValue, value_type: str = ValueType.value) -> str:
92+
def from_container_to_str(self, container: StrValue, value_type: str = SQLValueType.value) -> str:
9193
result = ""
9294
for el in container.split_value:
9395
if isinstance(el, str):
9496
result += self.escape_manager.escape(el, value_type)
9597
elif isinstance(el, BaseSpecSymbol):
96-
if value_type == ValueType.regex_value:
98+
if value_type == SQLValueType.regex_value:
9799
if isinstance(el, SingleSymbolWildCard):
98100
result += "."
99101
continue

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from app.translator.core.models.query_tokens.identifier import Identifier
2727
from app.translator.core.models.query_tokens.keyword import Keyword
2828
from app.translator.core.tokenizer import QueryTokenizer
29+
from app.translator.platforms.base.sql.custom_types.values import SQLValueType
2930
from app.translator.platforms.base.sql.str_value_manager import sql_str_value_manager
3031
from app.translator.tools.utils import get_match_group
3132

@@ -72,7 +73,11 @@ def get_operator_and_value(
7273

7374
if (s_q_value := get_match_group(match, group_name=ValueType.single_quotes_value)) is not None:
7475
escape_symbol = get_match_group(match, group_name=_ESCAPE_SYMBOL_GROUP_NAME)
75-
return mapped_operator, self.str_value_manager.from_str_to_container(s_q_value, escape_symbol=escape_symbol)
76+
should_process_value_wildcards = self.should_process_value_wildcards(operator)
77+
value_type = SQLValueType.like_value if should_process_value_wildcards else SQLValueType.value
78+
return mapped_operator, self.str_value_manager.from_str_to_container(
79+
s_q_value, value_type=value_type, escape_symbol=escape_symbol
80+
)
7681

7782
return super().get_operator_and_value(match, mapped_operator, operator)
7883

uncoder-core/app/translator/platforms/elasticsearch/str_value_manager.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"""
1919
from typing import ClassVar, Optional
2020

21+
from app.translator.core.custom_types.values import ValueType
2122
from app.translator.core.str_value_manager import (
2223
BaseSpecSymbol,
2324
ReDigitalSymbol,
@@ -42,7 +43,12 @@ class ESQLStrValueManager(StrValueManager):
4243
class EQLStrValueManager(StrValueManager):
4344
str_spec_symbols_map: ClassVar[dict[str, type[BaseSpecSymbol]]] = {"*": SingleSymbolWildCard}
4445

45-
def from_str_to_container(self, value: str, escape_symbol: Optional[str] = None) -> StrValue: # noqa: ARG002
46+
def from_str_to_container(
47+
self,
48+
value: str,
49+
value_type: str = ValueType.value, # noqa: ARG002
50+
escape_symbol: Optional[str] = None, # noqa: ARG002
51+
) -> StrValue:
4652
split = [self.str_spec_symbols_map[char]() if char in self.str_spec_symbols_map else char for char in value]
4753
return StrValue(value, self._concat(split))
4854

uncoder-core/app/translator/platforms/sigma/str_value_manager.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"""
1919
from typing import Optional
2020

21+
from app.translator.core.custom_types.values import ValueType
2122
from app.translator.core.str_value_manager import (
2223
RE_STR_SPEC_SYMBOLS_MAP,
2324
ReDigitalSymbol,
@@ -43,7 +44,12 @@ class SigmaStrValueManager(StrValueManager):
4344
}
4445
re_str_spec_symbols_map = RE_STR_SPEC_SYMBOLS_MAP
4546

46-
def from_str_to_container(self, value: str, escape_symbol: Optional[str] = None) -> StrValue: # noqa: ARG002
47+
def from_str_to_container(
48+
self,
49+
value: str,
50+
value_type: str = ValueType.value, # noqa: ARG002
51+
escape_symbol: Optional[str] = None # noqa: ARG002
52+
) -> StrValue:
4753
split = []
4854
prev_char = None
4955
for char in value:

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy