Skip to content

Commit 1ca0bb3

Browse files
committed
gis-8825 fixes
1 parent 73914f5 commit 1ca0bb3

File tree

5 files changed

+28
-12
lines changed

5 files changed

+28
-12
lines changed

uncoder-core/app/translator/platforms/sentinel_one/custom_types/__init__.py

Whitespace-only changes.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from app.translator.core.custom_types.values import ValueType
2+
3+
4+
class SentinelOneValueType(ValueType):
5+
double_escape_regex_value = "d_e_re_value"

uncoder-core/app/translator/platforms/sentinel_one/escape_manager.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
from app.translator.core.custom_types.values import ValueType
44
from app.translator.core.escape_manager import EscapeManager
55
from app.translator.core.models.escape_details import EscapeDetails
6+
from app.translator.platforms.sentinel_one.custom_types.values import SentinelOneValueType
67

78

89
class SentinelOnePowerQueryEscapeManager(EscapeManager):
910
escape_map: ClassVar[dict[str, list[EscapeDetails]]] = {
1011
ValueType.value: [EscapeDetails(pattern=r"\\", escape_symbols=r"\\\\")],
11-
ValueType.regex_value: [EscapeDetails(pattern=r"\\", escape_symbols=r"\\\\")],
12+
ValueType.regex_value: [EscapeDetails(pattern=r"([$^*+()\[\]{}|.?\-\\])", escape_symbols=r"\\\1")],
13+
SentinelOneValueType.double_escape_regex_value: [EscapeDetails(pattern=r"\\", escape_symbols=r"\\\\")],
1214
}
1315

1416

uncoder-core/app/translator/platforms/sentinel_one/renders/sentinel_one_power_query.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,19 @@ def equal_modifier(self, field: str, value: DEFAULT_VALUE_TYPE) -> str:
3333
return f"{field} = {value}"
3434

3535
def less_modifier(self, field: str, value: Union[int, str]) -> str:
36-
value = self._pre_process_value(field, value, value_type=ValueType.value, wrap_str=True, wrap_int=True)
36+
value = self._pre_process_value(field, value, value_type=ValueType.value, wrap_str=True)
3737
return f"{field} < {value}"
3838

3939
def less_or_equal_modifier(self, field: str, value: Union[int, str]) -> str:
40-
value = self._pre_process_value(field, value, value_type=ValueType.value, wrap_str=True, wrap_int=True)
40+
value = self._pre_process_value(field, value, value_type=ValueType.value, wrap_str=True)
4141
return f"{field} <= {value}"
4242

4343
def greater_modifier(self, field: str, value: Union[int, str]) -> str:
44-
value = self._pre_process_value(field, value, value_type=ValueType.value, wrap_str=True, wrap_int=True)
44+
value = self._pre_process_value(field, value, value_type=ValueType.value, wrap_str=True)
4545
return f"{field} > {value}"
4646

4747
def greater_or_equal_modifier(self, field: str, value: Union[int, str]) -> str:
48-
value = self._pre_process_value(field, value, value_type=ValueType.value, wrap_str=True, wrap_int=True)
48+
value = self._pre_process_value(field, value, value_type=ValueType.value, wrap_str=True)
4949
return f"{field} >= {value}"
5050

5151
def not_equal_modifier(self, field: str, value: DEFAULT_VALUE_TYPE) -> str:
@@ -77,15 +77,11 @@ def startswith_modifier(self, field: str, value: DEFAULT_VALUE_TYPE) -> str:
7777
def regex_modifier(self, field: str, value: DEFAULT_VALUE_TYPE) -> str:
7878
if isinstance(value, list):
7979
values = self.list_token.join(
80-
self.str_value_manager.escape_manager.escape(
81-
self._pre_process_value(field, v, value_type=ValueType.regex_value, wrap_str=True, wrap_int=True),
82-
ValueType.regex_value,
83-
)
80+
self._pre_process_value(field, v, value_type=ValueType.regex_value, wrap_str=True, wrap_int=True)
8481
for v in value
8582
)
8683
return f"{field} matches ({values})"
8784
value = self._pre_process_value(field, value, value_type=ValueType.regex_value, wrap_str=True, wrap_int=True)
88-
value = self.str_value_manager.escape_manager.escape(value, ValueType.regex_value)
8985
return f"{field} matches {value}"
9086

9187
def is_none(self, field: str, value: DEFAULT_VALUE_TYPE) -> str: # noqa: ARG002

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

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@
1616
limitations under the License.
1717
-----------------------------------------------------------------
1818
"""
19-
20-
from app.translator.core.str_value_manager import StrValueManager
19+
from app.translator.core.custom_types.values import ValueType
20+
from app.translator.core.str_value_manager import BaseSpecSymbol, StrValue, StrValueManager
21+
from app.translator.platforms.sentinel_one.custom_types.values import SentinelOneValueType
2122
from app.translator.platforms.sentinel_one.escape_manager import (
2223
SentinelOnePowerQueryEscapeManager,
2324
sentinel_one_power_query_escape_manager,
@@ -27,5 +28,17 @@
2728
class SentinelOnePowerQueryStrValueManager(StrValueManager):
2829
escape_manager: SentinelOnePowerQueryEscapeManager = sentinel_one_power_query_escape_manager
2930

31+
def from_container_to_str(self, container: StrValue, value_type: str = ValueType.value) -> str:
32+
result = ""
33+
for el in container.split_value:
34+
if isinstance(el, str):
35+
result += self.escape_manager.escape(el, value_type)
36+
elif isinstance(el, BaseSpecSymbol) and (pattern := self.container_spec_symbols_map.get(type(el))):
37+
if value_type == ValueType.regex_value:
38+
pattern = self.escape_manager.escape(pattern, SentinelOneValueType.double_escape_regex_value)
39+
result += pattern
40+
41+
return result
42+
3043

3144
sentinel_one_power_query_str_value_manager = SentinelOnePowerQueryStrValueManager()

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