awx-zipline-ai 0.0.32__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. __init__.py +0 -0
  2. agent/__init__.py +1 -0
  3. agent/constants.py +15 -0
  4. agent/ttypes.py +1684 -0
  5. ai/__init__.py +0 -0
  6. ai/chronon/__init__.py +0 -0
  7. ai/chronon/airflow_helpers.py +248 -0
  8. ai/chronon/cli/__init__.py +0 -0
  9. ai/chronon/cli/compile/__init__.py +0 -0
  10. ai/chronon/cli/compile/column_hashing.py +336 -0
  11. ai/chronon/cli/compile/compile_context.py +173 -0
  12. ai/chronon/cli/compile/compiler.py +183 -0
  13. ai/chronon/cli/compile/conf_validator.py +742 -0
  14. ai/chronon/cli/compile/display/__init__.py +0 -0
  15. ai/chronon/cli/compile/display/class_tracker.py +102 -0
  16. ai/chronon/cli/compile/display/compile_status.py +95 -0
  17. ai/chronon/cli/compile/display/compiled_obj.py +12 -0
  18. ai/chronon/cli/compile/display/console.py +3 -0
  19. ai/chronon/cli/compile/display/diff_result.py +111 -0
  20. ai/chronon/cli/compile/fill_templates.py +35 -0
  21. ai/chronon/cli/compile/parse_configs.py +134 -0
  22. ai/chronon/cli/compile/parse_teams.py +242 -0
  23. ai/chronon/cli/compile/serializer.py +109 -0
  24. ai/chronon/cli/compile/version_utils.py +42 -0
  25. ai/chronon/cli/git_utils.py +145 -0
  26. ai/chronon/cli/logger.py +59 -0
  27. ai/chronon/constants.py +3 -0
  28. ai/chronon/group_by.py +692 -0
  29. ai/chronon/join.py +580 -0
  30. ai/chronon/logger.py +23 -0
  31. ai/chronon/model.py +40 -0
  32. ai/chronon/query.py +126 -0
  33. ai/chronon/repo/__init__.py +39 -0
  34. ai/chronon/repo/aws.py +284 -0
  35. ai/chronon/repo/cluster.py +136 -0
  36. ai/chronon/repo/compile.py +62 -0
  37. ai/chronon/repo/constants.py +164 -0
  38. ai/chronon/repo/default_runner.py +269 -0
  39. ai/chronon/repo/explore.py +418 -0
  40. ai/chronon/repo/extract_objects.py +134 -0
  41. ai/chronon/repo/gcp.py +586 -0
  42. ai/chronon/repo/gitpython_utils.py +15 -0
  43. ai/chronon/repo/hub_runner.py +261 -0
  44. ai/chronon/repo/hub_uploader.py +109 -0
  45. ai/chronon/repo/init.py +60 -0
  46. ai/chronon/repo/join_backfill.py +119 -0
  47. ai/chronon/repo/run.py +296 -0
  48. ai/chronon/repo/serializer.py +133 -0
  49. ai/chronon/repo/team_json_utils.py +46 -0
  50. ai/chronon/repo/utils.py +481 -0
  51. ai/chronon/repo/zipline.py +35 -0
  52. ai/chronon/repo/zipline_hub.py +277 -0
  53. ai/chronon/resources/__init__.py +0 -0
  54. ai/chronon/resources/gcp/__init__.py +0 -0
  55. ai/chronon/resources/gcp/group_bys/__init__.py +0 -0
  56. ai/chronon/resources/gcp/group_bys/test/__init__.py +0 -0
  57. ai/chronon/resources/gcp/group_bys/test/data.py +30 -0
  58. ai/chronon/resources/gcp/joins/__init__.py +0 -0
  59. ai/chronon/resources/gcp/joins/test/__init__.py +0 -0
  60. ai/chronon/resources/gcp/joins/test/data.py +26 -0
  61. ai/chronon/resources/gcp/sources/__init__.py +0 -0
  62. ai/chronon/resources/gcp/sources/test/__init__.py +0 -0
  63. ai/chronon/resources/gcp/sources/test/data.py +26 -0
  64. ai/chronon/resources/gcp/teams.py +58 -0
  65. ai/chronon/source.py +86 -0
  66. ai/chronon/staging_query.py +226 -0
  67. ai/chronon/types.py +58 -0
  68. ai/chronon/utils.py +510 -0
  69. ai/chronon/windows.py +48 -0
  70. awx_zipline_ai-0.0.32.dist-info/METADATA +197 -0
  71. awx_zipline_ai-0.0.32.dist-info/RECORD +96 -0
  72. awx_zipline_ai-0.0.32.dist-info/WHEEL +5 -0
  73. awx_zipline_ai-0.0.32.dist-info/entry_points.txt +2 -0
  74. awx_zipline_ai-0.0.32.dist-info/top_level.txt +4 -0
  75. gen_thrift/__init__.py +0 -0
  76. gen_thrift/api/__init__.py +1 -0
  77. gen_thrift/api/constants.py +15 -0
  78. gen_thrift/api/ttypes.py +3754 -0
  79. gen_thrift/common/__init__.py +1 -0
  80. gen_thrift/common/constants.py +15 -0
  81. gen_thrift/common/ttypes.py +1814 -0
  82. gen_thrift/eval/__init__.py +1 -0
  83. gen_thrift/eval/constants.py +15 -0
  84. gen_thrift/eval/ttypes.py +660 -0
  85. gen_thrift/fetcher/__init__.py +1 -0
  86. gen_thrift/fetcher/constants.py +15 -0
  87. gen_thrift/fetcher/ttypes.py +127 -0
  88. gen_thrift/hub/__init__.py +1 -0
  89. gen_thrift/hub/constants.py +15 -0
  90. gen_thrift/hub/ttypes.py +1109 -0
  91. gen_thrift/observability/__init__.py +1 -0
  92. gen_thrift/observability/constants.py +15 -0
  93. gen_thrift/observability/ttypes.py +2355 -0
  94. gen_thrift/planner/__init__.py +1 -0
  95. gen_thrift/planner/constants.py +15 -0
  96. gen_thrift/planner/ttypes.py +1967 -0
@@ -0,0 +1,2355 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.22.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+ # options string: py
7
+ #
8
+
9
+ from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException
10
+ from thrift.protocol.TProtocol import TProtocolException
11
+ from thrift.TRecursive import fix_spec
12
+ from uuid import UUID
13
+
14
+ import sys
15
+ import gen_thrift.common.ttypes
16
+
17
+ from thrift.transport import TTransport
18
+ all_structs = []
19
+
20
+
21
+ class Cardinality(object):
22
+ LOW = 0
23
+ HIGH = 1
24
+
25
+ _VALUES_TO_NAMES = {
26
+ 0: "LOW",
27
+ 1: "HIGH",
28
+ }
29
+
30
+ _NAMES_TO_VALUES = {
31
+ "LOW": 0,
32
+ "HIGH": 1,
33
+ }
34
+
35
+
36
+ class DriftMetric(object):
37
+ """
38
+ +----------------------------------+-------------------+----------------+----------------------------------+
39
+ | Metric | Moderate Drift | Severe Drift | Notes |
40
+ +----------------------------------+-------------------+----------------+----------------------------------+
41
+ | Jensen-Shannon Divergence | 0.05 - 0.1 | > 0.1 | Max value is ln(2) ≈ 0.69 |
42
+ +----------------------------------+-------------------+----------------+----------------------------------+
43
+ | Hellinger Distance | 0.1 - 0.25 | > 0.25 | Ranges from 0 to 1 |
44
+ +----------------------------------+-------------------+----------------+----------------------------------+
45
+ | Population Stability Index (PSI) | 0.1 - 0.2 | > 0.2 | Industry standard in some fields |
46
+ +----------------------------------+-------------------+----------------+----------------------------------+
47
+ *
48
+
49
+ """
50
+ JENSEN_SHANNON = 0
51
+ HELLINGER = 1
52
+ PSI = 3
53
+
54
+ _VALUES_TO_NAMES = {
55
+ 0: "JENSEN_SHANNON",
56
+ 1: "HELLINGER",
57
+ 3: "PSI",
58
+ }
59
+
60
+ _NAMES_TO_VALUES = {
61
+ "JENSEN_SHANNON": 0,
62
+ "HELLINGER": 1,
63
+ "PSI": 3,
64
+ }
65
+
66
+
67
+ class TileStatsType(object):
68
+ NULL_COUNTS = 1
69
+
70
+ _VALUES_TO_NAMES = {
71
+ 1: "NULL_COUNTS",
72
+ }
73
+
74
+ _NAMES_TO_VALUES = {
75
+ "NULL_COUNTS": 1,
76
+ }
77
+
78
+
79
+ class TileSummaryKey(object):
80
+ """
81
+ Attributes:
82
+ - column
83
+ - slice
84
+ - name
85
+ - sizeMillis
86
+
87
+ """
88
+ thrift_spec = None
89
+
90
+
91
+ def __init__(self, column = None, slice = None, name = None, sizeMillis = None,):
92
+ self.column = column
93
+ self.slice = slice
94
+ self.name = name
95
+ self.sizeMillis = sizeMillis
96
+
97
+ def read(self, iprot):
98
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
99
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
100
+ return
101
+ iprot.readStructBegin()
102
+ while True:
103
+ (fname, ftype, fid) = iprot.readFieldBegin()
104
+ if ftype == TType.STOP:
105
+ break
106
+ if fid == 1:
107
+ if ftype == TType.STRING:
108
+ self.column = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
109
+ else:
110
+ iprot.skip(ftype)
111
+ elif fid == 2:
112
+ if ftype == TType.STRING:
113
+ self.slice = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
114
+ else:
115
+ iprot.skip(ftype)
116
+ elif fid == 3:
117
+ if ftype == TType.STRING:
118
+ self.name = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
119
+ else:
120
+ iprot.skip(ftype)
121
+ elif fid == 4:
122
+ if ftype == TType.I64:
123
+ self.sizeMillis = iprot.readI64()
124
+ else:
125
+ iprot.skip(ftype)
126
+ else:
127
+ iprot.skip(ftype)
128
+ iprot.readFieldEnd()
129
+ iprot.readStructEnd()
130
+
131
+ def write(self, oprot):
132
+ self.validate()
133
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
134
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
135
+ return
136
+ oprot.writeStructBegin('TileSummaryKey')
137
+ if self.column is not None:
138
+ oprot.writeFieldBegin('column', TType.STRING, 1)
139
+ oprot.writeString(self.column.encode('utf-8') if sys.version_info[0] == 2 else self.column)
140
+ oprot.writeFieldEnd()
141
+ if self.slice is not None:
142
+ oprot.writeFieldBegin('slice', TType.STRING, 2)
143
+ oprot.writeString(self.slice.encode('utf-8') if sys.version_info[0] == 2 else self.slice)
144
+ oprot.writeFieldEnd()
145
+ if self.name is not None:
146
+ oprot.writeFieldBegin('name', TType.STRING, 3)
147
+ oprot.writeString(self.name.encode('utf-8') if sys.version_info[0] == 2 else self.name)
148
+ oprot.writeFieldEnd()
149
+ if self.sizeMillis is not None:
150
+ oprot.writeFieldBegin('sizeMillis', TType.I64, 4)
151
+ oprot.writeI64(self.sizeMillis)
152
+ oprot.writeFieldEnd()
153
+ oprot.writeFieldStop()
154
+ oprot.writeStructEnd()
155
+
156
+ def validate(self):
157
+ return
158
+
159
+ def __repr__(self):
160
+ L = ['%s=%r' % (key, value)
161
+ for key, value in self.__dict__.items()]
162
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
163
+
164
+ def __eq__(self, other):
165
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
166
+
167
+ def __ne__(self, other):
168
+ return not (self == other)
169
+
170
+
171
+ class TileSummary(object):
172
+ """
173
+ Attributes:
174
+ - percentiles
175
+ - histogram
176
+ - count
177
+ - nullCount
178
+ - innerCount
179
+ - innerNullCount
180
+ - lengthPercentiles
181
+ - stringLengthPercentiles
182
+
183
+ """
184
+ thrift_spec = None
185
+
186
+
187
+ def __init__(self, percentiles = None, histogram = None, count = None, nullCount = None, innerCount = None, innerNullCount = None, lengthPercentiles = None, stringLengthPercentiles = None,):
188
+ self.percentiles = percentiles
189
+ self.histogram = histogram
190
+ self.count = count
191
+ self.nullCount = nullCount
192
+ self.innerCount = innerCount
193
+ self.innerNullCount = innerNullCount
194
+ self.lengthPercentiles = lengthPercentiles
195
+ self.stringLengthPercentiles = stringLengthPercentiles
196
+
197
+ def read(self, iprot):
198
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
199
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
200
+ return
201
+ iprot.readStructBegin()
202
+ while True:
203
+ (fname, ftype, fid) = iprot.readFieldBegin()
204
+ if ftype == TType.STOP:
205
+ break
206
+ if fid == 1:
207
+ if ftype == TType.LIST:
208
+ self.percentiles = []
209
+ (_etype3, _size0) = iprot.readListBegin()
210
+ for _i4 in range(_size0):
211
+ _elem5 = iprot.readDouble()
212
+ self.percentiles.append(_elem5)
213
+ iprot.readListEnd()
214
+ else:
215
+ iprot.skip(ftype)
216
+ elif fid == 2:
217
+ if ftype == TType.MAP:
218
+ self.histogram = {}
219
+ (_ktype7, _vtype8, _size6) = iprot.readMapBegin()
220
+ for _i10 in range(_size6):
221
+ _key11 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
222
+ _val12 = iprot.readI64()
223
+ self.histogram[_key11] = _val12
224
+ iprot.readMapEnd()
225
+ else:
226
+ iprot.skip(ftype)
227
+ elif fid == 3:
228
+ if ftype == TType.I64:
229
+ self.count = iprot.readI64()
230
+ else:
231
+ iprot.skip(ftype)
232
+ elif fid == 4:
233
+ if ftype == TType.I64:
234
+ self.nullCount = iprot.readI64()
235
+ else:
236
+ iprot.skip(ftype)
237
+ elif fid == 5:
238
+ if ftype == TType.I64:
239
+ self.innerCount = iprot.readI64()
240
+ else:
241
+ iprot.skip(ftype)
242
+ elif fid == 6:
243
+ if ftype == TType.I64:
244
+ self.innerNullCount = iprot.readI64()
245
+ else:
246
+ iprot.skip(ftype)
247
+ elif fid == 7:
248
+ if ftype == TType.LIST:
249
+ self.lengthPercentiles = []
250
+ (_etype16, _size13) = iprot.readListBegin()
251
+ for _i17 in range(_size13):
252
+ _elem18 = iprot.readI32()
253
+ self.lengthPercentiles.append(_elem18)
254
+ iprot.readListEnd()
255
+ else:
256
+ iprot.skip(ftype)
257
+ elif fid == 8:
258
+ if ftype == TType.LIST:
259
+ self.stringLengthPercentiles = []
260
+ (_etype22, _size19) = iprot.readListBegin()
261
+ for _i23 in range(_size19):
262
+ _elem24 = iprot.readI32()
263
+ self.stringLengthPercentiles.append(_elem24)
264
+ iprot.readListEnd()
265
+ else:
266
+ iprot.skip(ftype)
267
+ else:
268
+ iprot.skip(ftype)
269
+ iprot.readFieldEnd()
270
+ iprot.readStructEnd()
271
+
272
+ def write(self, oprot):
273
+ self.validate()
274
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
275
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
276
+ return
277
+ oprot.writeStructBegin('TileSummary')
278
+ if self.percentiles is not None:
279
+ oprot.writeFieldBegin('percentiles', TType.LIST, 1)
280
+ oprot.writeListBegin(TType.DOUBLE, len(self.percentiles))
281
+ for iter25 in self.percentiles:
282
+ oprot.writeDouble(iter25)
283
+ oprot.writeListEnd()
284
+ oprot.writeFieldEnd()
285
+ if self.histogram is not None:
286
+ oprot.writeFieldBegin('histogram', TType.MAP, 2)
287
+ oprot.writeMapBegin(TType.STRING, TType.I64, len(self.histogram))
288
+ for kiter26, viter27 in self.histogram.items():
289
+ oprot.writeString(kiter26.encode('utf-8') if sys.version_info[0] == 2 else kiter26)
290
+ oprot.writeI64(viter27)
291
+ oprot.writeMapEnd()
292
+ oprot.writeFieldEnd()
293
+ if self.count is not None:
294
+ oprot.writeFieldBegin('count', TType.I64, 3)
295
+ oprot.writeI64(self.count)
296
+ oprot.writeFieldEnd()
297
+ if self.nullCount is not None:
298
+ oprot.writeFieldBegin('nullCount', TType.I64, 4)
299
+ oprot.writeI64(self.nullCount)
300
+ oprot.writeFieldEnd()
301
+ if self.innerCount is not None:
302
+ oprot.writeFieldBegin('innerCount', TType.I64, 5)
303
+ oprot.writeI64(self.innerCount)
304
+ oprot.writeFieldEnd()
305
+ if self.innerNullCount is not None:
306
+ oprot.writeFieldBegin('innerNullCount', TType.I64, 6)
307
+ oprot.writeI64(self.innerNullCount)
308
+ oprot.writeFieldEnd()
309
+ if self.lengthPercentiles is not None:
310
+ oprot.writeFieldBegin('lengthPercentiles', TType.LIST, 7)
311
+ oprot.writeListBegin(TType.I32, len(self.lengthPercentiles))
312
+ for iter28 in self.lengthPercentiles:
313
+ oprot.writeI32(iter28)
314
+ oprot.writeListEnd()
315
+ oprot.writeFieldEnd()
316
+ if self.stringLengthPercentiles is not None:
317
+ oprot.writeFieldBegin('stringLengthPercentiles', TType.LIST, 8)
318
+ oprot.writeListBegin(TType.I32, len(self.stringLengthPercentiles))
319
+ for iter29 in self.stringLengthPercentiles:
320
+ oprot.writeI32(iter29)
321
+ oprot.writeListEnd()
322
+ oprot.writeFieldEnd()
323
+ oprot.writeFieldStop()
324
+ oprot.writeStructEnd()
325
+
326
+ def validate(self):
327
+ return
328
+
329
+ def __repr__(self):
330
+ L = ['%s=%r' % (key, value)
331
+ for key, value in self.__dict__.items()]
332
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
333
+
334
+ def __eq__(self, other):
335
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
336
+
337
+ def __ne__(self, other):
338
+ return not (self == other)
339
+
340
+
341
+ class TileSeriesKey(object):
342
+ """
343
+ Attributes:
344
+ - column
345
+ - slice
346
+ - groupName
347
+ - nodeName
348
+
349
+ """
350
+ thrift_spec = None
351
+
352
+
353
+ def __init__(self, column = None, slice = None, groupName = None, nodeName = None,):
354
+ self.column = column
355
+ self.slice = slice
356
+ self.groupName = groupName
357
+ self.nodeName = nodeName
358
+
359
+ def read(self, iprot):
360
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
361
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
362
+ return
363
+ iprot.readStructBegin()
364
+ while True:
365
+ (fname, ftype, fid) = iprot.readFieldBegin()
366
+ if ftype == TType.STOP:
367
+ break
368
+ if fid == 1:
369
+ if ftype == TType.STRING:
370
+ self.column = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
371
+ else:
372
+ iprot.skip(ftype)
373
+ elif fid == 2:
374
+ if ftype == TType.STRING:
375
+ self.slice = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
376
+ else:
377
+ iprot.skip(ftype)
378
+ elif fid == 3:
379
+ if ftype == TType.STRING:
380
+ self.groupName = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
381
+ else:
382
+ iprot.skip(ftype)
383
+ elif fid == 4:
384
+ if ftype == TType.STRING:
385
+ self.nodeName = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
386
+ else:
387
+ iprot.skip(ftype)
388
+ else:
389
+ iprot.skip(ftype)
390
+ iprot.readFieldEnd()
391
+ iprot.readStructEnd()
392
+
393
+ def write(self, oprot):
394
+ self.validate()
395
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
396
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
397
+ return
398
+ oprot.writeStructBegin('TileSeriesKey')
399
+ if self.column is not None:
400
+ oprot.writeFieldBegin('column', TType.STRING, 1)
401
+ oprot.writeString(self.column.encode('utf-8') if sys.version_info[0] == 2 else self.column)
402
+ oprot.writeFieldEnd()
403
+ if self.slice is not None:
404
+ oprot.writeFieldBegin('slice', TType.STRING, 2)
405
+ oprot.writeString(self.slice.encode('utf-8') if sys.version_info[0] == 2 else self.slice)
406
+ oprot.writeFieldEnd()
407
+ if self.groupName is not None:
408
+ oprot.writeFieldBegin('groupName', TType.STRING, 3)
409
+ oprot.writeString(self.groupName.encode('utf-8') if sys.version_info[0] == 2 else self.groupName)
410
+ oprot.writeFieldEnd()
411
+ if self.nodeName is not None:
412
+ oprot.writeFieldBegin('nodeName', TType.STRING, 4)
413
+ oprot.writeString(self.nodeName.encode('utf-8') if sys.version_info[0] == 2 else self.nodeName)
414
+ oprot.writeFieldEnd()
415
+ oprot.writeFieldStop()
416
+ oprot.writeStructEnd()
417
+
418
+ def validate(self):
419
+ return
420
+
421
+ def __repr__(self):
422
+ L = ['%s=%r' % (key, value)
423
+ for key, value in self.__dict__.items()]
424
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
425
+
426
+ def __eq__(self, other):
427
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
428
+
429
+ def __ne__(self, other):
430
+ return not (self == other)
431
+
432
+
433
+ class NullCounts(object):
434
+ """
435
+ Attributes:
436
+ - nullCounts
437
+ - rowCount
438
+
439
+ """
440
+ thrift_spec = None
441
+
442
+
443
+ def __init__(self, nullCounts = None, rowCount = None,):
444
+ self.nullCounts = nullCounts
445
+ self.rowCount = rowCount
446
+
447
+ def read(self, iprot):
448
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
449
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
450
+ return
451
+ iprot.readStructBegin()
452
+ while True:
453
+ (fname, ftype, fid) = iprot.readFieldBegin()
454
+ if ftype == TType.STOP:
455
+ break
456
+ if fid == 1:
457
+ if ftype == TType.MAP:
458
+ self.nullCounts = {}
459
+ (_ktype31, _vtype32, _size30) = iprot.readMapBegin()
460
+ for _i34 in range(_size30):
461
+ _key35 = iprot.readI32()
462
+ _val36 = iprot.readI64()
463
+ self.nullCounts[_key35] = _val36
464
+ iprot.readMapEnd()
465
+ else:
466
+ iprot.skip(ftype)
467
+ elif fid == 2:
468
+ if ftype == TType.I64:
469
+ self.rowCount = iprot.readI64()
470
+ else:
471
+ iprot.skip(ftype)
472
+ else:
473
+ iprot.skip(ftype)
474
+ iprot.readFieldEnd()
475
+ iprot.readStructEnd()
476
+
477
+ def write(self, oprot):
478
+ self.validate()
479
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
480
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
481
+ return
482
+ oprot.writeStructBegin('NullCounts')
483
+ if self.nullCounts is not None:
484
+ oprot.writeFieldBegin('nullCounts', TType.MAP, 1)
485
+ oprot.writeMapBegin(TType.I32, TType.I64, len(self.nullCounts))
486
+ for kiter37, viter38 in self.nullCounts.items():
487
+ oprot.writeI32(kiter37)
488
+ oprot.writeI64(viter38)
489
+ oprot.writeMapEnd()
490
+ oprot.writeFieldEnd()
491
+ if self.rowCount is not None:
492
+ oprot.writeFieldBegin('rowCount', TType.I64, 2)
493
+ oprot.writeI64(self.rowCount)
494
+ oprot.writeFieldEnd()
495
+ oprot.writeFieldStop()
496
+ oprot.writeStructEnd()
497
+
498
+ def validate(self):
499
+ return
500
+
501
+ def __repr__(self):
502
+ L = ['%s=%r' % (key, value)
503
+ for key, value in self.__dict__.items()]
504
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
505
+
506
+ def __eq__(self, other):
507
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
508
+
509
+ def __ne__(self, other):
510
+ return not (self == other)
511
+
512
+
513
+ class TileStats(object):
514
+ """
515
+ Attributes:
516
+ - nullCounts
517
+
518
+ """
519
+ thrift_spec = None
520
+
521
+
522
+ def __init__(self, nullCounts = None,):
523
+ self.nullCounts = nullCounts
524
+
525
+ def read(self, iprot):
526
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
527
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
528
+ return
529
+ iprot.readStructBegin()
530
+ while True:
531
+ (fname, ftype, fid) = iprot.readFieldBegin()
532
+ if ftype == TType.STOP:
533
+ break
534
+ if fid == 1:
535
+ if ftype == TType.STRUCT:
536
+ self.nullCounts = NullCounts()
537
+ self.nullCounts.read(iprot)
538
+ else:
539
+ iprot.skip(ftype)
540
+ else:
541
+ iprot.skip(ftype)
542
+ iprot.readFieldEnd()
543
+ iprot.readStructEnd()
544
+
545
+ def write(self, oprot):
546
+ self.validate()
547
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
548
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
549
+ return
550
+ oprot.writeStructBegin('TileStats')
551
+ if self.nullCounts is not None:
552
+ oprot.writeFieldBegin('nullCounts', TType.STRUCT, 1)
553
+ self.nullCounts.write(oprot)
554
+ oprot.writeFieldEnd()
555
+ oprot.writeFieldStop()
556
+ oprot.writeStructEnd()
557
+
558
+ def validate(self):
559
+ return
560
+
561
+ def __repr__(self):
562
+ L = ['%s=%r' % (key, value)
563
+ for key, value in self.__dict__.items()]
564
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
565
+
566
+ def __eq__(self, other):
567
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
568
+
569
+ def __ne__(self, other):
570
+ return not (self == other)
571
+
572
+
573
+ class TileSummarySeries(object):
574
+ """
575
+ Attributes:
576
+ - percentiles
577
+ - histogram
578
+ - count
579
+ - nullCount
580
+ - innerCount
581
+ - innerNullCount
582
+ - lengthPercentiles
583
+ - stringLengthPercentiles
584
+ - timestamps
585
+ - key
586
+
587
+ """
588
+ thrift_spec = None
589
+
590
+
591
+ def __init__(self, percentiles = None, histogram = None, count = None, nullCount = None, innerCount = None, innerNullCount = None, lengthPercentiles = None, stringLengthPercentiles = None, timestamps = None, key = None,):
592
+ self.percentiles = percentiles
593
+ self.histogram = histogram
594
+ self.count = count
595
+ self.nullCount = nullCount
596
+ self.innerCount = innerCount
597
+ self.innerNullCount = innerNullCount
598
+ self.lengthPercentiles = lengthPercentiles
599
+ self.stringLengthPercentiles = stringLengthPercentiles
600
+ self.timestamps = timestamps
601
+ self.key = key
602
+
603
+ def read(self, iprot):
604
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
605
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
606
+ return
607
+ iprot.readStructBegin()
608
+ while True:
609
+ (fname, ftype, fid) = iprot.readFieldBegin()
610
+ if ftype == TType.STOP:
611
+ break
612
+ if fid == 1:
613
+ if ftype == TType.LIST:
614
+ self.percentiles = []
615
+ (_etype42, _size39) = iprot.readListBegin()
616
+ for _i43 in range(_size39):
617
+ _elem44 = []
618
+ (_etype48, _size45) = iprot.readListBegin()
619
+ for _i49 in range(_size45):
620
+ _elem50 = iprot.readDouble()
621
+ _elem44.append(_elem50)
622
+ iprot.readListEnd()
623
+ self.percentiles.append(_elem44)
624
+ iprot.readListEnd()
625
+ else:
626
+ iprot.skip(ftype)
627
+ elif fid == 2:
628
+ if ftype == TType.MAP:
629
+ self.histogram = {}
630
+ (_ktype52, _vtype53, _size51) = iprot.readMapBegin()
631
+ for _i55 in range(_size51):
632
+ _key56 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
633
+ _val57 = []
634
+ (_etype61, _size58) = iprot.readListBegin()
635
+ for _i62 in range(_size58):
636
+ _elem63 = iprot.readI64()
637
+ _val57.append(_elem63)
638
+ iprot.readListEnd()
639
+ self.histogram[_key56] = _val57
640
+ iprot.readMapEnd()
641
+ else:
642
+ iprot.skip(ftype)
643
+ elif fid == 3:
644
+ if ftype == TType.LIST:
645
+ self.count = []
646
+ (_etype67, _size64) = iprot.readListBegin()
647
+ for _i68 in range(_size64):
648
+ _elem69 = iprot.readI64()
649
+ self.count.append(_elem69)
650
+ iprot.readListEnd()
651
+ else:
652
+ iprot.skip(ftype)
653
+ elif fid == 4:
654
+ if ftype == TType.LIST:
655
+ self.nullCount = []
656
+ (_etype73, _size70) = iprot.readListBegin()
657
+ for _i74 in range(_size70):
658
+ _elem75 = iprot.readI64()
659
+ self.nullCount.append(_elem75)
660
+ iprot.readListEnd()
661
+ else:
662
+ iprot.skip(ftype)
663
+ elif fid == 5:
664
+ if ftype == TType.LIST:
665
+ self.innerCount = []
666
+ (_etype79, _size76) = iprot.readListBegin()
667
+ for _i80 in range(_size76):
668
+ _elem81 = iprot.readI64()
669
+ self.innerCount.append(_elem81)
670
+ iprot.readListEnd()
671
+ else:
672
+ iprot.skip(ftype)
673
+ elif fid == 6:
674
+ if ftype == TType.LIST:
675
+ self.innerNullCount = []
676
+ (_etype85, _size82) = iprot.readListBegin()
677
+ for _i86 in range(_size82):
678
+ _elem87 = iprot.readI64()
679
+ self.innerNullCount.append(_elem87)
680
+ iprot.readListEnd()
681
+ else:
682
+ iprot.skip(ftype)
683
+ elif fid == 7:
684
+ if ftype == TType.LIST:
685
+ self.lengthPercentiles = []
686
+ (_etype91, _size88) = iprot.readListBegin()
687
+ for _i92 in range(_size88):
688
+ _elem93 = []
689
+ (_etype97, _size94) = iprot.readListBegin()
690
+ for _i98 in range(_size94):
691
+ _elem99 = iprot.readI32()
692
+ _elem93.append(_elem99)
693
+ iprot.readListEnd()
694
+ self.lengthPercentiles.append(_elem93)
695
+ iprot.readListEnd()
696
+ else:
697
+ iprot.skip(ftype)
698
+ elif fid == 8:
699
+ if ftype == TType.LIST:
700
+ self.stringLengthPercentiles = []
701
+ (_etype103, _size100) = iprot.readListBegin()
702
+ for _i104 in range(_size100):
703
+ _elem105 = []
704
+ (_etype109, _size106) = iprot.readListBegin()
705
+ for _i110 in range(_size106):
706
+ _elem111 = iprot.readI32()
707
+ _elem105.append(_elem111)
708
+ iprot.readListEnd()
709
+ self.stringLengthPercentiles.append(_elem105)
710
+ iprot.readListEnd()
711
+ else:
712
+ iprot.skip(ftype)
713
+ elif fid == 200:
714
+ if ftype == TType.LIST:
715
+ self.timestamps = []
716
+ (_etype115, _size112) = iprot.readListBegin()
717
+ for _i116 in range(_size112):
718
+ _elem117 = iprot.readI64()
719
+ self.timestamps.append(_elem117)
720
+ iprot.readListEnd()
721
+ else:
722
+ iprot.skip(ftype)
723
+ elif fid == 300:
724
+ if ftype == TType.STRUCT:
725
+ self.key = TileSummaryKey()
726
+ self.key.read(iprot)
727
+ else:
728
+ iprot.skip(ftype)
729
+ else:
730
+ iprot.skip(ftype)
731
+ iprot.readFieldEnd()
732
+ iprot.readStructEnd()
733
+
734
+ def write(self, oprot):
735
+ self.validate()
736
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
737
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
738
+ return
739
+ oprot.writeStructBegin('TileSummarySeries')
740
+ if self.percentiles is not None:
741
+ oprot.writeFieldBegin('percentiles', TType.LIST, 1)
742
+ oprot.writeListBegin(TType.LIST, len(self.percentiles))
743
+ for iter118 in self.percentiles:
744
+ oprot.writeListBegin(TType.DOUBLE, len(iter118))
745
+ for iter119 in iter118:
746
+ oprot.writeDouble(iter119)
747
+ oprot.writeListEnd()
748
+ oprot.writeListEnd()
749
+ oprot.writeFieldEnd()
750
+ if self.histogram is not None:
751
+ oprot.writeFieldBegin('histogram', TType.MAP, 2)
752
+ oprot.writeMapBegin(TType.STRING, TType.LIST, len(self.histogram))
753
+ for kiter120, viter121 in self.histogram.items():
754
+ oprot.writeString(kiter120.encode('utf-8') if sys.version_info[0] == 2 else kiter120)
755
+ oprot.writeListBegin(TType.I64, len(viter121))
756
+ for iter122 in viter121:
757
+ oprot.writeI64(iter122)
758
+ oprot.writeListEnd()
759
+ oprot.writeMapEnd()
760
+ oprot.writeFieldEnd()
761
+ if self.count is not None:
762
+ oprot.writeFieldBegin('count', TType.LIST, 3)
763
+ oprot.writeListBegin(TType.I64, len(self.count))
764
+ for iter123 in self.count:
765
+ oprot.writeI64(iter123)
766
+ oprot.writeListEnd()
767
+ oprot.writeFieldEnd()
768
+ if self.nullCount is not None:
769
+ oprot.writeFieldBegin('nullCount', TType.LIST, 4)
770
+ oprot.writeListBegin(TType.I64, len(self.nullCount))
771
+ for iter124 in self.nullCount:
772
+ oprot.writeI64(iter124)
773
+ oprot.writeListEnd()
774
+ oprot.writeFieldEnd()
775
+ if self.innerCount is not None:
776
+ oprot.writeFieldBegin('innerCount', TType.LIST, 5)
777
+ oprot.writeListBegin(TType.I64, len(self.innerCount))
778
+ for iter125 in self.innerCount:
779
+ oprot.writeI64(iter125)
780
+ oprot.writeListEnd()
781
+ oprot.writeFieldEnd()
782
+ if self.innerNullCount is not None:
783
+ oprot.writeFieldBegin('innerNullCount', TType.LIST, 6)
784
+ oprot.writeListBegin(TType.I64, len(self.innerNullCount))
785
+ for iter126 in self.innerNullCount:
786
+ oprot.writeI64(iter126)
787
+ oprot.writeListEnd()
788
+ oprot.writeFieldEnd()
789
+ if self.lengthPercentiles is not None:
790
+ oprot.writeFieldBegin('lengthPercentiles', TType.LIST, 7)
791
+ oprot.writeListBegin(TType.LIST, len(self.lengthPercentiles))
792
+ for iter127 in self.lengthPercentiles:
793
+ oprot.writeListBegin(TType.I32, len(iter127))
794
+ for iter128 in iter127:
795
+ oprot.writeI32(iter128)
796
+ oprot.writeListEnd()
797
+ oprot.writeListEnd()
798
+ oprot.writeFieldEnd()
799
+ if self.stringLengthPercentiles is not None:
800
+ oprot.writeFieldBegin('stringLengthPercentiles', TType.LIST, 8)
801
+ oprot.writeListBegin(TType.LIST, len(self.stringLengthPercentiles))
802
+ for iter129 in self.stringLengthPercentiles:
803
+ oprot.writeListBegin(TType.I32, len(iter129))
804
+ for iter130 in iter129:
805
+ oprot.writeI32(iter130)
806
+ oprot.writeListEnd()
807
+ oprot.writeListEnd()
808
+ oprot.writeFieldEnd()
809
+ if self.timestamps is not None:
810
+ oprot.writeFieldBegin('timestamps', TType.LIST, 200)
811
+ oprot.writeListBegin(TType.I64, len(self.timestamps))
812
+ for iter131 in self.timestamps:
813
+ oprot.writeI64(iter131)
814
+ oprot.writeListEnd()
815
+ oprot.writeFieldEnd()
816
+ if self.key is not None:
817
+ oprot.writeFieldBegin('key', TType.STRUCT, 300)
818
+ self.key.write(oprot)
819
+ oprot.writeFieldEnd()
820
+ oprot.writeFieldStop()
821
+ oprot.writeStructEnd()
822
+
823
+ def validate(self):
824
+ return
825
+
826
+ def __repr__(self):
827
+ L = ['%s=%r' % (key, value)
828
+ for key, value in self.__dict__.items()]
829
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
830
+
831
+ def __eq__(self, other):
832
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
833
+
834
+ def __ne__(self, other):
835
+ return not (self == other)
836
+
837
+
838
+ class TileDrift(object):
839
+ """
840
+ Attributes:
841
+ - percentileDrift
842
+ - histogramDrift
843
+ - countChangePercent
844
+ - nullRatioChangePercent
845
+ - innerCountChangePercent
846
+ - innerNullCountChangePercent
847
+ - lengthPercentilesDrift
848
+ - stringLengthPercentilesDrift
849
+
850
+ """
851
+ thrift_spec = None
852
+
853
+
854
+ def __init__(self, percentileDrift = None, histogramDrift = None, countChangePercent = None, nullRatioChangePercent = None, innerCountChangePercent = None, innerNullCountChangePercent = None, lengthPercentilesDrift = None, stringLengthPercentilesDrift = None,):
855
+ self.percentileDrift = percentileDrift
856
+ self.histogramDrift = histogramDrift
857
+ self.countChangePercent = countChangePercent
858
+ self.nullRatioChangePercent = nullRatioChangePercent
859
+ self.innerCountChangePercent = innerCountChangePercent
860
+ self.innerNullCountChangePercent = innerNullCountChangePercent
861
+ self.lengthPercentilesDrift = lengthPercentilesDrift
862
+ self.stringLengthPercentilesDrift = stringLengthPercentilesDrift
863
+
864
+ def read(self, iprot):
865
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
866
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
867
+ return
868
+ iprot.readStructBegin()
869
+ while True:
870
+ (fname, ftype, fid) = iprot.readFieldBegin()
871
+ if ftype == TType.STOP:
872
+ break
873
+ if fid == 1:
874
+ if ftype == TType.DOUBLE:
875
+ self.percentileDrift = iprot.readDouble()
876
+ else:
877
+ iprot.skip(ftype)
878
+ elif fid == 2:
879
+ if ftype == TType.DOUBLE:
880
+ self.histogramDrift = iprot.readDouble()
881
+ else:
882
+ iprot.skip(ftype)
883
+ elif fid == 3:
884
+ if ftype == TType.DOUBLE:
885
+ self.countChangePercent = iprot.readDouble()
886
+ else:
887
+ iprot.skip(ftype)
888
+ elif fid == 4:
889
+ if ftype == TType.DOUBLE:
890
+ self.nullRatioChangePercent = iprot.readDouble()
891
+ else:
892
+ iprot.skip(ftype)
893
+ elif fid == 5:
894
+ if ftype == TType.DOUBLE:
895
+ self.innerCountChangePercent = iprot.readDouble()
896
+ else:
897
+ iprot.skip(ftype)
898
+ elif fid == 6:
899
+ if ftype == TType.DOUBLE:
900
+ self.innerNullCountChangePercent = iprot.readDouble()
901
+ else:
902
+ iprot.skip(ftype)
903
+ elif fid == 7:
904
+ if ftype == TType.DOUBLE:
905
+ self.lengthPercentilesDrift = iprot.readDouble()
906
+ else:
907
+ iprot.skip(ftype)
908
+ elif fid == 8:
909
+ if ftype == TType.DOUBLE:
910
+ self.stringLengthPercentilesDrift = iprot.readDouble()
911
+ else:
912
+ iprot.skip(ftype)
913
+ else:
914
+ iprot.skip(ftype)
915
+ iprot.readFieldEnd()
916
+ iprot.readStructEnd()
917
+
918
+ def write(self, oprot):
919
+ self.validate()
920
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
921
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
922
+ return
923
+ oprot.writeStructBegin('TileDrift')
924
+ if self.percentileDrift is not None:
925
+ oprot.writeFieldBegin('percentileDrift', TType.DOUBLE, 1)
926
+ oprot.writeDouble(self.percentileDrift)
927
+ oprot.writeFieldEnd()
928
+ if self.histogramDrift is not None:
929
+ oprot.writeFieldBegin('histogramDrift', TType.DOUBLE, 2)
930
+ oprot.writeDouble(self.histogramDrift)
931
+ oprot.writeFieldEnd()
932
+ if self.countChangePercent is not None:
933
+ oprot.writeFieldBegin('countChangePercent', TType.DOUBLE, 3)
934
+ oprot.writeDouble(self.countChangePercent)
935
+ oprot.writeFieldEnd()
936
+ if self.nullRatioChangePercent is not None:
937
+ oprot.writeFieldBegin('nullRatioChangePercent', TType.DOUBLE, 4)
938
+ oprot.writeDouble(self.nullRatioChangePercent)
939
+ oprot.writeFieldEnd()
940
+ if self.innerCountChangePercent is not None:
941
+ oprot.writeFieldBegin('innerCountChangePercent', TType.DOUBLE, 5)
942
+ oprot.writeDouble(self.innerCountChangePercent)
943
+ oprot.writeFieldEnd()
944
+ if self.innerNullCountChangePercent is not None:
945
+ oprot.writeFieldBegin('innerNullCountChangePercent', TType.DOUBLE, 6)
946
+ oprot.writeDouble(self.innerNullCountChangePercent)
947
+ oprot.writeFieldEnd()
948
+ if self.lengthPercentilesDrift is not None:
949
+ oprot.writeFieldBegin('lengthPercentilesDrift', TType.DOUBLE, 7)
950
+ oprot.writeDouble(self.lengthPercentilesDrift)
951
+ oprot.writeFieldEnd()
952
+ if self.stringLengthPercentilesDrift is not None:
953
+ oprot.writeFieldBegin('stringLengthPercentilesDrift', TType.DOUBLE, 8)
954
+ oprot.writeDouble(self.stringLengthPercentilesDrift)
955
+ oprot.writeFieldEnd()
956
+ oprot.writeFieldStop()
957
+ oprot.writeStructEnd()
958
+
959
+ def validate(self):
960
+ return
961
+
962
+ def __repr__(self):
963
+ L = ['%s=%r' % (key, value)
964
+ for key, value in self.__dict__.items()]
965
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
966
+
967
+ def __eq__(self, other):
968
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
969
+
970
+ def __ne__(self, other):
971
+ return not (self == other)
972
+
973
+
974
+ class TileDriftSeries(object):
975
+ """
976
+ Attributes:
977
+ - percentileDriftSeries
978
+ - histogramDriftSeries
979
+ - countChangePercentSeries
980
+ - nullRatioChangePercentSeries
981
+ - innerCountChangePercentSeries
982
+ - innerNullCountChangePercentSeries
983
+ - lengthPercentilesDriftSeries
984
+ - stringLengthPercentilesDriftSeries
985
+ - timestamps
986
+ - key
987
+
988
+ """
989
+ thrift_spec = None
990
+
991
+
992
+ def __init__(self, percentileDriftSeries = None, histogramDriftSeries = None, countChangePercentSeries = None, nullRatioChangePercentSeries = None, innerCountChangePercentSeries = None, innerNullCountChangePercentSeries = None, lengthPercentilesDriftSeries = None, stringLengthPercentilesDriftSeries = None, timestamps = None, key = None,):
993
+ self.percentileDriftSeries = percentileDriftSeries
994
+ self.histogramDriftSeries = histogramDriftSeries
995
+ self.countChangePercentSeries = countChangePercentSeries
996
+ self.nullRatioChangePercentSeries = nullRatioChangePercentSeries
997
+ self.innerCountChangePercentSeries = innerCountChangePercentSeries
998
+ self.innerNullCountChangePercentSeries = innerNullCountChangePercentSeries
999
+ self.lengthPercentilesDriftSeries = lengthPercentilesDriftSeries
1000
+ self.stringLengthPercentilesDriftSeries = stringLengthPercentilesDriftSeries
1001
+ self.timestamps = timestamps
1002
+ self.key = key
1003
+
1004
+ def read(self, iprot):
1005
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
1006
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
1007
+ return
1008
+ iprot.readStructBegin()
1009
+ while True:
1010
+ (fname, ftype, fid) = iprot.readFieldBegin()
1011
+ if ftype == TType.STOP:
1012
+ break
1013
+ if fid == 1:
1014
+ if ftype == TType.LIST:
1015
+ self.percentileDriftSeries = []
1016
+ (_etype135, _size132) = iprot.readListBegin()
1017
+ for _i136 in range(_size132):
1018
+ _elem137 = iprot.readDouble()
1019
+ self.percentileDriftSeries.append(_elem137)
1020
+ iprot.readListEnd()
1021
+ else:
1022
+ iprot.skip(ftype)
1023
+ elif fid == 2:
1024
+ if ftype == TType.LIST:
1025
+ self.histogramDriftSeries = []
1026
+ (_etype141, _size138) = iprot.readListBegin()
1027
+ for _i142 in range(_size138):
1028
+ _elem143 = iprot.readDouble()
1029
+ self.histogramDriftSeries.append(_elem143)
1030
+ iprot.readListEnd()
1031
+ else:
1032
+ iprot.skip(ftype)
1033
+ elif fid == 3:
1034
+ if ftype == TType.LIST:
1035
+ self.countChangePercentSeries = []
1036
+ (_etype147, _size144) = iprot.readListBegin()
1037
+ for _i148 in range(_size144):
1038
+ _elem149 = iprot.readDouble()
1039
+ self.countChangePercentSeries.append(_elem149)
1040
+ iprot.readListEnd()
1041
+ else:
1042
+ iprot.skip(ftype)
1043
+ elif fid == 4:
1044
+ if ftype == TType.LIST:
1045
+ self.nullRatioChangePercentSeries = []
1046
+ (_etype153, _size150) = iprot.readListBegin()
1047
+ for _i154 in range(_size150):
1048
+ _elem155 = iprot.readDouble()
1049
+ self.nullRatioChangePercentSeries.append(_elem155)
1050
+ iprot.readListEnd()
1051
+ else:
1052
+ iprot.skip(ftype)
1053
+ elif fid == 5:
1054
+ if ftype == TType.LIST:
1055
+ self.innerCountChangePercentSeries = []
1056
+ (_etype159, _size156) = iprot.readListBegin()
1057
+ for _i160 in range(_size156):
1058
+ _elem161 = iprot.readDouble()
1059
+ self.innerCountChangePercentSeries.append(_elem161)
1060
+ iprot.readListEnd()
1061
+ else:
1062
+ iprot.skip(ftype)
1063
+ elif fid == 6:
1064
+ if ftype == TType.LIST:
1065
+ self.innerNullCountChangePercentSeries = []
1066
+ (_etype165, _size162) = iprot.readListBegin()
1067
+ for _i166 in range(_size162):
1068
+ _elem167 = iprot.readDouble()
1069
+ self.innerNullCountChangePercentSeries.append(_elem167)
1070
+ iprot.readListEnd()
1071
+ else:
1072
+ iprot.skip(ftype)
1073
+ elif fid == 7:
1074
+ if ftype == TType.LIST:
1075
+ self.lengthPercentilesDriftSeries = []
1076
+ (_etype171, _size168) = iprot.readListBegin()
1077
+ for _i172 in range(_size168):
1078
+ _elem173 = iprot.readDouble()
1079
+ self.lengthPercentilesDriftSeries.append(_elem173)
1080
+ iprot.readListEnd()
1081
+ else:
1082
+ iprot.skip(ftype)
1083
+ elif fid == 8:
1084
+ if ftype == TType.LIST:
1085
+ self.stringLengthPercentilesDriftSeries = []
1086
+ (_etype177, _size174) = iprot.readListBegin()
1087
+ for _i178 in range(_size174):
1088
+ _elem179 = iprot.readDouble()
1089
+ self.stringLengthPercentilesDriftSeries.append(_elem179)
1090
+ iprot.readListEnd()
1091
+ else:
1092
+ iprot.skip(ftype)
1093
+ elif fid == 200:
1094
+ if ftype == TType.LIST:
1095
+ self.timestamps = []
1096
+ (_etype183, _size180) = iprot.readListBegin()
1097
+ for _i184 in range(_size180):
1098
+ _elem185 = iprot.readI64()
1099
+ self.timestamps.append(_elem185)
1100
+ iprot.readListEnd()
1101
+ else:
1102
+ iprot.skip(ftype)
1103
+ elif fid == 300:
1104
+ if ftype == TType.STRUCT:
1105
+ self.key = TileSeriesKey()
1106
+ self.key.read(iprot)
1107
+ else:
1108
+ iprot.skip(ftype)
1109
+ else:
1110
+ iprot.skip(ftype)
1111
+ iprot.readFieldEnd()
1112
+ iprot.readStructEnd()
1113
+
1114
+ def write(self, oprot):
1115
+ self.validate()
1116
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
1117
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
1118
+ return
1119
+ oprot.writeStructBegin('TileDriftSeries')
1120
+ if self.percentileDriftSeries is not None:
1121
+ oprot.writeFieldBegin('percentileDriftSeries', TType.LIST, 1)
1122
+ oprot.writeListBegin(TType.DOUBLE, len(self.percentileDriftSeries))
1123
+ for iter186 in self.percentileDriftSeries:
1124
+ oprot.writeDouble(iter186)
1125
+ oprot.writeListEnd()
1126
+ oprot.writeFieldEnd()
1127
+ if self.histogramDriftSeries is not None:
1128
+ oprot.writeFieldBegin('histogramDriftSeries', TType.LIST, 2)
1129
+ oprot.writeListBegin(TType.DOUBLE, len(self.histogramDriftSeries))
1130
+ for iter187 in self.histogramDriftSeries:
1131
+ oprot.writeDouble(iter187)
1132
+ oprot.writeListEnd()
1133
+ oprot.writeFieldEnd()
1134
+ if self.countChangePercentSeries is not None:
1135
+ oprot.writeFieldBegin('countChangePercentSeries', TType.LIST, 3)
1136
+ oprot.writeListBegin(TType.DOUBLE, len(self.countChangePercentSeries))
1137
+ for iter188 in self.countChangePercentSeries:
1138
+ oprot.writeDouble(iter188)
1139
+ oprot.writeListEnd()
1140
+ oprot.writeFieldEnd()
1141
+ if self.nullRatioChangePercentSeries is not None:
1142
+ oprot.writeFieldBegin('nullRatioChangePercentSeries', TType.LIST, 4)
1143
+ oprot.writeListBegin(TType.DOUBLE, len(self.nullRatioChangePercentSeries))
1144
+ for iter189 in self.nullRatioChangePercentSeries:
1145
+ oprot.writeDouble(iter189)
1146
+ oprot.writeListEnd()
1147
+ oprot.writeFieldEnd()
1148
+ if self.innerCountChangePercentSeries is not None:
1149
+ oprot.writeFieldBegin('innerCountChangePercentSeries', TType.LIST, 5)
1150
+ oprot.writeListBegin(TType.DOUBLE, len(self.innerCountChangePercentSeries))
1151
+ for iter190 in self.innerCountChangePercentSeries:
1152
+ oprot.writeDouble(iter190)
1153
+ oprot.writeListEnd()
1154
+ oprot.writeFieldEnd()
1155
+ if self.innerNullCountChangePercentSeries is not None:
1156
+ oprot.writeFieldBegin('innerNullCountChangePercentSeries', TType.LIST, 6)
1157
+ oprot.writeListBegin(TType.DOUBLE, len(self.innerNullCountChangePercentSeries))
1158
+ for iter191 in self.innerNullCountChangePercentSeries:
1159
+ oprot.writeDouble(iter191)
1160
+ oprot.writeListEnd()
1161
+ oprot.writeFieldEnd()
1162
+ if self.lengthPercentilesDriftSeries is not None:
1163
+ oprot.writeFieldBegin('lengthPercentilesDriftSeries', TType.LIST, 7)
1164
+ oprot.writeListBegin(TType.DOUBLE, len(self.lengthPercentilesDriftSeries))
1165
+ for iter192 in self.lengthPercentilesDriftSeries:
1166
+ oprot.writeDouble(iter192)
1167
+ oprot.writeListEnd()
1168
+ oprot.writeFieldEnd()
1169
+ if self.stringLengthPercentilesDriftSeries is not None:
1170
+ oprot.writeFieldBegin('stringLengthPercentilesDriftSeries', TType.LIST, 8)
1171
+ oprot.writeListBegin(TType.DOUBLE, len(self.stringLengthPercentilesDriftSeries))
1172
+ for iter193 in self.stringLengthPercentilesDriftSeries:
1173
+ oprot.writeDouble(iter193)
1174
+ oprot.writeListEnd()
1175
+ oprot.writeFieldEnd()
1176
+ if self.timestamps is not None:
1177
+ oprot.writeFieldBegin('timestamps', TType.LIST, 200)
1178
+ oprot.writeListBegin(TType.I64, len(self.timestamps))
1179
+ for iter194 in self.timestamps:
1180
+ oprot.writeI64(iter194)
1181
+ oprot.writeListEnd()
1182
+ oprot.writeFieldEnd()
1183
+ if self.key is not None:
1184
+ oprot.writeFieldBegin('key', TType.STRUCT, 300)
1185
+ self.key.write(oprot)
1186
+ oprot.writeFieldEnd()
1187
+ oprot.writeFieldStop()
1188
+ oprot.writeStructEnd()
1189
+
1190
+ def validate(self):
1191
+ return
1192
+
1193
+ def __repr__(self):
1194
+ L = ['%s=%r' % (key, value)
1195
+ for key, value in self.__dict__.items()]
1196
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
1197
+
1198
+ def __eq__(self, other):
1199
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
1200
+
1201
+ def __ne__(self, other):
1202
+ return not (self == other)
1203
+
1204
+
1205
+ class DriftSpec(object):
1206
+ """
1207
+ Attributes:
1208
+ - slices
1209
+ - derivations
1210
+ - columnCardinalityHints
1211
+ - tileSize
1212
+ - lookbackWindows
1213
+ - driftMetric
1214
+
1215
+ """
1216
+ thrift_spec = None
1217
+
1218
+
1219
+ def __init__(self, slices = None, derivations = None, columnCardinalityHints = None, tileSize = None, lookbackWindows = None, driftMetric = 0,):
1220
+ self.slices = slices
1221
+ self.derivations = derivations
1222
+ self.columnCardinalityHints = columnCardinalityHints
1223
+ self.tileSize = tileSize
1224
+ self.lookbackWindows = lookbackWindows
1225
+ self.driftMetric = driftMetric
1226
+
1227
+ def read(self, iprot):
1228
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
1229
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
1230
+ return
1231
+ iprot.readStructBegin()
1232
+ while True:
1233
+ (fname, ftype, fid) = iprot.readFieldBegin()
1234
+ if ftype == TType.STOP:
1235
+ break
1236
+ if fid == 1:
1237
+ if ftype == TType.LIST:
1238
+ self.slices = []
1239
+ (_etype198, _size195) = iprot.readListBegin()
1240
+ for _i199 in range(_size195):
1241
+ _elem200 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
1242
+ self.slices.append(_elem200)
1243
+ iprot.readListEnd()
1244
+ else:
1245
+ iprot.skip(ftype)
1246
+ elif fid == 2:
1247
+ if ftype == TType.MAP:
1248
+ self.derivations = {}
1249
+ (_ktype202, _vtype203, _size201) = iprot.readMapBegin()
1250
+ for _i205 in range(_size201):
1251
+ _key206 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
1252
+ _val207 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
1253
+ self.derivations[_key206] = _val207
1254
+ iprot.readMapEnd()
1255
+ else:
1256
+ iprot.skip(ftype)
1257
+ elif fid == 3:
1258
+ if ftype == TType.MAP:
1259
+ self.columnCardinalityHints = {}
1260
+ (_ktype209, _vtype210, _size208) = iprot.readMapBegin()
1261
+ for _i212 in range(_size208):
1262
+ _key213 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
1263
+ _val214 = iprot.readI32()
1264
+ self.columnCardinalityHints[_key213] = _val214
1265
+ iprot.readMapEnd()
1266
+ else:
1267
+ iprot.skip(ftype)
1268
+ elif fid == 4:
1269
+ if ftype == TType.STRUCT:
1270
+ self.tileSize = gen_thrift.common.ttypes.Window()
1271
+ self.tileSize.read(iprot)
1272
+ else:
1273
+ iprot.skip(ftype)
1274
+ elif fid == 5:
1275
+ if ftype == TType.LIST:
1276
+ self.lookbackWindows = []
1277
+ (_etype218, _size215) = iprot.readListBegin()
1278
+ for _i219 in range(_size215):
1279
+ _elem220 = gen_thrift.common.ttypes.Window()
1280
+ _elem220.read(iprot)
1281
+ self.lookbackWindows.append(_elem220)
1282
+ iprot.readListEnd()
1283
+ else:
1284
+ iprot.skip(ftype)
1285
+ elif fid == 6:
1286
+ if ftype == TType.I32:
1287
+ self.driftMetric = iprot.readI32()
1288
+ else:
1289
+ iprot.skip(ftype)
1290
+ else:
1291
+ iprot.skip(ftype)
1292
+ iprot.readFieldEnd()
1293
+ iprot.readStructEnd()
1294
+
1295
+ def write(self, oprot):
1296
+ self.validate()
1297
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
1298
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
1299
+ return
1300
+ oprot.writeStructBegin('DriftSpec')
1301
+ if self.slices is not None:
1302
+ oprot.writeFieldBegin('slices', TType.LIST, 1)
1303
+ oprot.writeListBegin(TType.STRING, len(self.slices))
1304
+ for iter221 in self.slices:
1305
+ oprot.writeString(iter221.encode('utf-8') if sys.version_info[0] == 2 else iter221)
1306
+ oprot.writeListEnd()
1307
+ oprot.writeFieldEnd()
1308
+ if self.derivations is not None:
1309
+ oprot.writeFieldBegin('derivations', TType.MAP, 2)
1310
+ oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.derivations))
1311
+ for kiter222, viter223 in self.derivations.items():
1312
+ oprot.writeString(kiter222.encode('utf-8') if sys.version_info[0] == 2 else kiter222)
1313
+ oprot.writeString(viter223.encode('utf-8') if sys.version_info[0] == 2 else viter223)
1314
+ oprot.writeMapEnd()
1315
+ oprot.writeFieldEnd()
1316
+ if self.columnCardinalityHints is not None:
1317
+ oprot.writeFieldBegin('columnCardinalityHints', TType.MAP, 3)
1318
+ oprot.writeMapBegin(TType.STRING, TType.I32, len(self.columnCardinalityHints))
1319
+ for kiter224, viter225 in self.columnCardinalityHints.items():
1320
+ oprot.writeString(kiter224.encode('utf-8') if sys.version_info[0] == 2 else kiter224)
1321
+ oprot.writeI32(viter225)
1322
+ oprot.writeMapEnd()
1323
+ oprot.writeFieldEnd()
1324
+ if self.tileSize is not None:
1325
+ oprot.writeFieldBegin('tileSize', TType.STRUCT, 4)
1326
+ self.tileSize.write(oprot)
1327
+ oprot.writeFieldEnd()
1328
+ if self.lookbackWindows is not None:
1329
+ oprot.writeFieldBegin('lookbackWindows', TType.LIST, 5)
1330
+ oprot.writeListBegin(TType.STRUCT, len(self.lookbackWindows))
1331
+ for iter226 in self.lookbackWindows:
1332
+ iter226.write(oprot)
1333
+ oprot.writeListEnd()
1334
+ oprot.writeFieldEnd()
1335
+ if self.driftMetric is not None:
1336
+ oprot.writeFieldBegin('driftMetric', TType.I32, 6)
1337
+ oprot.writeI32(self.driftMetric)
1338
+ oprot.writeFieldEnd()
1339
+ oprot.writeFieldStop()
1340
+ oprot.writeStructEnd()
1341
+
1342
+ def validate(self):
1343
+ return
1344
+
1345
+ def __repr__(self):
1346
+ L = ['%s=%r' % (key, value)
1347
+ for key, value in self.__dict__.items()]
1348
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
1349
+
1350
+ def __eq__(self, other):
1351
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
1352
+
1353
+ def __ne__(self, other):
1354
+ return not (self == other)
1355
+
1356
+
1357
+ class JoinDriftRequest(object):
1358
+ """
1359
+ Attributes:
1360
+ - name
1361
+ - startTs
1362
+ - endTs
1363
+ - offset
1364
+ - algorithm
1365
+ - columnName
1366
+
1367
+ """
1368
+ thrift_spec = None
1369
+
1370
+
1371
+ def __init__(self, name = None, startTs = None, endTs = None, offset = None, algorithm = None, columnName = None,):
1372
+ self.name = name
1373
+ self.startTs = startTs
1374
+ self.endTs = endTs
1375
+ self.offset = offset
1376
+ self.algorithm = algorithm
1377
+ self.columnName = columnName
1378
+
1379
+ def read(self, iprot):
1380
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
1381
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
1382
+ return
1383
+ iprot.readStructBegin()
1384
+ while True:
1385
+ (fname, ftype, fid) = iprot.readFieldBegin()
1386
+ if ftype == TType.STOP:
1387
+ break
1388
+ if fid == 1:
1389
+ if ftype == TType.STRING:
1390
+ self.name = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
1391
+ else:
1392
+ iprot.skip(ftype)
1393
+ elif fid == 2:
1394
+ if ftype == TType.I64:
1395
+ self.startTs = iprot.readI64()
1396
+ else:
1397
+ iprot.skip(ftype)
1398
+ elif fid == 3:
1399
+ if ftype == TType.I64:
1400
+ self.endTs = iprot.readI64()
1401
+ else:
1402
+ iprot.skip(ftype)
1403
+ elif fid == 6:
1404
+ if ftype == TType.STRING:
1405
+ self.offset = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
1406
+ else:
1407
+ iprot.skip(ftype)
1408
+ elif fid == 7:
1409
+ if ftype == TType.I32:
1410
+ self.algorithm = iprot.readI32()
1411
+ else:
1412
+ iprot.skip(ftype)
1413
+ elif fid == 8:
1414
+ if ftype == TType.STRING:
1415
+ self.columnName = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
1416
+ else:
1417
+ iprot.skip(ftype)
1418
+ else:
1419
+ iprot.skip(ftype)
1420
+ iprot.readFieldEnd()
1421
+ iprot.readStructEnd()
1422
+
1423
+ def write(self, oprot):
1424
+ self.validate()
1425
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
1426
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
1427
+ return
1428
+ oprot.writeStructBegin('JoinDriftRequest')
1429
+ if self.name is not None:
1430
+ oprot.writeFieldBegin('name', TType.STRING, 1)
1431
+ oprot.writeString(self.name.encode('utf-8') if sys.version_info[0] == 2 else self.name)
1432
+ oprot.writeFieldEnd()
1433
+ if self.startTs is not None:
1434
+ oprot.writeFieldBegin('startTs', TType.I64, 2)
1435
+ oprot.writeI64(self.startTs)
1436
+ oprot.writeFieldEnd()
1437
+ if self.endTs is not None:
1438
+ oprot.writeFieldBegin('endTs', TType.I64, 3)
1439
+ oprot.writeI64(self.endTs)
1440
+ oprot.writeFieldEnd()
1441
+ if self.offset is not None:
1442
+ oprot.writeFieldBegin('offset', TType.STRING, 6)
1443
+ oprot.writeString(self.offset.encode('utf-8') if sys.version_info[0] == 2 else self.offset)
1444
+ oprot.writeFieldEnd()
1445
+ if self.algorithm is not None:
1446
+ oprot.writeFieldBegin('algorithm', TType.I32, 7)
1447
+ oprot.writeI32(self.algorithm)
1448
+ oprot.writeFieldEnd()
1449
+ if self.columnName is not None:
1450
+ oprot.writeFieldBegin('columnName', TType.STRING, 8)
1451
+ oprot.writeString(self.columnName.encode('utf-8') if sys.version_info[0] == 2 else self.columnName)
1452
+ oprot.writeFieldEnd()
1453
+ oprot.writeFieldStop()
1454
+ oprot.writeStructEnd()
1455
+
1456
+ def validate(self):
1457
+ if self.name is None:
1458
+ raise TProtocolException(message='Required field name is unset!')
1459
+ if self.startTs is None:
1460
+ raise TProtocolException(message='Required field startTs is unset!')
1461
+ if self.endTs is None:
1462
+ raise TProtocolException(message='Required field endTs is unset!')
1463
+ return
1464
+
1465
+ def __repr__(self):
1466
+ L = ['%s=%r' % (key, value)
1467
+ for key, value in self.__dict__.items()]
1468
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
1469
+
1470
+ def __eq__(self, other):
1471
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
1472
+
1473
+ def __ne__(self, other):
1474
+ return not (self == other)
1475
+
1476
+
1477
+ class JoinDriftResponse(object):
1478
+ """
1479
+ Attributes:
1480
+ - driftSeries
1481
+
1482
+ """
1483
+ thrift_spec = None
1484
+
1485
+
1486
+ def __init__(self, driftSeries = None,):
1487
+ self.driftSeries = driftSeries
1488
+
1489
+ def read(self, iprot):
1490
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
1491
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
1492
+ return
1493
+ iprot.readStructBegin()
1494
+ while True:
1495
+ (fname, ftype, fid) = iprot.readFieldBegin()
1496
+ if ftype == TType.STOP:
1497
+ break
1498
+ if fid == 1:
1499
+ if ftype == TType.LIST:
1500
+ self.driftSeries = []
1501
+ (_etype230, _size227) = iprot.readListBegin()
1502
+ for _i231 in range(_size227):
1503
+ _elem232 = TileDriftSeries()
1504
+ _elem232.read(iprot)
1505
+ self.driftSeries.append(_elem232)
1506
+ iprot.readListEnd()
1507
+ else:
1508
+ iprot.skip(ftype)
1509
+ else:
1510
+ iprot.skip(ftype)
1511
+ iprot.readFieldEnd()
1512
+ iprot.readStructEnd()
1513
+
1514
+ def write(self, oprot):
1515
+ self.validate()
1516
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
1517
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
1518
+ return
1519
+ oprot.writeStructBegin('JoinDriftResponse')
1520
+ if self.driftSeries is not None:
1521
+ oprot.writeFieldBegin('driftSeries', TType.LIST, 1)
1522
+ oprot.writeListBegin(TType.STRUCT, len(self.driftSeries))
1523
+ for iter233 in self.driftSeries:
1524
+ iter233.write(oprot)
1525
+ oprot.writeListEnd()
1526
+ oprot.writeFieldEnd()
1527
+ oprot.writeFieldStop()
1528
+ oprot.writeStructEnd()
1529
+
1530
+ def validate(self):
1531
+ if self.driftSeries is None:
1532
+ raise TProtocolException(message='Required field driftSeries is unset!')
1533
+ return
1534
+
1535
+ def __repr__(self):
1536
+ L = ['%s=%r' % (key, value)
1537
+ for key, value in self.__dict__.items()]
1538
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
1539
+
1540
+ def __eq__(self, other):
1541
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
1542
+
1543
+ def __ne__(self, other):
1544
+ return not (self == other)
1545
+
1546
+
1547
+ class JoinSummaryRequest(object):
1548
+ """
1549
+ Attributes:
1550
+ - name
1551
+ - startTs
1552
+ - endTs
1553
+ - percentiles
1554
+ - columnName
1555
+
1556
+ """
1557
+ thrift_spec = None
1558
+
1559
+
1560
+ def __init__(self, name = None, startTs = None, endTs = None, percentiles = None, columnName = None,):
1561
+ self.name = name
1562
+ self.startTs = startTs
1563
+ self.endTs = endTs
1564
+ self.percentiles = percentiles
1565
+ self.columnName = columnName
1566
+
1567
+ def read(self, iprot):
1568
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
1569
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
1570
+ return
1571
+ iprot.readStructBegin()
1572
+ while True:
1573
+ (fname, ftype, fid) = iprot.readFieldBegin()
1574
+ if ftype == TType.STOP:
1575
+ break
1576
+ if fid == 1:
1577
+ if ftype == TType.STRING:
1578
+ self.name = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
1579
+ else:
1580
+ iprot.skip(ftype)
1581
+ elif fid == 2:
1582
+ if ftype == TType.I64:
1583
+ self.startTs = iprot.readI64()
1584
+ else:
1585
+ iprot.skip(ftype)
1586
+ elif fid == 3:
1587
+ if ftype == TType.I64:
1588
+ self.endTs = iprot.readI64()
1589
+ else:
1590
+ iprot.skip(ftype)
1591
+ elif fid == 5:
1592
+ if ftype == TType.STRING:
1593
+ self.percentiles = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
1594
+ else:
1595
+ iprot.skip(ftype)
1596
+ elif fid == 8:
1597
+ if ftype == TType.STRING:
1598
+ self.columnName = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
1599
+ else:
1600
+ iprot.skip(ftype)
1601
+ else:
1602
+ iprot.skip(ftype)
1603
+ iprot.readFieldEnd()
1604
+ iprot.readStructEnd()
1605
+
1606
+ def write(self, oprot):
1607
+ self.validate()
1608
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
1609
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
1610
+ return
1611
+ oprot.writeStructBegin('JoinSummaryRequest')
1612
+ if self.name is not None:
1613
+ oprot.writeFieldBegin('name', TType.STRING, 1)
1614
+ oprot.writeString(self.name.encode('utf-8') if sys.version_info[0] == 2 else self.name)
1615
+ oprot.writeFieldEnd()
1616
+ if self.startTs is not None:
1617
+ oprot.writeFieldBegin('startTs', TType.I64, 2)
1618
+ oprot.writeI64(self.startTs)
1619
+ oprot.writeFieldEnd()
1620
+ if self.endTs is not None:
1621
+ oprot.writeFieldBegin('endTs', TType.I64, 3)
1622
+ oprot.writeI64(self.endTs)
1623
+ oprot.writeFieldEnd()
1624
+ if self.percentiles is not None:
1625
+ oprot.writeFieldBegin('percentiles', TType.STRING, 5)
1626
+ oprot.writeString(self.percentiles.encode('utf-8') if sys.version_info[0] == 2 else self.percentiles)
1627
+ oprot.writeFieldEnd()
1628
+ if self.columnName is not None:
1629
+ oprot.writeFieldBegin('columnName', TType.STRING, 8)
1630
+ oprot.writeString(self.columnName.encode('utf-8') if sys.version_info[0] == 2 else self.columnName)
1631
+ oprot.writeFieldEnd()
1632
+ oprot.writeFieldStop()
1633
+ oprot.writeStructEnd()
1634
+
1635
+ def validate(self):
1636
+ if self.name is None:
1637
+ raise TProtocolException(message='Required field name is unset!')
1638
+ if self.startTs is None:
1639
+ raise TProtocolException(message='Required field startTs is unset!')
1640
+ if self.endTs is None:
1641
+ raise TProtocolException(message='Required field endTs is unset!')
1642
+ if self.columnName is None:
1643
+ raise TProtocolException(message='Required field columnName is unset!')
1644
+ return
1645
+
1646
+ def __repr__(self):
1647
+ L = ['%s=%r' % (key, value)
1648
+ for key, value in self.__dict__.items()]
1649
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
1650
+
1651
+ def __eq__(self, other):
1652
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
1653
+
1654
+ def __ne__(self, other):
1655
+ return not (self == other)
1656
+ all_structs.append(TileSummaryKey)
1657
+ TileSummaryKey.thrift_spec = (
1658
+ None, # 0
1659
+ (1, TType.STRING, 'column', 'UTF8', None, ), # 1
1660
+ (2, TType.STRING, 'slice', 'UTF8', None, ), # 2
1661
+ (3, TType.STRING, 'name', 'UTF8', None, ), # 3
1662
+ (4, TType.I64, 'sizeMillis', None, None, ), # 4
1663
+ )
1664
+ all_structs.append(TileSummary)
1665
+ TileSummary.thrift_spec = (
1666
+ None, # 0
1667
+ (1, TType.LIST, 'percentiles', (TType.DOUBLE, None, False), None, ), # 1
1668
+ (2, TType.MAP, 'histogram', (TType.STRING, 'UTF8', TType.I64, None, False), None, ), # 2
1669
+ (3, TType.I64, 'count', None, None, ), # 3
1670
+ (4, TType.I64, 'nullCount', None, None, ), # 4
1671
+ (5, TType.I64, 'innerCount', None, None, ), # 5
1672
+ (6, TType.I64, 'innerNullCount', None, None, ), # 6
1673
+ (7, TType.LIST, 'lengthPercentiles', (TType.I32, None, False), None, ), # 7
1674
+ (8, TType.LIST, 'stringLengthPercentiles', (TType.I32, None, False), None, ), # 8
1675
+ )
1676
+ all_structs.append(TileSeriesKey)
1677
+ TileSeriesKey.thrift_spec = (
1678
+ None, # 0
1679
+ (1, TType.STRING, 'column', 'UTF8', None, ), # 1
1680
+ (2, TType.STRING, 'slice', 'UTF8', None, ), # 2
1681
+ (3, TType.STRING, 'groupName', 'UTF8', None, ), # 3
1682
+ (4, TType.STRING, 'nodeName', 'UTF8', None, ), # 4
1683
+ )
1684
+ all_structs.append(NullCounts)
1685
+ NullCounts.thrift_spec = (
1686
+ None, # 0
1687
+ (1, TType.MAP, 'nullCounts', (TType.I32, None, TType.I64, None, False), None, ), # 1
1688
+ (2, TType.I64, 'rowCount', None, None, ), # 2
1689
+ )
1690
+ all_structs.append(TileStats)
1691
+ TileStats.thrift_spec = (
1692
+ None, # 0
1693
+ (1, TType.STRUCT, 'nullCounts', [NullCounts, None], None, ), # 1
1694
+ )
1695
+ all_structs.append(TileSummarySeries)
1696
+ TileSummarySeries.thrift_spec = (
1697
+ None, # 0
1698
+ (1, TType.LIST, 'percentiles', (TType.LIST, (TType.DOUBLE, None, False), False), None, ), # 1
1699
+ (2, TType.MAP, 'histogram', (TType.STRING, 'UTF8', TType.LIST, (TType.I64, None, False), False), None, ), # 2
1700
+ (3, TType.LIST, 'count', (TType.I64, None, False), None, ), # 3
1701
+ (4, TType.LIST, 'nullCount', (TType.I64, None, False), None, ), # 4
1702
+ (5, TType.LIST, 'innerCount', (TType.I64, None, False), None, ), # 5
1703
+ (6, TType.LIST, 'innerNullCount', (TType.I64, None, False), None, ), # 6
1704
+ (7, TType.LIST, 'lengthPercentiles', (TType.LIST, (TType.I32, None, False), False), None, ), # 7
1705
+ (8, TType.LIST, 'stringLengthPercentiles', (TType.LIST, (TType.I32, None, False), False), None, ), # 8
1706
+ None, # 9
1707
+ None, # 10
1708
+ None, # 11
1709
+ None, # 12
1710
+ None, # 13
1711
+ None, # 14
1712
+ None, # 15
1713
+ None, # 16
1714
+ None, # 17
1715
+ None, # 18
1716
+ None, # 19
1717
+ None, # 20
1718
+ None, # 21
1719
+ None, # 22
1720
+ None, # 23
1721
+ None, # 24
1722
+ None, # 25
1723
+ None, # 26
1724
+ None, # 27
1725
+ None, # 28
1726
+ None, # 29
1727
+ None, # 30
1728
+ None, # 31
1729
+ None, # 32
1730
+ None, # 33
1731
+ None, # 34
1732
+ None, # 35
1733
+ None, # 36
1734
+ None, # 37
1735
+ None, # 38
1736
+ None, # 39
1737
+ None, # 40
1738
+ None, # 41
1739
+ None, # 42
1740
+ None, # 43
1741
+ None, # 44
1742
+ None, # 45
1743
+ None, # 46
1744
+ None, # 47
1745
+ None, # 48
1746
+ None, # 49
1747
+ None, # 50
1748
+ None, # 51
1749
+ None, # 52
1750
+ None, # 53
1751
+ None, # 54
1752
+ None, # 55
1753
+ None, # 56
1754
+ None, # 57
1755
+ None, # 58
1756
+ None, # 59
1757
+ None, # 60
1758
+ None, # 61
1759
+ None, # 62
1760
+ None, # 63
1761
+ None, # 64
1762
+ None, # 65
1763
+ None, # 66
1764
+ None, # 67
1765
+ None, # 68
1766
+ None, # 69
1767
+ None, # 70
1768
+ None, # 71
1769
+ None, # 72
1770
+ None, # 73
1771
+ None, # 74
1772
+ None, # 75
1773
+ None, # 76
1774
+ None, # 77
1775
+ None, # 78
1776
+ None, # 79
1777
+ None, # 80
1778
+ None, # 81
1779
+ None, # 82
1780
+ None, # 83
1781
+ None, # 84
1782
+ None, # 85
1783
+ None, # 86
1784
+ None, # 87
1785
+ None, # 88
1786
+ None, # 89
1787
+ None, # 90
1788
+ None, # 91
1789
+ None, # 92
1790
+ None, # 93
1791
+ None, # 94
1792
+ None, # 95
1793
+ None, # 96
1794
+ None, # 97
1795
+ None, # 98
1796
+ None, # 99
1797
+ None, # 100
1798
+ None, # 101
1799
+ None, # 102
1800
+ None, # 103
1801
+ None, # 104
1802
+ None, # 105
1803
+ None, # 106
1804
+ None, # 107
1805
+ None, # 108
1806
+ None, # 109
1807
+ None, # 110
1808
+ None, # 111
1809
+ None, # 112
1810
+ None, # 113
1811
+ None, # 114
1812
+ None, # 115
1813
+ None, # 116
1814
+ None, # 117
1815
+ None, # 118
1816
+ None, # 119
1817
+ None, # 120
1818
+ None, # 121
1819
+ None, # 122
1820
+ None, # 123
1821
+ None, # 124
1822
+ None, # 125
1823
+ None, # 126
1824
+ None, # 127
1825
+ None, # 128
1826
+ None, # 129
1827
+ None, # 130
1828
+ None, # 131
1829
+ None, # 132
1830
+ None, # 133
1831
+ None, # 134
1832
+ None, # 135
1833
+ None, # 136
1834
+ None, # 137
1835
+ None, # 138
1836
+ None, # 139
1837
+ None, # 140
1838
+ None, # 141
1839
+ None, # 142
1840
+ None, # 143
1841
+ None, # 144
1842
+ None, # 145
1843
+ None, # 146
1844
+ None, # 147
1845
+ None, # 148
1846
+ None, # 149
1847
+ None, # 150
1848
+ None, # 151
1849
+ None, # 152
1850
+ None, # 153
1851
+ None, # 154
1852
+ None, # 155
1853
+ None, # 156
1854
+ None, # 157
1855
+ None, # 158
1856
+ None, # 159
1857
+ None, # 160
1858
+ None, # 161
1859
+ None, # 162
1860
+ None, # 163
1861
+ None, # 164
1862
+ None, # 165
1863
+ None, # 166
1864
+ None, # 167
1865
+ None, # 168
1866
+ None, # 169
1867
+ None, # 170
1868
+ None, # 171
1869
+ None, # 172
1870
+ None, # 173
1871
+ None, # 174
1872
+ None, # 175
1873
+ None, # 176
1874
+ None, # 177
1875
+ None, # 178
1876
+ None, # 179
1877
+ None, # 180
1878
+ None, # 181
1879
+ None, # 182
1880
+ None, # 183
1881
+ None, # 184
1882
+ None, # 185
1883
+ None, # 186
1884
+ None, # 187
1885
+ None, # 188
1886
+ None, # 189
1887
+ None, # 190
1888
+ None, # 191
1889
+ None, # 192
1890
+ None, # 193
1891
+ None, # 194
1892
+ None, # 195
1893
+ None, # 196
1894
+ None, # 197
1895
+ None, # 198
1896
+ None, # 199
1897
+ (200, TType.LIST, 'timestamps', (TType.I64, None, False), None, ), # 200
1898
+ None, # 201
1899
+ None, # 202
1900
+ None, # 203
1901
+ None, # 204
1902
+ None, # 205
1903
+ None, # 206
1904
+ None, # 207
1905
+ None, # 208
1906
+ None, # 209
1907
+ None, # 210
1908
+ None, # 211
1909
+ None, # 212
1910
+ None, # 213
1911
+ None, # 214
1912
+ None, # 215
1913
+ None, # 216
1914
+ None, # 217
1915
+ None, # 218
1916
+ None, # 219
1917
+ None, # 220
1918
+ None, # 221
1919
+ None, # 222
1920
+ None, # 223
1921
+ None, # 224
1922
+ None, # 225
1923
+ None, # 226
1924
+ None, # 227
1925
+ None, # 228
1926
+ None, # 229
1927
+ None, # 230
1928
+ None, # 231
1929
+ None, # 232
1930
+ None, # 233
1931
+ None, # 234
1932
+ None, # 235
1933
+ None, # 236
1934
+ None, # 237
1935
+ None, # 238
1936
+ None, # 239
1937
+ None, # 240
1938
+ None, # 241
1939
+ None, # 242
1940
+ None, # 243
1941
+ None, # 244
1942
+ None, # 245
1943
+ None, # 246
1944
+ None, # 247
1945
+ None, # 248
1946
+ None, # 249
1947
+ None, # 250
1948
+ None, # 251
1949
+ None, # 252
1950
+ None, # 253
1951
+ None, # 254
1952
+ None, # 255
1953
+ None, # 256
1954
+ None, # 257
1955
+ None, # 258
1956
+ None, # 259
1957
+ None, # 260
1958
+ None, # 261
1959
+ None, # 262
1960
+ None, # 263
1961
+ None, # 264
1962
+ None, # 265
1963
+ None, # 266
1964
+ None, # 267
1965
+ None, # 268
1966
+ None, # 269
1967
+ None, # 270
1968
+ None, # 271
1969
+ None, # 272
1970
+ None, # 273
1971
+ None, # 274
1972
+ None, # 275
1973
+ None, # 276
1974
+ None, # 277
1975
+ None, # 278
1976
+ None, # 279
1977
+ None, # 280
1978
+ None, # 281
1979
+ None, # 282
1980
+ None, # 283
1981
+ None, # 284
1982
+ None, # 285
1983
+ None, # 286
1984
+ None, # 287
1985
+ None, # 288
1986
+ None, # 289
1987
+ None, # 290
1988
+ None, # 291
1989
+ None, # 292
1990
+ None, # 293
1991
+ None, # 294
1992
+ None, # 295
1993
+ None, # 296
1994
+ None, # 297
1995
+ None, # 298
1996
+ None, # 299
1997
+ (300, TType.STRUCT, 'key', [TileSummaryKey, None], None, ), # 300
1998
+ )
1999
+ all_structs.append(TileDrift)
2000
+ TileDrift.thrift_spec = (
2001
+ None, # 0
2002
+ (1, TType.DOUBLE, 'percentileDrift', None, None, ), # 1
2003
+ (2, TType.DOUBLE, 'histogramDrift', None, None, ), # 2
2004
+ (3, TType.DOUBLE, 'countChangePercent', None, None, ), # 3
2005
+ (4, TType.DOUBLE, 'nullRatioChangePercent', None, None, ), # 4
2006
+ (5, TType.DOUBLE, 'innerCountChangePercent', None, None, ), # 5
2007
+ (6, TType.DOUBLE, 'innerNullCountChangePercent', None, None, ), # 6
2008
+ (7, TType.DOUBLE, 'lengthPercentilesDrift', None, None, ), # 7
2009
+ (8, TType.DOUBLE, 'stringLengthPercentilesDrift', None, None, ), # 8
2010
+ )
2011
+ all_structs.append(TileDriftSeries)
2012
+ TileDriftSeries.thrift_spec = (
2013
+ None, # 0
2014
+ (1, TType.LIST, 'percentileDriftSeries', (TType.DOUBLE, None, False), None, ), # 1
2015
+ (2, TType.LIST, 'histogramDriftSeries', (TType.DOUBLE, None, False), None, ), # 2
2016
+ (3, TType.LIST, 'countChangePercentSeries', (TType.DOUBLE, None, False), None, ), # 3
2017
+ (4, TType.LIST, 'nullRatioChangePercentSeries', (TType.DOUBLE, None, False), None, ), # 4
2018
+ (5, TType.LIST, 'innerCountChangePercentSeries', (TType.DOUBLE, None, False), None, ), # 5
2019
+ (6, TType.LIST, 'innerNullCountChangePercentSeries', (TType.DOUBLE, None, False), None, ), # 6
2020
+ (7, TType.LIST, 'lengthPercentilesDriftSeries', (TType.DOUBLE, None, False), None, ), # 7
2021
+ (8, TType.LIST, 'stringLengthPercentilesDriftSeries', (TType.DOUBLE, None, False), None, ), # 8
2022
+ None, # 9
2023
+ None, # 10
2024
+ None, # 11
2025
+ None, # 12
2026
+ None, # 13
2027
+ None, # 14
2028
+ None, # 15
2029
+ None, # 16
2030
+ None, # 17
2031
+ None, # 18
2032
+ None, # 19
2033
+ None, # 20
2034
+ None, # 21
2035
+ None, # 22
2036
+ None, # 23
2037
+ None, # 24
2038
+ None, # 25
2039
+ None, # 26
2040
+ None, # 27
2041
+ None, # 28
2042
+ None, # 29
2043
+ None, # 30
2044
+ None, # 31
2045
+ None, # 32
2046
+ None, # 33
2047
+ None, # 34
2048
+ None, # 35
2049
+ None, # 36
2050
+ None, # 37
2051
+ None, # 38
2052
+ None, # 39
2053
+ None, # 40
2054
+ None, # 41
2055
+ None, # 42
2056
+ None, # 43
2057
+ None, # 44
2058
+ None, # 45
2059
+ None, # 46
2060
+ None, # 47
2061
+ None, # 48
2062
+ None, # 49
2063
+ None, # 50
2064
+ None, # 51
2065
+ None, # 52
2066
+ None, # 53
2067
+ None, # 54
2068
+ None, # 55
2069
+ None, # 56
2070
+ None, # 57
2071
+ None, # 58
2072
+ None, # 59
2073
+ None, # 60
2074
+ None, # 61
2075
+ None, # 62
2076
+ None, # 63
2077
+ None, # 64
2078
+ None, # 65
2079
+ None, # 66
2080
+ None, # 67
2081
+ None, # 68
2082
+ None, # 69
2083
+ None, # 70
2084
+ None, # 71
2085
+ None, # 72
2086
+ None, # 73
2087
+ None, # 74
2088
+ None, # 75
2089
+ None, # 76
2090
+ None, # 77
2091
+ None, # 78
2092
+ None, # 79
2093
+ None, # 80
2094
+ None, # 81
2095
+ None, # 82
2096
+ None, # 83
2097
+ None, # 84
2098
+ None, # 85
2099
+ None, # 86
2100
+ None, # 87
2101
+ None, # 88
2102
+ None, # 89
2103
+ None, # 90
2104
+ None, # 91
2105
+ None, # 92
2106
+ None, # 93
2107
+ None, # 94
2108
+ None, # 95
2109
+ None, # 96
2110
+ None, # 97
2111
+ None, # 98
2112
+ None, # 99
2113
+ None, # 100
2114
+ None, # 101
2115
+ None, # 102
2116
+ None, # 103
2117
+ None, # 104
2118
+ None, # 105
2119
+ None, # 106
2120
+ None, # 107
2121
+ None, # 108
2122
+ None, # 109
2123
+ None, # 110
2124
+ None, # 111
2125
+ None, # 112
2126
+ None, # 113
2127
+ None, # 114
2128
+ None, # 115
2129
+ None, # 116
2130
+ None, # 117
2131
+ None, # 118
2132
+ None, # 119
2133
+ None, # 120
2134
+ None, # 121
2135
+ None, # 122
2136
+ None, # 123
2137
+ None, # 124
2138
+ None, # 125
2139
+ None, # 126
2140
+ None, # 127
2141
+ None, # 128
2142
+ None, # 129
2143
+ None, # 130
2144
+ None, # 131
2145
+ None, # 132
2146
+ None, # 133
2147
+ None, # 134
2148
+ None, # 135
2149
+ None, # 136
2150
+ None, # 137
2151
+ None, # 138
2152
+ None, # 139
2153
+ None, # 140
2154
+ None, # 141
2155
+ None, # 142
2156
+ None, # 143
2157
+ None, # 144
2158
+ None, # 145
2159
+ None, # 146
2160
+ None, # 147
2161
+ None, # 148
2162
+ None, # 149
2163
+ None, # 150
2164
+ None, # 151
2165
+ None, # 152
2166
+ None, # 153
2167
+ None, # 154
2168
+ None, # 155
2169
+ None, # 156
2170
+ None, # 157
2171
+ None, # 158
2172
+ None, # 159
2173
+ None, # 160
2174
+ None, # 161
2175
+ None, # 162
2176
+ None, # 163
2177
+ None, # 164
2178
+ None, # 165
2179
+ None, # 166
2180
+ None, # 167
2181
+ None, # 168
2182
+ None, # 169
2183
+ None, # 170
2184
+ None, # 171
2185
+ None, # 172
2186
+ None, # 173
2187
+ None, # 174
2188
+ None, # 175
2189
+ None, # 176
2190
+ None, # 177
2191
+ None, # 178
2192
+ None, # 179
2193
+ None, # 180
2194
+ None, # 181
2195
+ None, # 182
2196
+ None, # 183
2197
+ None, # 184
2198
+ None, # 185
2199
+ None, # 186
2200
+ None, # 187
2201
+ None, # 188
2202
+ None, # 189
2203
+ None, # 190
2204
+ None, # 191
2205
+ None, # 192
2206
+ None, # 193
2207
+ None, # 194
2208
+ None, # 195
2209
+ None, # 196
2210
+ None, # 197
2211
+ None, # 198
2212
+ None, # 199
2213
+ (200, TType.LIST, 'timestamps', (TType.I64, None, False), None, ), # 200
2214
+ None, # 201
2215
+ None, # 202
2216
+ None, # 203
2217
+ None, # 204
2218
+ None, # 205
2219
+ None, # 206
2220
+ None, # 207
2221
+ None, # 208
2222
+ None, # 209
2223
+ None, # 210
2224
+ None, # 211
2225
+ None, # 212
2226
+ None, # 213
2227
+ None, # 214
2228
+ None, # 215
2229
+ None, # 216
2230
+ None, # 217
2231
+ None, # 218
2232
+ None, # 219
2233
+ None, # 220
2234
+ None, # 221
2235
+ None, # 222
2236
+ None, # 223
2237
+ None, # 224
2238
+ None, # 225
2239
+ None, # 226
2240
+ None, # 227
2241
+ None, # 228
2242
+ None, # 229
2243
+ None, # 230
2244
+ None, # 231
2245
+ None, # 232
2246
+ None, # 233
2247
+ None, # 234
2248
+ None, # 235
2249
+ None, # 236
2250
+ None, # 237
2251
+ None, # 238
2252
+ None, # 239
2253
+ None, # 240
2254
+ None, # 241
2255
+ None, # 242
2256
+ None, # 243
2257
+ None, # 244
2258
+ None, # 245
2259
+ None, # 246
2260
+ None, # 247
2261
+ None, # 248
2262
+ None, # 249
2263
+ None, # 250
2264
+ None, # 251
2265
+ None, # 252
2266
+ None, # 253
2267
+ None, # 254
2268
+ None, # 255
2269
+ None, # 256
2270
+ None, # 257
2271
+ None, # 258
2272
+ None, # 259
2273
+ None, # 260
2274
+ None, # 261
2275
+ None, # 262
2276
+ None, # 263
2277
+ None, # 264
2278
+ None, # 265
2279
+ None, # 266
2280
+ None, # 267
2281
+ None, # 268
2282
+ None, # 269
2283
+ None, # 270
2284
+ None, # 271
2285
+ None, # 272
2286
+ None, # 273
2287
+ None, # 274
2288
+ None, # 275
2289
+ None, # 276
2290
+ None, # 277
2291
+ None, # 278
2292
+ None, # 279
2293
+ None, # 280
2294
+ None, # 281
2295
+ None, # 282
2296
+ None, # 283
2297
+ None, # 284
2298
+ None, # 285
2299
+ None, # 286
2300
+ None, # 287
2301
+ None, # 288
2302
+ None, # 289
2303
+ None, # 290
2304
+ None, # 291
2305
+ None, # 292
2306
+ None, # 293
2307
+ None, # 294
2308
+ None, # 295
2309
+ None, # 296
2310
+ None, # 297
2311
+ None, # 298
2312
+ None, # 299
2313
+ (300, TType.STRUCT, 'key', [TileSeriesKey, None], None, ), # 300
2314
+ )
2315
+ all_structs.append(DriftSpec)
2316
+ DriftSpec.thrift_spec = (
2317
+ None, # 0
2318
+ (1, TType.LIST, 'slices', (TType.STRING, 'UTF8', False), None, ), # 1
2319
+ (2, TType.MAP, 'derivations', (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), None, ), # 2
2320
+ (3, TType.MAP, 'columnCardinalityHints', (TType.STRING, 'UTF8', TType.I32, None, False), None, ), # 3
2321
+ (4, TType.STRUCT, 'tileSize', [gen_thrift.common.ttypes.Window, None], None, ), # 4
2322
+ (5, TType.LIST, 'lookbackWindows', (TType.STRUCT, [gen_thrift.common.ttypes.Window, None], False), None, ), # 5
2323
+ (6, TType.I32, 'driftMetric', None, 0, ), # 6
2324
+ )
2325
+ all_structs.append(JoinDriftRequest)
2326
+ JoinDriftRequest.thrift_spec = (
2327
+ None, # 0
2328
+ (1, TType.STRING, 'name', 'UTF8', None, ), # 1
2329
+ (2, TType.I64, 'startTs', None, None, ), # 2
2330
+ (3, TType.I64, 'endTs', None, None, ), # 3
2331
+ None, # 4
2332
+ None, # 5
2333
+ (6, TType.STRING, 'offset', 'UTF8', None, ), # 6
2334
+ (7, TType.I32, 'algorithm', None, None, ), # 7
2335
+ (8, TType.STRING, 'columnName', 'UTF8', None, ), # 8
2336
+ )
2337
+ all_structs.append(JoinDriftResponse)
2338
+ JoinDriftResponse.thrift_spec = (
2339
+ None, # 0
2340
+ (1, TType.LIST, 'driftSeries', (TType.STRUCT, [TileDriftSeries, None], False), None, ), # 1
2341
+ )
2342
+ all_structs.append(JoinSummaryRequest)
2343
+ JoinSummaryRequest.thrift_spec = (
2344
+ None, # 0
2345
+ (1, TType.STRING, 'name', 'UTF8', None, ), # 1
2346
+ (2, TType.I64, 'startTs', None, None, ), # 2
2347
+ (3, TType.I64, 'endTs', None, None, ), # 3
2348
+ None, # 4
2349
+ (5, TType.STRING, 'percentiles', 'UTF8', None, ), # 5
2350
+ None, # 6
2351
+ None, # 7
2352
+ (8, TType.STRING, 'columnName', 'UTF8', None, ), # 8
2353
+ )
2354
+ fix_spec(all_structs)
2355
+ del all_structs