@@ -109,6 +109,7 @@ class UploadSpan(BaseModel):
109
109
tags_string : Dict [str , str ]
110
110
tags_long : Dict [str , int ]
111
111
tags_double : Dict [str , float ]
112
+ tags_bool : Dict [str , bool ]
112
113
113
114
114
115
class UploadFile (BaseModel ):
@@ -131,8 +132,8 @@ def transfer_to_upload_span_and_file(spans: List['Span']) -> (List[UploadSpan],
131
132
span_upload_files , put_content_map = parse_input_output (span )
132
133
object_storage_byte = transfer_object_storage (span_upload_files )
133
134
134
- tag_str_m , tag_long_m , tag_double_m = parse_tag (span .tag_map )
135
- system_tag_str_m , system_tag_long_m , system_tag_double_m = parse_tag (span .system_tag_map )
135
+ tag_str_m , tag_long_m , tag_double_m , tag_bool_m = parse_tag (span .tag_map , False )
136
+ system_tag_str_m , system_tag_long_m , system_tag_double_m , _ = parse_tag (span .system_tag_map , True )
136
137
137
138
res_span .append (UploadSpan (
138
139
started_at_micros = int (span .start_time .timestamp () * 1_000_000 ),
@@ -152,35 +153,42 @@ def transfer_to_upload_span_and_file(spans: List['Span']) -> (List[UploadSpan],
152
153
system_tags_double = system_tag_double_m ,
153
154
tags_string = tag_str_m ,
154
155
tags_long = tag_long_m ,
155
- tags_double = tag_double_m
156
+ tags_double = tag_double_m ,
157
+ tags_bool = tag_bool_m ,
156
158
))
157
159
res_file .extend (span_upload_files )
158
160
159
161
return res_span , res_file
160
162
161
163
162
- def parse_tag (span_tag : Dict [str , Any ]) -> (Dict [str , str ], Dict [str , int ], Dict [str , float ]):
164
+ def parse_tag (span_tag : Dict [str , Any ], is_system_tag : bool ) -> (Dict [str , str ], Dict [str , int ], Dict [str , float ], Dict [ str , bool ]):
163
165
if not span_tag :
164
166
return {}, {}, {}
165
167
166
168
v_str_map = {}
167
169
v_long_map = {}
168
170
v_double_map = {}
171
+ v_bool_map = {}
169
172
170
173
for key , value in span_tag .items ():
171
174
if key in (INPUT , OUTPUT ):
172
175
continue
173
176
174
177
if isinstance (value , str ):
175
178
v_str_map [key ] = value
176
- elif isinstance (value , (int , bool )):
179
+ elif isinstance (value , bool ):
180
+ if is_system_tag :
181
+ v_str_map [key ] = str (value )
182
+ else :
183
+ v_bool_map [key ] = bool (value )
184
+ elif isinstance (value , int ):
177
185
v_long_map [key ] = int (value )
178
186
elif isinstance (value , float ):
179
187
v_double_map [key ] = float (value )
180
188
else :
181
189
v_str_map [key ] = str (value )
182
190
183
- return v_str_map , v_long_map , v_double_map
191
+ return v_str_map , v_long_map , v_double_map , v_bool_map
184
192
185
193
186
194
0 commit comments