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

Commitb6330fd

Browse files
author
oleksandr.volha
committed
resolve conflicts
2 parents4e38719 +021ff84 commitb6330fd

File tree

25 files changed

+187
-78
lines changed

25 files changed

+187
-78
lines changed

‎uncoder-core/app/translator/core/mitre.py‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,4 +145,7 @@ def get_mitre_info(
145145
fortechniqueintechniquesor []:
146146
iftechnique_found:=self.get_technique(technique_id=technique.lower()):
147147
techniques_list.append(technique_found)
148-
returnMitreInfoContainer(tactics=tactics_list,techniques=techniques_list)
148+
returnMitreInfoContainer(
149+
tactics=sorted(tactics_list,key=lambdax:x.name),
150+
techniques=sorted(techniques_list,key=lambdax:x.technique_id),
151+
)

‎uncoder-core/app/translator/core/mixins/rule.py‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,10 @@ def parse_mitre_attack(self, tags: list[str]) -> MitreInfoContainer:
3737
iftag.startswith("attack."):
3838
tag=tag[7::]
3939
iftag.startswith("t"):
40-
iftechnique:=self.mitre_config.get_technique(tag):
41-
parsed_techniques.append(technique)
42-
eliftactic:=self.mitre_config.get_tactic(tag):
43-
parsed_tactics.append(tactic)
44-
returnMitreInfoContainer(tactics=parsed_tactics,techniques=parsed_techniques)
40+
parsed_techniques.append(tag)
41+
else:
42+
parsed_tactics.append(tag)
43+
returnself.mitre_config.get_mitre_info(tactics=parsed_tactics,techniques=parsed_techniques)
4544

4645

4746
classXMLRuleMixin:

‎uncoder-core/app/translator/core/models/functions/base.py‎

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
fromdataclassesimportdataclass,field
44
fromtypingimportTYPE_CHECKING,Optional,Union
55

6-
fromapp.translator.core.models.query_tokens.fieldimportAlias,Field
6+
fromapp.translator.core.models.query_tokens.fieldimportAlias,BaseFieldsGetter,Field
77
fromapp.translator.core.models.query_tokens.field_fieldimportFieldField
88
fromapp.translator.core.models.query_tokens.field_valueimportFieldValue
99
fromapp.translator.core.models.query_tokens.identifierimportIdentifier
@@ -14,14 +14,25 @@
1414

1515

1616
@dataclass
17-
classFunction:
17+
classFunction(BaseFieldsGetter):
1818
name:str=None
1919
args:list[
2020
Union[Alias,Field,FieldField,FieldValue,FunctionValue,Keyword,Function,Identifier,int,str,bool]
2121
]=field(default_factory=list)
2222
alias:Optional[Alias]=None
2323
raw:str=""
2424

25+
@property
26+
deffields(self)->list[Field]:
27+
fields= []
28+
forarginself.args:
29+
ifisinstance(arg,Field):
30+
fields.append(arg)
31+
elifisinstance(arg, (BaseFieldsGetter,Function)):
32+
fields.extend(arg.fields)
33+
34+
returnfields
35+
2536

2637
@dataclass
2738
classParsedFunctions:

‎uncoder-core/app/translator/core/models/functions/bin.py‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,7 @@ class BinFunction(Function):
1919
span:Optional[Span]=None
2020
field:Optional[Field]=None
2121
bins:Optional[int]=None
22+
23+
@property
24+
deffields(self)->list[Field]:
25+
return [self.field]ifself.fieldelse []

‎uncoder-core/app/translator/core/models/functions/eval.py‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,16 @@ class EvalArg:
1717
classEvalFunction(Function):
1818
name:str=FunctionType.eval
1919
args:list[EvalArg]=None
20+
21+
@property
22+
deffields(self)->list[Field]:
23+
fields= []
24+
forarginself.args:
25+
ifisinstance(arg.field_,Field):
26+
fields.append(arg.field_)
27+
forelinarg.expression:
28+
ifisinstance(el,Field):
29+
fields.append(el)
30+
ifisinstance(el,Function):
31+
fields.extend(el.fields)
32+
returnfields
Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
fromdataclassesimportField,dataclass,field
1+
fromdataclassesimportdataclass,field
22
fromtypingimportUnion
33

44
fromapp.translator.core.custom_types.functionsimportFunctionType
55
fromapp.translator.core.models.functions.baseimportFunction
6-
fromapp.translator.core.models.query_tokens.fieldimportAlias,PredefinedField
6+
fromapp.translator.core.models.query_tokens.fieldimportAlias,Field,PredefinedField
77

88

99
@dataclass
@@ -12,3 +12,16 @@ class GroupByFunction(Function):
1212
args:list[Function]=field(default_factory=list)
1313
by_clauses:list[Union[Alias,Field,PredefinedField]]=field(default_factory=list)
1414
filter_:Function=None
15+
16+
@property
17+
deffields(self)->list[Field]:
18+
fields= []
19+
forarginself.args:
20+
fields.extend(arg.fields)
21+
forby_clauseinself.by_clauses:
22+
ifisinstance(by_clause,Field):
23+
fields.append(by_clause)
24+
ifself.filter_:
25+
fields.extend(self.filter_.fields)
26+
27+
returnfields

‎uncoder-core/app/translator/core/models/functions/join.py‎

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44
fromapp.translator.core.custom_types.functionsimportFunctionType
55
fromapp.translator.core.models.functions.baseimportFunction
66
fromapp.translator.core.models.query_containerimportTokenizedQueryContainer
7-
fromapp.translator.core.models.query_tokens.fieldimportAlias,Field
7+
fromapp.translator.core.models.query_tokens.fieldimportAlias,BaseFieldsGetter,Field
8+
fromapp.translator.core.models.query_tokens.field_fieldimportFieldField
9+
fromapp.translator.core.models.query_tokens.field_valueimportFieldValue
10+
fromapp.translator.core.models.query_tokens.function_valueimportFunctionValue
811
fromapp.translator.core.models.query_tokens.identifierimportIdentifier
912
fromapp.translator.tools.custom_enumimportCustomEnum
1013

@@ -22,5 +25,14 @@ class JoinFunction(Function):
2225
alias:Alias=None
2326
type_:str=JoinType.inner
2427
tokenized_query_container:TokenizedQueryContainer=None
25-
condition:list[Union[Alias,Field,Identifier]]=field(default_factory=list)
28+
condition:list[Union[FieldField,FieldValue,FunctionValue,Identifier]]=field(default_factory=list)
2629
preset_log_source_str:str=None
30+
31+
@property
32+
deffields(self)->list[Field]:
33+
fields= []
34+
forarginself.condition:
35+
ifisinstance(arg,BaseFieldsGetter):
36+
fields.extend(arg.fields)
37+
38+
returnfields

‎uncoder-core/app/translator/core/models/functions/rename.py‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,11 @@ class RenameArg:
1515
classRenameFunction(Function):
1616
name:str=FunctionType.rename
1717
args:list[RenameArg]=None
18+
19+
@property
20+
deffields(self)->list[Field]:
21+
fields= []
22+
forarginself.args:
23+
fields.append(arg.field_)
24+
25+
returnfields

‎uncoder-core/app/translator/core/models/functions/sort.py‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,15 @@ class SortLimitFunction(Function):
2424
name:str=FunctionType.sort_limit
2525
args:list[SortArg]=None
2626
limit:str=None
27+
28+
@property
29+
deffields(self)->list[Field]:
30+
fields= []
31+
forarginself.args:
32+
ifisinstance(arg.field,Field):
33+
fields.append(arg.field)
34+
35+
ifarg.function:
36+
fields.extend(arg.function.fields)
37+
38+
returnfields

‎uncoder-core/app/translator/core/models/functions/union.py‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,15 @@
33
fromapp.translator.core.custom_types.functionsimportFunctionType
44
fromapp.translator.core.models.functions.baseimportFunction
55
fromapp.translator.core.models.query_containerimportTokenizedQueryContainer
6+
fromapp.translator.core.models.query_tokens.fieldimportField
67

78

89
@dataclass
910
classUnionFunction(Function):
1011
name:str=FunctionType.union
1112
tokenized_query_container:TokenizedQueryContainer=None
1213
preset_log_source_str:str=None
14+
15+
@property
16+
deffields(self)->list[Field]:
17+
return []

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp