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

Commitc773bc3

Browse files
committed
query tokens refactoring
1 parent1cf80f3 commitc773bc3

File tree

32 files changed

+303
-275
lines changed

32 files changed

+303
-275
lines changed
Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
fromtypingimportUnion
22

3-
fromapp.translator.core.models.fieldimportAlias,Field,FieldValue,Keyword
4-
fromapp.translator.core.models.function_valueimportFunctionValue
5-
fromapp.translator.core.models.identifierimportIdentifier
3+
fromapp.translator.core.models.query_tokens.fieldimportAlias,Field
4+
fromapp.translator.core.models.query_tokens.field_fieldimportFieldField
5+
fromapp.translator.core.models.query_tokens.field_valueimportFieldValue
6+
fromapp.translator.core.models.query_tokens.function_valueimportFunctionValue
7+
fromapp.translator.core.models.query_tokens.identifierimportIdentifier
8+
fromapp.translator.core.models.query_tokens.keywordimportKeyword
69

7-
QUERY_TOKEN_TYPE=Union[FieldValue,FunctionValue,Keyword,Identifier,Field,Alias]
10+
QUERY_TOKEN_TYPE=Union[FieldField,FieldValue,FunctionValue,Keyword,Identifier,Field,Alias]

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

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
1-
fromtypingimportUnion
2-
1+
fromapp.translator.core.constimportQUERY_TOKEN_TYPE
32
fromapp.translator.core.custom_types.tokensimportGroupType,LogicalOperatorType
4-
fromapp.translator.core.models.fieldimportFieldValue,Keyword
5-
fromapp.translator.core.models.identifierimportIdentifier
3+
fromapp.translator.core.models.query_tokens.field_fieldimportFieldField
4+
fromapp.translator.core.models.query_tokens.field_valueimportFieldValue
5+
fromapp.translator.core.models.query_tokens.function_valueimportFunctionValue
6+
fromapp.translator.core.models.query_tokens.identifierimportIdentifier
7+
fromapp.translator.core.models.query_tokens.keywordimportKeyword
68

79

810
classANDLogicOperatorMixin:
911
@staticmethod
10-
defget_missed_and_token_indices(tokens:list[Union[FieldValue,Keyword,Identifier]])->list[int]:
12+
defget_missed_and_token_indices(tokens:list[QUERY_TOKEN_TYPE])->list[int]:
1113
missed_and_indices= []
1214
forindexinrange(len(tokens)-1):
1315
token=tokens[index]
1416
next_token=tokens[index+1]
1517
if (
16-
isinstance(token, (FieldValue,Keyword))
18+
isinstance(token, (FieldField,FieldValue,FunctionValue,Keyword))
1719
orisinstance(token,Identifier)
1820
andtoken.token_type==GroupType.R_PAREN
1921
)andnot (
@@ -23,9 +25,7 @@ def get_missed_and_token_indices(tokens: list[Union[FieldValue, Keyword, Identif
2325
missed_and_indices.append(index+1)
2426
returnlist(reversed(missed_and_indices))
2527

26-
defadd_and_token_if_missed(
27-
self,tokens:list[Union[FieldValue,Keyword,Identifier]]
28-
)->list[Union[FieldValue,Keyword,Identifier]]:
28+
defadd_and_token_if_missed(self,tokens:list[QUERY_TOKEN_TYPE])->list[QUERY_TOKEN_TYPE]:
2929
indices=self.get_missed_and_token_indices(tokens=tokens)
3030
forindexinindices:
3131
tokens.insert(index,Identifier(token_type=LogicalOperatorType.AND))

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
fromtypingimportOptional,Union
2020

2121
fromapp.translator.core.custom_types.tokensimportOperatorType
22-
fromapp.translator.core.models.identifierimportIdentifier
22+
fromapp.translator.core.models.query_tokens.identifierimportIdentifier
2323

2424

2525
classWildCardMixin:

‎uncoder-core/app/translator/core/models/field.py‎

Lines changed: 0 additions & 136 deletions
This file was deleted.

‎uncoder-core/app/translator/core/models/function_value.py‎

Lines changed: 0 additions & 39 deletions
This file was deleted.

‎uncoder-core/app/translator/core/models/query_container.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
fromapp.translator.core.constimportQUERY_TOKEN_TYPE
77
fromapp.translator.core.custom_types.meta_infoimportSeverityType
88
fromapp.translator.core.mappingimportDEFAULT_MAPPING_NAME
9-
fromapp.translator.core.models.fieldimportField
109
fromapp.translator.core.models.functions.baseimportParsedFunctions
10+
fromapp.translator.core.models.query_tokens.fieldimportField
1111

1212

1313
classMetaInfoContainer:

‎uncoder-core/app/translator/core/models/query_tokens/__init__.py‎

Whitespace-only changes.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
fromtypingimportOptional
2+
3+
fromapp.translator.core.mappingimportDEFAULT_MAPPING_NAME,SourceMapping
4+
5+
6+
classAlias:
7+
def__init__(self,name:str):
8+
self.name=name
9+
10+
11+
classField:
12+
def__init__(self,source_name:str):
13+
self.source_name=source_name
14+
self.__generic_names_map= {}
15+
16+
defget_generic_field_name(self,source_id:str)->Optional[str]:
17+
returnself.__generic_names_map.get(source_id)
18+
19+
defadd_generic_names_map(self,generic_names_map:dict)->None:
20+
self.__generic_names_map=generic_names_map
21+
22+
defset_generic_names_map(self,source_mappings:list[SourceMapping],default_mapping:SourceMapping)->None:
23+
generic_names_map= {
24+
source_mapping.source_id:source_mapping.fields_mapping.get_generic_field_name(self.source_name)
25+
orself.source_name
26+
forsource_mappinginsource_mappings
27+
}
28+
ifDEFAULT_MAPPING_NAMEnotingeneric_names_map:
29+
fields_mapping=default_mapping.fields_mapping
30+
generic_names_map[DEFAULT_MAPPING_NAME]= (
31+
fields_mapping.get_generic_field_name(self.source_name)orself.source_name
32+
)
33+
34+
self.__generic_names_map=generic_names_map
35+
36+
37+
classPredefinedField:
38+
def__init__(self,name:str):
39+
self.name=name
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
fromapp.translator.core.models.query_tokens.fieldimportAlias,Field
2+
fromapp.translator.core.models.query_tokens.identifierimportIdentifier
3+
4+
5+
classFieldField:
6+
def__init__(
7+
self,
8+
source_name_left:str,
9+
operator:Identifier,
10+
source_name_right:str,
11+
is_alias_left:bool=False,
12+
is_alias_right:bool=False,
13+
):
14+
self.field_left=Field(source_name=source_name_left)ifnotis_alias_leftelseNone
15+
self.alias_left=Alias(name=source_name_left)ifis_alias_leftelseNone
16+
self.operator=operator
17+
self.field_right=Field(source_name=source_name_right)ifnotis_alias_rightelseNone
18+
self.alias_right=Alias(name=source_name_right)ifis_alias_rightelseNone
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
fromtypingimportUnion
2+
3+
fromapp.translator.core.custom_types.tokensimportSTR_SEARCH_OPERATORS
4+
fromapp.translator.core.models.query_tokens.fieldimportAlias,Field,PredefinedField
5+
fromapp.translator.core.models.query_tokens.identifierimportIdentifier
6+
fromapp.translator.core.models.query_tokens.valueimportValue
7+
fromapp.translator.core.str_value_managerimportStrValue
8+
9+
10+
classFieldValue(Value):
11+
def__init__(
12+
self,
13+
source_name:str,
14+
operator:Identifier,
15+
value:Union[bool,int,str,StrValue,list,tuple],
16+
is_alias:bool=False,
17+
is_predefined_field:bool=False,
18+
):
19+
super().__init__(value,cast_to_int=operator.token_typenotinSTR_SEARCH_OPERATORS)
20+
# mapped by platform fields mapping
21+
self.field=Field(source_name=source_name)ifnot (is_aliasoris_predefined_field)elseNone
22+
# not mapped
23+
self.alias=Alias(name=source_name)ifis_aliaselseNone
24+
# mapped by platform predefined fields mapping
25+
self.predefined_field=PredefinedField(name=source_name)ifis_predefined_fieldelseNone
26+
self.operator=operator
27+
28+
def__repr__(self):
29+
ifself.alias:
30+
returnf"{self.alias.name}{self.operator.token_type}{self.values}"
31+
32+
ifself.predefined_field:
33+
returnf"{self.predefined_field.name}{self.operator.token_type}{self.values}"
34+
35+
returnf"{self.field.source_name}{self.operator.token_type}{self.values}"

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp