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

Commita4e8cda

Browse files
authored
Merge pull request#170 from UncoderIO/gis-8064
Gis 8064 FunctionValue class, query tokens refactoring
2 parents4d9e145 +52da2bd commita4e8cda

File tree

53 files changed

+413
-313
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+413
-313
lines changed
Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
fromtypingimportUnion
22

3-
fromapp.translator.core.models.fieldimportAlias,Field,FieldValue,Keyword
4-
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
59

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

‎uncoder-core/app/translator/core/custom_types/functions.py‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ class FunctionType(CustomEnum):
2222
upper="upper"
2323

2424
array_length="array_length"
25-
compare="compare"
2625
extract_time="extract_time"
2726
ipv4_is_in_range="ipv4_is_in_range"
2827

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

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525

2626
fromapp.translator.core.exceptions.functionsimportNotSupportedFunctionException
2727
fromapp.translator.core.mappingimportSourceMapping
28-
fromapp.translator.core.models.fieldimportAlias,Field
2928
fromapp.translator.core.models.functions.baseimportFunction,ParsedFunctions,RenderedFunctions
29+
fromapp.translator.core.models.query_tokens.fieldimportAlias,Field
3030
fromapp.translator.tools.utilsimportexecute_module
3131
fromsettingsimportINIT_FUNCTIONS
3232

@@ -83,7 +83,6 @@ def parse(self, func_body: str, raw: str) -> Function:
8383
classFunctionRender(ABC):
8484
function_names_map:ClassVar[dict[str,str]]= {}
8585
order_to_render:int=0
86-
in_query_render:bool=False
8786
render_to_prefix:bool=False
8887
manager:PlatformFunctionsManager=None
8988

@@ -117,7 +116,6 @@ def __init__(self):
117116
self._parsers_map:dict[str,FunctionParser]= {}# {platform_func_name: FunctionParser}
118117

119118
self._renders_map:dict[str,FunctionRender]= {}# {generic_func_name: FunctionRender}
120-
self._in_query_renders_map:dict[str,FunctionRender]= {}# {generic_func_name: FunctionRender}
121119
self._order_to_render:dict[str,int]= {}# {generic_func_name: int}
122120

123121
defregister_render(self,render_class:type[FunctionRender])->type[FunctionRender]:
@@ -126,8 +124,6 @@ def register_render(self, render_class: type[FunctionRender]) -> type[FunctionRe
126124
forgeneric_function_nameinrender.function_names_map:
127125
self._renders_map[generic_function_name]=render
128126
self._order_to_render[generic_function_name]=render.order_to_render
129-
ifrender.in_query_render:
130-
self._in_query_renders_map[generic_function_name]=render
131127

132128
returnrender_class
133129

@@ -149,24 +145,16 @@ def get_hof_parser(self, platform_func_name: str) -> HigherOrderFunctionParser:
149145

150146
raiseNotSupportedFunctionException
151147

152-
defget_parser(self,platform_func_name:str)->FunctionParser:
148+
defget_parser(self,platform_func_name:str)->Optional[FunctionParser]:
153149
ifINIT_FUNCTIONSand (parser:=self._parsers_map.get(platform_func_name)):
154150
returnparser
155151

156-
raiseNotSupportedFunctionException
157-
158152
defget_render(self,generic_func_name:str)->FunctionRender:
159153
ifINIT_FUNCTIONSand (render:=self._renders_map.get(generic_func_name)):
160154
returnrender
161155

162156
raiseNotSupportedFunctionException
163157

164-
defget_in_query_render(self,generic_func_name:str)->FunctionRender:
165-
ifINIT_FUNCTIONSand (render:=self._in_query_renders_map.get(generic_func_name)):
166-
returnrender
167-
168-
raiseNotSupportedFunctionException
169-
170158
@property
171159
deforder_to_render(self)->dict[str,int]:
172160
ifINIT_FUNCTIONS:

‎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/functions/base.py‎

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,24 @@
11
from __future__importannotations
22

33
fromdataclassesimportdataclass,field
4-
fromtypingimportOptional,Union
4+
fromtypingimportTYPE_CHECKING,Optional,Union
55

6-
fromapp.translator.core.models.fieldimportAlias,Field,FieldValue,Keyword
7-
fromapp.translator.core.models.identifierimportIdentifier
6+
fromapp.translator.core.models.query_tokens.fieldimportAlias,Field
7+
fromapp.translator.core.models.query_tokens.field_fieldimportFieldField
8+
fromapp.translator.core.models.query_tokens.field_valueimportFieldValue
9+
fromapp.translator.core.models.query_tokens.identifierimportIdentifier
10+
fromapp.translator.core.models.query_tokens.keywordimportKeyword
11+
12+
ifTYPE_CHECKING:
13+
fromapp.translator.core.models.query_tokens.function_valueimportFunctionValue
814

915

1016
@dataclass
1117
classFunction:
1218
name:str=None
13-
args:list[Union[Alias,Field,FieldValue,Keyword,Function,Identifier,str,bool]]=field(default_factory=list)
19+
args:list[
20+
Union[Alias,Field,FieldField,FieldValue,FunctionValue,Keyword,Function,Identifier,int,str,bool]
21+
]=field(default_factory=list)
1422
alias:Optional[Alias]=None
1523
raw:str=""
1624

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

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,15 @@
22
fromtypingimportOptional
33

44
fromapp.translator.core.custom_types.functionsimportFunctionType
5-
fromapp.translator.core.models.fieldimportField
5+
fromapp.translator.core.custom_types.timeimportTimeFrameType
66
fromapp.translator.core.models.functions.baseimportFunction
7-
fromapp.translator.tools.custom_enumimportCustomEnum
8-
9-
10-
classSpanType(CustomEnum):
11-
days="days"
12-
hours="hours"
13-
minutes="minutes"
7+
fromapp.translator.core.models.query_tokens.fieldimportField
148

159

1610
@dataclass
1711
classSpan:
1812
value:str="1"
19-
type_:str=SpanType.days
13+
type_:str=TimeFrameType.days
2014

2115

2216
@dataclass

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
fromtypingimportUnion
33

44
fromapp.translator.core.custom_types.functionsimportFunctionType
5-
fromapp.translator.core.models.fieldimportAlias,Field
65
fromapp.translator.core.models.functions.baseimportFunction
7-
fromapp.translator.core.models.identifierimportIdentifier
6+
fromapp.translator.core.models.query_tokens.fieldimportAlias,Field
7+
fromapp.translator.core.models.query_tokens.identifierimportIdentifier
88

99

1010
@dataclass

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
fromtypingimportUnion
33

44
fromapp.translator.core.custom_types.functionsimportFunctionType
5-
fromapp.translator.core.models.fieldimportAlias
65
fromapp.translator.core.models.functions.baseimportFunction
6+
fromapp.translator.core.models.query_tokens.fieldimportAlias
77

88

99
@dataclass

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp