awx-zipline-ai 0.2.0__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 (93) hide show
  1. agent/__init__.py +1 -0
  2. agent/constants.py +15 -0
  3. agent/ttypes.py +1684 -0
  4. ai/__init__.py +0 -0
  5. ai/chronon/__init__.py +0 -0
  6. ai/chronon/airflow_helpers.py +251 -0
  7. ai/chronon/api/__init__.py +1 -0
  8. ai/chronon/api/common/__init__.py +1 -0
  9. ai/chronon/api/common/constants.py +15 -0
  10. ai/chronon/api/common/ttypes.py +1844 -0
  11. ai/chronon/api/constants.py +15 -0
  12. ai/chronon/api/ttypes.py +3624 -0
  13. ai/chronon/cli/compile/column_hashing.py +313 -0
  14. ai/chronon/cli/compile/compile_context.py +177 -0
  15. ai/chronon/cli/compile/compiler.py +160 -0
  16. ai/chronon/cli/compile/conf_validator.py +590 -0
  17. ai/chronon/cli/compile/display/class_tracker.py +112 -0
  18. ai/chronon/cli/compile/display/compile_status.py +95 -0
  19. ai/chronon/cli/compile/display/compiled_obj.py +12 -0
  20. ai/chronon/cli/compile/display/console.py +3 -0
  21. ai/chronon/cli/compile/display/diff_result.py +46 -0
  22. ai/chronon/cli/compile/fill_templates.py +40 -0
  23. ai/chronon/cli/compile/parse_configs.py +141 -0
  24. ai/chronon/cli/compile/parse_teams.py +238 -0
  25. ai/chronon/cli/compile/serializer.py +115 -0
  26. ai/chronon/cli/git_utils.py +156 -0
  27. ai/chronon/cli/logger.py +61 -0
  28. ai/chronon/constants.py +3 -0
  29. ai/chronon/eval/__init__.py +122 -0
  30. ai/chronon/eval/query_parsing.py +19 -0
  31. ai/chronon/eval/sample_tables.py +100 -0
  32. ai/chronon/eval/table_scan.py +186 -0
  33. ai/chronon/fetcher/__init__.py +1 -0
  34. ai/chronon/fetcher/constants.py +15 -0
  35. ai/chronon/fetcher/ttypes.py +127 -0
  36. ai/chronon/group_by.py +692 -0
  37. ai/chronon/hub/__init__.py +1 -0
  38. ai/chronon/hub/constants.py +15 -0
  39. ai/chronon/hub/ttypes.py +1228 -0
  40. ai/chronon/join.py +566 -0
  41. ai/chronon/logger.py +24 -0
  42. ai/chronon/model.py +35 -0
  43. ai/chronon/observability/__init__.py +1 -0
  44. ai/chronon/observability/constants.py +15 -0
  45. ai/chronon/observability/ttypes.py +2192 -0
  46. ai/chronon/orchestration/__init__.py +1 -0
  47. ai/chronon/orchestration/constants.py +15 -0
  48. ai/chronon/orchestration/ttypes.py +4406 -0
  49. ai/chronon/planner/__init__.py +1 -0
  50. ai/chronon/planner/constants.py +15 -0
  51. ai/chronon/planner/ttypes.py +1686 -0
  52. ai/chronon/query.py +126 -0
  53. ai/chronon/repo/__init__.py +40 -0
  54. ai/chronon/repo/aws.py +298 -0
  55. ai/chronon/repo/cluster.py +65 -0
  56. ai/chronon/repo/compile.py +56 -0
  57. ai/chronon/repo/constants.py +164 -0
  58. ai/chronon/repo/default_runner.py +291 -0
  59. ai/chronon/repo/explore.py +421 -0
  60. ai/chronon/repo/extract_objects.py +137 -0
  61. ai/chronon/repo/gcp.py +585 -0
  62. ai/chronon/repo/gitpython_utils.py +14 -0
  63. ai/chronon/repo/hub_runner.py +171 -0
  64. ai/chronon/repo/hub_uploader.py +108 -0
  65. ai/chronon/repo/init.py +53 -0
  66. ai/chronon/repo/join_backfill.py +105 -0
  67. ai/chronon/repo/run.py +293 -0
  68. ai/chronon/repo/serializer.py +141 -0
  69. ai/chronon/repo/team_json_utils.py +46 -0
  70. ai/chronon/repo/utils.py +472 -0
  71. ai/chronon/repo/zipline.py +51 -0
  72. ai/chronon/repo/zipline_hub.py +105 -0
  73. ai/chronon/resources/gcp/README.md +174 -0
  74. ai/chronon/resources/gcp/group_bys/test/__init__.py +0 -0
  75. ai/chronon/resources/gcp/group_bys/test/data.py +34 -0
  76. ai/chronon/resources/gcp/joins/test/__init__.py +0 -0
  77. ai/chronon/resources/gcp/joins/test/data.py +30 -0
  78. ai/chronon/resources/gcp/sources/test/__init__.py +0 -0
  79. ai/chronon/resources/gcp/sources/test/data.py +23 -0
  80. ai/chronon/resources/gcp/teams.py +70 -0
  81. ai/chronon/resources/gcp/zipline-cli-install.sh +54 -0
  82. ai/chronon/source.py +88 -0
  83. ai/chronon/staging_query.py +185 -0
  84. ai/chronon/types.py +57 -0
  85. ai/chronon/utils.py +557 -0
  86. ai/chronon/windows.py +50 -0
  87. awx_zipline_ai-0.2.0.dist-info/METADATA +173 -0
  88. awx_zipline_ai-0.2.0.dist-info/RECORD +93 -0
  89. awx_zipline_ai-0.2.0.dist-info/WHEEL +5 -0
  90. awx_zipline_ai-0.2.0.dist-info/entry_points.txt +2 -0
  91. awx_zipline_ai-0.2.0.dist-info/licenses/LICENSE +202 -0
  92. awx_zipline_ai-0.2.0.dist-info/top_level.txt +3 -0
  93. jars/__init__.py +0 -0
@@ -0,0 +1,1844 @@
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
+
16
+ from thrift.transport import TTransport
17
+ all_structs = []
18
+
19
+
20
+ class TimeUnit(object):
21
+ HOURS = 0
22
+ DAYS = 1
23
+ MINUTES = 2
24
+
25
+ _VALUES_TO_NAMES = {
26
+ 0: "HOURS",
27
+ 1: "DAYS",
28
+ 2: "MINUTES",
29
+ }
30
+
31
+ _NAMES_TO_VALUES = {
32
+ "HOURS": 0,
33
+ "DAYS": 1,
34
+ "MINUTES": 2,
35
+ }
36
+
37
+
38
+ class KvScanStrategy(object):
39
+ ALL = 0
40
+ LATEST = 1
41
+
42
+ _VALUES_TO_NAMES = {
43
+ 0: "ALL",
44
+ 1: "LATEST",
45
+ }
46
+
47
+ _NAMES_TO_VALUES = {
48
+ "ALL": 0,
49
+ "LATEST": 1,
50
+ }
51
+
52
+
53
+ class Window(object):
54
+ """
55
+ Attributes:
56
+ - length
57
+ - timeUnit
58
+
59
+ """
60
+ thrift_spec = None
61
+
62
+
63
+ def __init__(self, length = None, timeUnit = None,):
64
+ self.length = length
65
+ self.timeUnit = timeUnit
66
+
67
+ def read(self, iprot):
68
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
69
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
70
+ return
71
+ iprot.readStructBegin()
72
+ while True:
73
+ (fname, ftype, fid) = iprot.readFieldBegin()
74
+ if ftype == TType.STOP:
75
+ break
76
+ if fid == 1:
77
+ if ftype == TType.I32:
78
+ self.length = iprot.readI32()
79
+ else:
80
+ iprot.skip(ftype)
81
+ elif fid == 2:
82
+ if ftype == TType.I32:
83
+ self.timeUnit = iprot.readI32()
84
+ else:
85
+ iprot.skip(ftype)
86
+ else:
87
+ iprot.skip(ftype)
88
+ iprot.readFieldEnd()
89
+ iprot.readStructEnd()
90
+
91
+ def write(self, oprot):
92
+ self.validate()
93
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
94
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
95
+ return
96
+ oprot.writeStructBegin('Window')
97
+ if self.length is not None:
98
+ oprot.writeFieldBegin('length', TType.I32, 1)
99
+ oprot.writeI32(self.length)
100
+ oprot.writeFieldEnd()
101
+ if self.timeUnit is not None:
102
+ oprot.writeFieldBegin('timeUnit', TType.I32, 2)
103
+ oprot.writeI32(self.timeUnit)
104
+ oprot.writeFieldEnd()
105
+ oprot.writeFieldStop()
106
+ oprot.writeStructEnd()
107
+
108
+ def validate(self):
109
+ return
110
+
111
+ def __repr__(self):
112
+ L = ['%s=%r' % (key, value)
113
+ for key, value in self.__dict__.items()]
114
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
115
+
116
+ def __eq__(self, other):
117
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
118
+
119
+ def __ne__(self, other):
120
+ return not (self == other)
121
+
122
+
123
+ class DateRange(object):
124
+ """
125
+ Attributes:
126
+ - startDate
127
+ - endDate
128
+
129
+ """
130
+ thrift_spec = None
131
+
132
+
133
+ def __init__(self, startDate = None, endDate = None,):
134
+ self.startDate = startDate
135
+ self.endDate = endDate
136
+
137
+ def read(self, iprot):
138
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
139
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
140
+ return
141
+ iprot.readStructBegin()
142
+ while True:
143
+ (fname, ftype, fid) = iprot.readFieldBegin()
144
+ if ftype == TType.STOP:
145
+ break
146
+ if fid == 1:
147
+ if ftype == TType.STRING:
148
+ self.startDate = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
149
+ else:
150
+ iprot.skip(ftype)
151
+ elif fid == 2:
152
+ if ftype == TType.STRING:
153
+ self.endDate = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
154
+ else:
155
+ iprot.skip(ftype)
156
+ else:
157
+ iprot.skip(ftype)
158
+ iprot.readFieldEnd()
159
+ iprot.readStructEnd()
160
+
161
+ def write(self, oprot):
162
+ self.validate()
163
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
164
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
165
+ return
166
+ oprot.writeStructBegin('DateRange')
167
+ if self.startDate is not None:
168
+ oprot.writeFieldBegin('startDate', TType.STRING, 1)
169
+ oprot.writeString(self.startDate.encode('utf-8') if sys.version_info[0] == 2 else self.startDate)
170
+ oprot.writeFieldEnd()
171
+ if self.endDate is not None:
172
+ oprot.writeFieldBegin('endDate', TType.STRING, 2)
173
+ oprot.writeString(self.endDate.encode('utf-8') if sys.version_info[0] == 2 else self.endDate)
174
+ oprot.writeFieldEnd()
175
+ oprot.writeFieldStop()
176
+ oprot.writeStructEnd()
177
+
178
+ def validate(self):
179
+ return
180
+
181
+ def __repr__(self):
182
+ L = ['%s=%r' % (key, value)
183
+ for key, value in self.__dict__.items()]
184
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
185
+
186
+ def __eq__(self, other):
187
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
188
+
189
+ def __ne__(self, other):
190
+ return not (self == other)
191
+
192
+
193
+ class EnvironmentVariables(object):
194
+ """
195
+ env vars for different modes of execution - with "common" applying to all modes
196
+ the submitter will set these env vars prior to launching the job
197
+
198
+ these env vars are layered in order of priority
199
+ 1. company file defaults specified in teams.py - in the "common" team
200
+ 2. team wide defaults that apply to all objects in the team folder
201
+ 3. object specific defaults - applies to only the object that are declares them
202
+
203
+ All the maps from the above three places are merged to create final env var
204
+
205
+
206
+ Attributes:
207
+ - common
208
+ - modeEnvironments
209
+
210
+ """
211
+ thrift_spec = None
212
+
213
+
214
+ def __init__(self, common = {
215
+ }, modeEnvironments = {
216
+ },):
217
+ if common is self.thrift_spec[1][4]:
218
+ common = {
219
+ }
220
+ self.common = common
221
+ if modeEnvironments is self.thrift_spec[2][4]:
222
+ modeEnvironments = {
223
+ }
224
+ self.modeEnvironments = modeEnvironments
225
+
226
+ def read(self, iprot):
227
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
228
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
229
+ return
230
+ iprot.readStructBegin()
231
+ while True:
232
+ (fname, ftype, fid) = iprot.readFieldBegin()
233
+ if ftype == TType.STOP:
234
+ break
235
+ if fid == 1:
236
+ if ftype == TType.MAP:
237
+ self.common = {}
238
+ (_ktype1, _vtype2, _size0) = iprot.readMapBegin()
239
+ for _i4 in range(_size0):
240
+ _key5 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
241
+ _val6 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
242
+ self.common[_key5] = _val6
243
+ iprot.readMapEnd()
244
+ else:
245
+ iprot.skip(ftype)
246
+ elif fid == 2:
247
+ if ftype == TType.MAP:
248
+ self.modeEnvironments = {}
249
+ (_ktype8, _vtype9, _size7) = iprot.readMapBegin()
250
+ for _i11 in range(_size7):
251
+ _key12 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
252
+ _val13 = {}
253
+ (_ktype15, _vtype16, _size14) = iprot.readMapBegin()
254
+ for _i18 in range(_size14):
255
+ _key19 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
256
+ _val20 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
257
+ _val13[_key19] = _val20
258
+ iprot.readMapEnd()
259
+ self.modeEnvironments[_key12] = _val13
260
+ iprot.readMapEnd()
261
+ else:
262
+ iprot.skip(ftype)
263
+ else:
264
+ iprot.skip(ftype)
265
+ iprot.readFieldEnd()
266
+ iprot.readStructEnd()
267
+
268
+ def write(self, oprot):
269
+ self.validate()
270
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
271
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
272
+ return
273
+ oprot.writeStructBegin('EnvironmentVariables')
274
+ if self.common is not None:
275
+ oprot.writeFieldBegin('common', TType.MAP, 1)
276
+ oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.common))
277
+ for kiter21, viter22 in self.common.items():
278
+ oprot.writeString(kiter21.encode('utf-8') if sys.version_info[0] == 2 else kiter21)
279
+ oprot.writeString(viter22.encode('utf-8') if sys.version_info[0] == 2 else viter22)
280
+ oprot.writeMapEnd()
281
+ oprot.writeFieldEnd()
282
+ if self.modeEnvironments is not None:
283
+ oprot.writeFieldBegin('modeEnvironments', TType.MAP, 2)
284
+ oprot.writeMapBegin(TType.STRING, TType.MAP, len(self.modeEnvironments))
285
+ for kiter23, viter24 in self.modeEnvironments.items():
286
+ oprot.writeString(kiter23.encode('utf-8') if sys.version_info[0] == 2 else kiter23)
287
+ oprot.writeMapBegin(TType.STRING, TType.STRING, len(viter24))
288
+ for kiter25, viter26 in viter24.items():
289
+ oprot.writeString(kiter25.encode('utf-8') if sys.version_info[0] == 2 else kiter25)
290
+ oprot.writeString(viter26.encode('utf-8') if sys.version_info[0] == 2 else viter26)
291
+ oprot.writeMapEnd()
292
+ oprot.writeMapEnd()
293
+ oprot.writeFieldEnd()
294
+ oprot.writeFieldStop()
295
+ oprot.writeStructEnd()
296
+
297
+ def validate(self):
298
+ return
299
+
300
+ def __repr__(self):
301
+ L = ['%s=%r' % (key, value)
302
+ for key, value in self.__dict__.items()]
303
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
304
+
305
+ def __eq__(self, other):
306
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
307
+
308
+ def __ne__(self, other):
309
+ return not (self == other)
310
+
311
+
312
+ class ConfigProperties(object):
313
+ """
314
+ job config for different modes of execution - with "common" applying to all modes
315
+ usually these are spark or flink conf params like "spark.executor.memory" etc
316
+
317
+ these confs are layered in order of priority
318
+ 1. company file defaults specified in teams.py - in the "common" team
319
+ 2. team wide defaults that apply to all objects in the team folder
320
+ 3. object specific defaults - applies to only the object that are declares them
321
+
322
+ All the maps from the above three places are merged to create final conf map
323
+
324
+
325
+ Attributes:
326
+ - common
327
+ - modeConfigs
328
+
329
+ """
330
+ thrift_spec = None
331
+
332
+
333
+ def __init__(self, common = {
334
+ }, modeConfigs = {
335
+ },):
336
+ if common is self.thrift_spec[1][4]:
337
+ common = {
338
+ }
339
+ self.common = common
340
+ if modeConfigs is self.thrift_spec[2][4]:
341
+ modeConfigs = {
342
+ }
343
+ self.modeConfigs = modeConfigs
344
+
345
+ def read(self, iprot):
346
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
347
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
348
+ return
349
+ iprot.readStructBegin()
350
+ while True:
351
+ (fname, ftype, fid) = iprot.readFieldBegin()
352
+ if ftype == TType.STOP:
353
+ break
354
+ if fid == 1:
355
+ if ftype == TType.MAP:
356
+ self.common = {}
357
+ (_ktype28, _vtype29, _size27) = iprot.readMapBegin()
358
+ for _i31 in range(_size27):
359
+ _key32 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
360
+ _val33 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
361
+ self.common[_key32] = _val33
362
+ iprot.readMapEnd()
363
+ else:
364
+ iprot.skip(ftype)
365
+ elif fid == 2:
366
+ if ftype == TType.MAP:
367
+ self.modeConfigs = {}
368
+ (_ktype35, _vtype36, _size34) = iprot.readMapBegin()
369
+ for _i38 in range(_size34):
370
+ _key39 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
371
+ _val40 = {}
372
+ (_ktype42, _vtype43, _size41) = iprot.readMapBegin()
373
+ for _i45 in range(_size41):
374
+ _key46 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
375
+ _val47 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
376
+ _val40[_key46] = _val47
377
+ iprot.readMapEnd()
378
+ self.modeConfigs[_key39] = _val40
379
+ iprot.readMapEnd()
380
+ else:
381
+ iprot.skip(ftype)
382
+ else:
383
+ iprot.skip(ftype)
384
+ iprot.readFieldEnd()
385
+ iprot.readStructEnd()
386
+
387
+ def write(self, oprot):
388
+ self.validate()
389
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
390
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
391
+ return
392
+ oprot.writeStructBegin('ConfigProperties')
393
+ if self.common is not None:
394
+ oprot.writeFieldBegin('common', TType.MAP, 1)
395
+ oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.common))
396
+ for kiter48, viter49 in self.common.items():
397
+ oprot.writeString(kiter48.encode('utf-8') if sys.version_info[0] == 2 else kiter48)
398
+ oprot.writeString(viter49.encode('utf-8') if sys.version_info[0] == 2 else viter49)
399
+ oprot.writeMapEnd()
400
+ oprot.writeFieldEnd()
401
+ if self.modeConfigs is not None:
402
+ oprot.writeFieldBegin('modeConfigs', TType.MAP, 2)
403
+ oprot.writeMapBegin(TType.STRING, TType.MAP, len(self.modeConfigs))
404
+ for kiter50, viter51 in self.modeConfigs.items():
405
+ oprot.writeString(kiter50.encode('utf-8') if sys.version_info[0] == 2 else kiter50)
406
+ oprot.writeMapBegin(TType.STRING, TType.STRING, len(viter51))
407
+ for kiter52, viter53 in viter51.items():
408
+ oprot.writeString(kiter52.encode('utf-8') if sys.version_info[0] == 2 else kiter52)
409
+ oprot.writeString(viter53.encode('utf-8') if sys.version_info[0] == 2 else viter53)
410
+ oprot.writeMapEnd()
411
+ oprot.writeMapEnd()
412
+ oprot.writeFieldEnd()
413
+ oprot.writeFieldStop()
414
+ oprot.writeStructEnd()
415
+
416
+ def validate(self):
417
+ return
418
+
419
+ def __repr__(self):
420
+ L = ['%s=%r' % (key, value)
421
+ for key, value in self.__dict__.items()]
422
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
423
+
424
+ def __eq__(self, other):
425
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
426
+
427
+ def __ne__(self, other):
428
+ return not (self == other)
429
+
430
+
431
+ class ClusterConfigProperties(object):
432
+ """
433
+ Cluster config for different modes of execution as a json string - with "common" applying to all modes
434
+ These are settings for creating a new cluster for running the job
435
+
436
+ these confs are layered in order of priority
437
+ 1. company file defaults specified in teams.py - in the "common" team
438
+ 2. team wide defaults that apply to all objects in the team folder
439
+ 3. object specific defaults - applies to only the object that are declares them
440
+
441
+ All the maps from the above three places are merged to create final cluster config
442
+
443
+
444
+ Attributes:
445
+ - common
446
+ - modeClusterConfigs
447
+
448
+ """
449
+ thrift_spec = None
450
+
451
+
452
+ def __init__(self, common = {
453
+ }, modeClusterConfigs = {
454
+ },):
455
+ if common is self.thrift_spec[1][4]:
456
+ common = {
457
+ }
458
+ self.common = common
459
+ if modeClusterConfigs is self.thrift_spec[2][4]:
460
+ modeClusterConfigs = {
461
+ }
462
+ self.modeClusterConfigs = modeClusterConfigs
463
+
464
+ def read(self, iprot):
465
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
466
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
467
+ return
468
+ iprot.readStructBegin()
469
+ while True:
470
+ (fname, ftype, fid) = iprot.readFieldBegin()
471
+ if ftype == TType.STOP:
472
+ break
473
+ if fid == 1:
474
+ if ftype == TType.MAP:
475
+ self.common = {}
476
+ (_ktype55, _vtype56, _size54) = iprot.readMapBegin()
477
+ for _i58 in range(_size54):
478
+ _key59 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
479
+ _val60 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
480
+ self.common[_key59] = _val60
481
+ iprot.readMapEnd()
482
+ else:
483
+ iprot.skip(ftype)
484
+ elif fid == 2:
485
+ if ftype == TType.MAP:
486
+ self.modeClusterConfigs = {}
487
+ (_ktype62, _vtype63, _size61) = iprot.readMapBegin()
488
+ for _i65 in range(_size61):
489
+ _key66 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
490
+ _val67 = {}
491
+ (_ktype69, _vtype70, _size68) = iprot.readMapBegin()
492
+ for _i72 in range(_size68):
493
+ _key73 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
494
+ _val74 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
495
+ _val67[_key73] = _val74
496
+ iprot.readMapEnd()
497
+ self.modeClusterConfigs[_key66] = _val67
498
+ iprot.readMapEnd()
499
+ else:
500
+ iprot.skip(ftype)
501
+ else:
502
+ iprot.skip(ftype)
503
+ iprot.readFieldEnd()
504
+ iprot.readStructEnd()
505
+
506
+ def write(self, oprot):
507
+ self.validate()
508
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
509
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
510
+ return
511
+ oprot.writeStructBegin('ClusterConfigProperties')
512
+ if self.common is not None:
513
+ oprot.writeFieldBegin('common', TType.MAP, 1)
514
+ oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.common))
515
+ for kiter75, viter76 in self.common.items():
516
+ oprot.writeString(kiter75.encode('utf-8') if sys.version_info[0] == 2 else kiter75)
517
+ oprot.writeString(viter76.encode('utf-8') if sys.version_info[0] == 2 else viter76)
518
+ oprot.writeMapEnd()
519
+ oprot.writeFieldEnd()
520
+ if self.modeClusterConfigs is not None:
521
+ oprot.writeFieldBegin('modeClusterConfigs', TType.MAP, 2)
522
+ oprot.writeMapBegin(TType.STRING, TType.MAP, len(self.modeClusterConfigs))
523
+ for kiter77, viter78 in self.modeClusterConfigs.items():
524
+ oprot.writeString(kiter77.encode('utf-8') if sys.version_info[0] == 2 else kiter77)
525
+ oprot.writeMapBegin(TType.STRING, TType.STRING, len(viter78))
526
+ for kiter79, viter80 in viter78.items():
527
+ oprot.writeString(kiter79.encode('utf-8') if sys.version_info[0] == 2 else kiter79)
528
+ oprot.writeString(viter80.encode('utf-8') if sys.version_info[0] == 2 else viter80)
529
+ oprot.writeMapEnd()
530
+ oprot.writeMapEnd()
531
+ oprot.writeFieldEnd()
532
+ oprot.writeFieldStop()
533
+ oprot.writeStructEnd()
534
+
535
+ def validate(self):
536
+ return
537
+
538
+ def __repr__(self):
539
+ L = ['%s=%r' % (key, value)
540
+ for key, value in self.__dict__.items()]
541
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
542
+
543
+ def __eq__(self, other):
544
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
545
+
546
+ def __ne__(self, other):
547
+ return not (self == other)
548
+
549
+
550
+ class TableInfo(object):
551
+ """
552
+ Attributes:
553
+ - table
554
+ - partitionColumn
555
+ - partitionFormat
556
+ - partitionInterval
557
+ - isCumulative: If isCumulative is true, then for a given output partition any single partition from input on or after the output
558
+ is sufficient. What this means is that latest available partition prior to end cut off will be used.
559
+
560
+
561
+ """
562
+ thrift_spec = None
563
+
564
+
565
+ def __init__(self, table = None, partitionColumn = None, partitionFormat = None, partitionInterval = None, isCumulative = None,):
566
+ self.table = table
567
+ self.partitionColumn = partitionColumn
568
+ self.partitionFormat = partitionFormat
569
+ self.partitionInterval = partitionInterval
570
+ self.isCumulative = isCumulative
571
+
572
+ def read(self, iprot):
573
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
574
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
575
+ return
576
+ iprot.readStructBegin()
577
+ while True:
578
+ (fname, ftype, fid) = iprot.readFieldBegin()
579
+ if ftype == TType.STOP:
580
+ break
581
+ if fid == 1:
582
+ if ftype == TType.STRING:
583
+ self.table = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
584
+ else:
585
+ iprot.skip(ftype)
586
+ elif fid == 100:
587
+ if ftype == TType.STRING:
588
+ self.partitionColumn = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
589
+ else:
590
+ iprot.skip(ftype)
591
+ elif fid == 101:
592
+ if ftype == TType.STRING:
593
+ self.partitionFormat = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
594
+ else:
595
+ iprot.skip(ftype)
596
+ elif fid == 102:
597
+ if ftype == TType.STRUCT:
598
+ self.partitionInterval = Window()
599
+ self.partitionInterval.read(iprot)
600
+ else:
601
+ iprot.skip(ftype)
602
+ elif fid == 200:
603
+ if ftype == TType.BOOL:
604
+ self.isCumulative = iprot.readBool()
605
+ else:
606
+ iprot.skip(ftype)
607
+ else:
608
+ iprot.skip(ftype)
609
+ iprot.readFieldEnd()
610
+ iprot.readStructEnd()
611
+
612
+ def write(self, oprot):
613
+ self.validate()
614
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
615
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
616
+ return
617
+ oprot.writeStructBegin('TableInfo')
618
+ if self.table is not None:
619
+ oprot.writeFieldBegin('table', TType.STRING, 1)
620
+ oprot.writeString(self.table.encode('utf-8') if sys.version_info[0] == 2 else self.table)
621
+ oprot.writeFieldEnd()
622
+ if self.partitionColumn is not None:
623
+ oprot.writeFieldBegin('partitionColumn', TType.STRING, 100)
624
+ oprot.writeString(self.partitionColumn.encode('utf-8') if sys.version_info[0] == 2 else self.partitionColumn)
625
+ oprot.writeFieldEnd()
626
+ if self.partitionFormat is not None:
627
+ oprot.writeFieldBegin('partitionFormat', TType.STRING, 101)
628
+ oprot.writeString(self.partitionFormat.encode('utf-8') if sys.version_info[0] == 2 else self.partitionFormat)
629
+ oprot.writeFieldEnd()
630
+ if self.partitionInterval is not None:
631
+ oprot.writeFieldBegin('partitionInterval', TType.STRUCT, 102)
632
+ self.partitionInterval.write(oprot)
633
+ oprot.writeFieldEnd()
634
+ if self.isCumulative is not None:
635
+ oprot.writeFieldBegin('isCumulative', TType.BOOL, 200)
636
+ oprot.writeBool(self.isCumulative)
637
+ oprot.writeFieldEnd()
638
+ oprot.writeFieldStop()
639
+ oprot.writeStructEnd()
640
+
641
+ def validate(self):
642
+ return
643
+
644
+ def __repr__(self):
645
+ L = ['%s=%r' % (key, value)
646
+ for key, value in self.__dict__.items()]
647
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
648
+
649
+ def __eq__(self, other):
650
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
651
+
652
+ def __ne__(self, other):
653
+ return not (self == other)
654
+
655
+
656
+ class TableDependency(object):
657
+ """
658
+ Attributes:
659
+ - tableInfo
660
+ - startOffset
661
+ - endOffset
662
+ - startCutOff
663
+ - endCutOff
664
+ - forceCompute: JoinParts could use data from batch backfill-s or upload tables when available
665
+ When not available they shouldn't force computation of the backfills and upload tables.
666
+
667
+
668
+ """
669
+ thrift_spec = None
670
+
671
+
672
+ def __init__(self, tableInfo = None, startOffset = None, endOffset = None, startCutOff = None, endCutOff = None, forceCompute = None,):
673
+ self.tableInfo = tableInfo
674
+ self.startOffset = startOffset
675
+ self.endOffset = endOffset
676
+ self.startCutOff = startCutOff
677
+ self.endCutOff = endCutOff
678
+ self.forceCompute = forceCompute
679
+
680
+ def read(self, iprot):
681
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
682
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
683
+ return
684
+ iprot.readStructBegin()
685
+ while True:
686
+ (fname, ftype, fid) = iprot.readFieldBegin()
687
+ if ftype == TType.STOP:
688
+ break
689
+ if fid == 1:
690
+ if ftype == TType.STRUCT:
691
+ self.tableInfo = TableInfo()
692
+ self.tableInfo.read(iprot)
693
+ else:
694
+ iprot.skip(ftype)
695
+ elif fid == 2:
696
+ if ftype == TType.STRUCT:
697
+ self.startOffset = Window()
698
+ self.startOffset.read(iprot)
699
+ else:
700
+ iprot.skip(ftype)
701
+ elif fid == 3:
702
+ if ftype == TType.STRUCT:
703
+ self.endOffset = Window()
704
+ self.endOffset.read(iprot)
705
+ else:
706
+ iprot.skip(ftype)
707
+ elif fid == 4:
708
+ if ftype == TType.STRING:
709
+ self.startCutOff = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
710
+ else:
711
+ iprot.skip(ftype)
712
+ elif fid == 5:
713
+ if ftype == TType.STRING:
714
+ self.endCutOff = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
715
+ else:
716
+ iprot.skip(ftype)
717
+ elif fid == 201:
718
+ if ftype == TType.BOOL:
719
+ self.forceCompute = iprot.readBool()
720
+ else:
721
+ iprot.skip(ftype)
722
+ else:
723
+ iprot.skip(ftype)
724
+ iprot.readFieldEnd()
725
+ iprot.readStructEnd()
726
+
727
+ def write(self, oprot):
728
+ self.validate()
729
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
730
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
731
+ return
732
+ oprot.writeStructBegin('TableDependency')
733
+ if self.tableInfo is not None:
734
+ oprot.writeFieldBegin('tableInfo', TType.STRUCT, 1)
735
+ self.tableInfo.write(oprot)
736
+ oprot.writeFieldEnd()
737
+ if self.startOffset is not None:
738
+ oprot.writeFieldBegin('startOffset', TType.STRUCT, 2)
739
+ self.startOffset.write(oprot)
740
+ oprot.writeFieldEnd()
741
+ if self.endOffset is not None:
742
+ oprot.writeFieldBegin('endOffset', TType.STRUCT, 3)
743
+ self.endOffset.write(oprot)
744
+ oprot.writeFieldEnd()
745
+ if self.startCutOff is not None:
746
+ oprot.writeFieldBegin('startCutOff', TType.STRING, 4)
747
+ oprot.writeString(self.startCutOff.encode('utf-8') if sys.version_info[0] == 2 else self.startCutOff)
748
+ oprot.writeFieldEnd()
749
+ if self.endCutOff is not None:
750
+ oprot.writeFieldBegin('endCutOff', TType.STRING, 5)
751
+ oprot.writeString(self.endCutOff.encode('utf-8') if sys.version_info[0] == 2 else self.endCutOff)
752
+ oprot.writeFieldEnd()
753
+ if self.forceCompute is not None:
754
+ oprot.writeFieldBegin('forceCompute', TType.BOOL, 201)
755
+ oprot.writeBool(self.forceCompute)
756
+ oprot.writeFieldEnd()
757
+ oprot.writeFieldStop()
758
+ oprot.writeStructEnd()
759
+
760
+ def validate(self):
761
+ return
762
+
763
+ def __repr__(self):
764
+ L = ['%s=%r' % (key, value)
765
+ for key, value in self.__dict__.items()]
766
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
767
+
768
+ def __eq__(self, other):
769
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
770
+
771
+ def __ne__(self, other):
772
+ return not (self == other)
773
+
774
+
775
+ class KvInfo(object):
776
+ """
777
+ Attributes:
778
+ - cluster
779
+ - table
780
+ - keyBase64
781
+
782
+ """
783
+ thrift_spec = None
784
+
785
+
786
+ def __init__(self, cluster = None, table = None, keyBase64 = None,):
787
+ self.cluster = cluster
788
+ self.table = table
789
+ self.keyBase64 = keyBase64
790
+
791
+ def read(self, iprot):
792
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
793
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
794
+ return
795
+ iprot.readStructBegin()
796
+ while True:
797
+ (fname, ftype, fid) = iprot.readFieldBegin()
798
+ if ftype == TType.STOP:
799
+ break
800
+ if fid == 1:
801
+ if ftype == TType.STRING:
802
+ self.cluster = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
803
+ else:
804
+ iprot.skip(ftype)
805
+ elif fid == 2:
806
+ if ftype == TType.STRING:
807
+ self.table = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
808
+ else:
809
+ iprot.skip(ftype)
810
+ elif fid == 3:
811
+ if ftype == TType.STRING:
812
+ self.keyBase64 = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
813
+ else:
814
+ iprot.skip(ftype)
815
+ else:
816
+ iprot.skip(ftype)
817
+ iprot.readFieldEnd()
818
+ iprot.readStructEnd()
819
+
820
+ def write(self, oprot):
821
+ self.validate()
822
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
823
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
824
+ return
825
+ oprot.writeStructBegin('KvInfo')
826
+ if self.cluster is not None:
827
+ oprot.writeFieldBegin('cluster', TType.STRING, 1)
828
+ oprot.writeString(self.cluster.encode('utf-8') if sys.version_info[0] == 2 else self.cluster)
829
+ oprot.writeFieldEnd()
830
+ if self.table is not None:
831
+ oprot.writeFieldBegin('table', TType.STRING, 2)
832
+ oprot.writeString(self.table.encode('utf-8') if sys.version_info[0] == 2 else self.table)
833
+ oprot.writeFieldEnd()
834
+ if self.keyBase64 is not None:
835
+ oprot.writeFieldBegin('keyBase64', TType.STRING, 3)
836
+ oprot.writeString(self.keyBase64.encode('utf-8') if sys.version_info[0] == 2 else self.keyBase64)
837
+ oprot.writeFieldEnd()
838
+ oprot.writeFieldStop()
839
+ oprot.writeStructEnd()
840
+
841
+ def validate(self):
842
+ return
843
+
844
+ def __repr__(self):
845
+ L = ['%s=%r' % (key, value)
846
+ for key, value in self.__dict__.items()]
847
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
848
+
849
+ def __eq__(self, other):
850
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
851
+
852
+ def __ne__(self, other):
853
+ return not (self == other)
854
+
855
+
856
+ class KvDependency(object):
857
+ """
858
+ Attributes:
859
+ - kvInfo
860
+ - startMillis
861
+ - endMillis
862
+ - scanStrategy
863
+
864
+ """
865
+ thrift_spec = None
866
+
867
+
868
+ def __init__(self, kvInfo = None, startMillis = None, endMillis = None, scanStrategy = None,):
869
+ self.kvInfo = kvInfo
870
+ self.startMillis = startMillis
871
+ self.endMillis = endMillis
872
+ self.scanStrategy = scanStrategy
873
+
874
+ def read(self, iprot):
875
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
876
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
877
+ return
878
+ iprot.readStructBegin()
879
+ while True:
880
+ (fname, ftype, fid) = iprot.readFieldBegin()
881
+ if ftype == TType.STOP:
882
+ break
883
+ if fid == 1:
884
+ if ftype == TType.STRUCT:
885
+ self.kvInfo = KvInfo()
886
+ self.kvInfo.read(iprot)
887
+ else:
888
+ iprot.skip(ftype)
889
+ elif fid == 10:
890
+ if ftype == TType.I64:
891
+ self.startMillis = iprot.readI64()
892
+ else:
893
+ iprot.skip(ftype)
894
+ elif fid == 11:
895
+ if ftype == TType.I64:
896
+ self.endMillis = iprot.readI64()
897
+ else:
898
+ iprot.skip(ftype)
899
+ elif fid == 20:
900
+ if ftype == TType.I32:
901
+ self.scanStrategy = iprot.readI32()
902
+ else:
903
+ iprot.skip(ftype)
904
+ else:
905
+ iprot.skip(ftype)
906
+ iprot.readFieldEnd()
907
+ iprot.readStructEnd()
908
+
909
+ def write(self, oprot):
910
+ self.validate()
911
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
912
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
913
+ return
914
+ oprot.writeStructBegin('KvDependency')
915
+ if self.kvInfo is not None:
916
+ oprot.writeFieldBegin('kvInfo', TType.STRUCT, 1)
917
+ self.kvInfo.write(oprot)
918
+ oprot.writeFieldEnd()
919
+ if self.startMillis is not None:
920
+ oprot.writeFieldBegin('startMillis', TType.I64, 10)
921
+ oprot.writeI64(self.startMillis)
922
+ oprot.writeFieldEnd()
923
+ if self.endMillis is not None:
924
+ oprot.writeFieldBegin('endMillis', TType.I64, 11)
925
+ oprot.writeI64(self.endMillis)
926
+ oprot.writeFieldEnd()
927
+ if self.scanStrategy is not None:
928
+ oprot.writeFieldBegin('scanStrategy', TType.I32, 20)
929
+ oprot.writeI32(self.scanStrategy)
930
+ oprot.writeFieldEnd()
931
+ oprot.writeFieldStop()
932
+ oprot.writeStructEnd()
933
+
934
+ def validate(self):
935
+ return
936
+
937
+ def __repr__(self):
938
+ L = ['%s=%r' % (key, value)
939
+ for key, value in self.__dict__.items()]
940
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
941
+
942
+ def __eq__(self, other):
943
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
944
+
945
+ def __ne__(self, other):
946
+ return not (self == other)
947
+
948
+
949
+ class ExecutionInfo(object):
950
+ """
951
+ Attributes:
952
+ - env
953
+ - conf
954
+ - dependencyPollIntervalMillis
955
+ - healthCheckIntervalMillis
956
+ - clusterConf
957
+ - scheduleCron
958
+ - stepDays
959
+ - historicalBackfill
960
+ - tableDependencies
961
+ - outputTableInfo
962
+ - kvDependencies
963
+ - outputKvInfo
964
+ - kvPollIntervalMillis
965
+
966
+ """
967
+ thrift_spec = None
968
+
969
+
970
+ def __init__(self, env = None, conf = None, dependencyPollIntervalMillis = None, healthCheckIntervalMillis = None, clusterConf = None, scheduleCron = None, stepDays = None, historicalBackfill = None, tableDependencies = None, outputTableInfo = None, kvDependencies = None, outputKvInfo = None, kvPollIntervalMillis = None,):
971
+ self.env = env
972
+ self.conf = conf
973
+ self.dependencyPollIntervalMillis = dependencyPollIntervalMillis
974
+ self.healthCheckIntervalMillis = healthCheckIntervalMillis
975
+ self.clusterConf = clusterConf
976
+ self.scheduleCron = scheduleCron
977
+ self.stepDays = stepDays
978
+ self.historicalBackfill = historicalBackfill
979
+ self.tableDependencies = tableDependencies
980
+ self.outputTableInfo = outputTableInfo
981
+ self.kvDependencies = kvDependencies
982
+ self.outputKvInfo = outputKvInfo
983
+ self.kvPollIntervalMillis = kvPollIntervalMillis
984
+
985
+ def read(self, iprot):
986
+ if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
987
+ iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
988
+ return
989
+ iprot.readStructBegin()
990
+ while True:
991
+ (fname, ftype, fid) = iprot.readFieldBegin()
992
+ if ftype == TType.STOP:
993
+ break
994
+ if fid == 1:
995
+ if ftype == TType.STRUCT:
996
+ self.env = EnvironmentVariables()
997
+ self.env.read(iprot)
998
+ else:
999
+ iprot.skip(ftype)
1000
+ elif fid == 2:
1001
+ if ftype == TType.STRUCT:
1002
+ self.conf = ConfigProperties()
1003
+ self.conf.read(iprot)
1004
+ else:
1005
+ iprot.skip(ftype)
1006
+ elif fid == 3:
1007
+ if ftype == TType.I64:
1008
+ self.dependencyPollIntervalMillis = iprot.readI64()
1009
+ else:
1010
+ iprot.skip(ftype)
1011
+ elif fid == 4:
1012
+ if ftype == TType.I64:
1013
+ self.healthCheckIntervalMillis = iprot.readI64()
1014
+ else:
1015
+ iprot.skip(ftype)
1016
+ elif fid == 5:
1017
+ if ftype == TType.STRUCT:
1018
+ self.clusterConf = ClusterConfigProperties()
1019
+ self.clusterConf.read(iprot)
1020
+ else:
1021
+ iprot.skip(ftype)
1022
+ elif fid == 10:
1023
+ if ftype == TType.STRING:
1024
+ self.scheduleCron = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString()
1025
+ else:
1026
+ iprot.skip(ftype)
1027
+ elif fid == 11:
1028
+ if ftype == TType.I32:
1029
+ self.stepDays = iprot.readI32()
1030
+ else:
1031
+ iprot.skip(ftype)
1032
+ elif fid == 12:
1033
+ if ftype == TType.BOOL:
1034
+ self.historicalBackfill = iprot.readBool()
1035
+ else:
1036
+ iprot.skip(ftype)
1037
+ elif fid == 13:
1038
+ if ftype == TType.LIST:
1039
+ self.tableDependencies = []
1040
+ (_etype84, _size81) = iprot.readListBegin()
1041
+ for _i85 in range(_size81):
1042
+ _elem86 = TableDependency()
1043
+ _elem86.read(iprot)
1044
+ self.tableDependencies.append(_elem86)
1045
+ iprot.readListEnd()
1046
+ else:
1047
+ iprot.skip(ftype)
1048
+ elif fid == 14:
1049
+ if ftype == TType.STRUCT:
1050
+ self.outputTableInfo = TableInfo()
1051
+ self.outputTableInfo.read(iprot)
1052
+ else:
1053
+ iprot.skip(ftype)
1054
+ elif fid == 200:
1055
+ if ftype == TType.LIST:
1056
+ self.kvDependencies = []
1057
+ (_etype90, _size87) = iprot.readListBegin()
1058
+ for _i91 in range(_size87):
1059
+ _elem92 = KvDependency()
1060
+ _elem92.read(iprot)
1061
+ self.kvDependencies.append(_elem92)
1062
+ iprot.readListEnd()
1063
+ else:
1064
+ iprot.skip(ftype)
1065
+ elif fid == 201:
1066
+ if ftype == TType.STRUCT:
1067
+ self.outputKvInfo = KvInfo()
1068
+ self.outputKvInfo.read(iprot)
1069
+ else:
1070
+ iprot.skip(ftype)
1071
+ elif fid == 202:
1072
+ if ftype == TType.I64:
1073
+ self.kvPollIntervalMillis = iprot.readI64()
1074
+ else:
1075
+ iprot.skip(ftype)
1076
+ else:
1077
+ iprot.skip(ftype)
1078
+ iprot.readFieldEnd()
1079
+ iprot.readStructEnd()
1080
+
1081
+ def write(self, oprot):
1082
+ self.validate()
1083
+ if oprot._fast_encode is not None and self.thrift_spec is not None:
1084
+ oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
1085
+ return
1086
+ oprot.writeStructBegin('ExecutionInfo')
1087
+ if self.env is not None:
1088
+ oprot.writeFieldBegin('env', TType.STRUCT, 1)
1089
+ self.env.write(oprot)
1090
+ oprot.writeFieldEnd()
1091
+ if self.conf is not None:
1092
+ oprot.writeFieldBegin('conf', TType.STRUCT, 2)
1093
+ self.conf.write(oprot)
1094
+ oprot.writeFieldEnd()
1095
+ if self.dependencyPollIntervalMillis is not None:
1096
+ oprot.writeFieldBegin('dependencyPollIntervalMillis', TType.I64, 3)
1097
+ oprot.writeI64(self.dependencyPollIntervalMillis)
1098
+ oprot.writeFieldEnd()
1099
+ if self.healthCheckIntervalMillis is not None:
1100
+ oprot.writeFieldBegin('healthCheckIntervalMillis', TType.I64, 4)
1101
+ oprot.writeI64(self.healthCheckIntervalMillis)
1102
+ oprot.writeFieldEnd()
1103
+ if self.clusterConf is not None:
1104
+ oprot.writeFieldBegin('clusterConf', TType.STRUCT, 5)
1105
+ self.clusterConf.write(oprot)
1106
+ oprot.writeFieldEnd()
1107
+ if self.scheduleCron is not None:
1108
+ oprot.writeFieldBegin('scheduleCron', TType.STRING, 10)
1109
+ oprot.writeString(self.scheduleCron.encode('utf-8') if sys.version_info[0] == 2 else self.scheduleCron)
1110
+ oprot.writeFieldEnd()
1111
+ if self.stepDays is not None:
1112
+ oprot.writeFieldBegin('stepDays', TType.I32, 11)
1113
+ oprot.writeI32(self.stepDays)
1114
+ oprot.writeFieldEnd()
1115
+ if self.historicalBackfill is not None:
1116
+ oprot.writeFieldBegin('historicalBackfill', TType.BOOL, 12)
1117
+ oprot.writeBool(self.historicalBackfill)
1118
+ oprot.writeFieldEnd()
1119
+ if self.tableDependencies is not None:
1120
+ oprot.writeFieldBegin('tableDependencies', TType.LIST, 13)
1121
+ oprot.writeListBegin(TType.STRUCT, len(self.tableDependencies))
1122
+ for iter93 in self.tableDependencies:
1123
+ iter93.write(oprot)
1124
+ oprot.writeListEnd()
1125
+ oprot.writeFieldEnd()
1126
+ if self.outputTableInfo is not None:
1127
+ oprot.writeFieldBegin('outputTableInfo', TType.STRUCT, 14)
1128
+ self.outputTableInfo.write(oprot)
1129
+ oprot.writeFieldEnd()
1130
+ if self.kvDependencies is not None:
1131
+ oprot.writeFieldBegin('kvDependencies', TType.LIST, 200)
1132
+ oprot.writeListBegin(TType.STRUCT, len(self.kvDependencies))
1133
+ for iter94 in self.kvDependencies:
1134
+ iter94.write(oprot)
1135
+ oprot.writeListEnd()
1136
+ oprot.writeFieldEnd()
1137
+ if self.outputKvInfo is not None:
1138
+ oprot.writeFieldBegin('outputKvInfo', TType.STRUCT, 201)
1139
+ self.outputKvInfo.write(oprot)
1140
+ oprot.writeFieldEnd()
1141
+ if self.kvPollIntervalMillis is not None:
1142
+ oprot.writeFieldBegin('kvPollIntervalMillis', TType.I64, 202)
1143
+ oprot.writeI64(self.kvPollIntervalMillis)
1144
+ oprot.writeFieldEnd()
1145
+ oprot.writeFieldStop()
1146
+ oprot.writeStructEnd()
1147
+
1148
+ def validate(self):
1149
+ return
1150
+
1151
+ def __repr__(self):
1152
+ L = ['%s=%r' % (key, value)
1153
+ for key, value in self.__dict__.items()]
1154
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
1155
+
1156
+ def __eq__(self, other):
1157
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
1158
+
1159
+ def __ne__(self, other):
1160
+ return not (self == other)
1161
+ all_structs.append(Window)
1162
+ Window.thrift_spec = (
1163
+ None, # 0
1164
+ (1, TType.I32, 'length', None, None, ), # 1
1165
+ (2, TType.I32, 'timeUnit', None, None, ), # 2
1166
+ )
1167
+ all_structs.append(DateRange)
1168
+ DateRange.thrift_spec = (
1169
+ None, # 0
1170
+ (1, TType.STRING, 'startDate', 'UTF8', None, ), # 1
1171
+ (2, TType.STRING, 'endDate', 'UTF8', None, ), # 2
1172
+ )
1173
+ all_structs.append(EnvironmentVariables)
1174
+ EnvironmentVariables.thrift_spec = (
1175
+ None, # 0
1176
+ (1, TType.MAP, 'common', (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), {
1177
+ }, ), # 1
1178
+ (2, TType.MAP, 'modeEnvironments', (TType.STRING, 'UTF8', TType.MAP, (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), False), {
1179
+ }, ), # 2
1180
+ )
1181
+ all_structs.append(ConfigProperties)
1182
+ ConfigProperties.thrift_spec = (
1183
+ None, # 0
1184
+ (1, TType.MAP, 'common', (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), {
1185
+ }, ), # 1
1186
+ (2, TType.MAP, 'modeConfigs', (TType.STRING, 'UTF8', TType.MAP, (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), False), {
1187
+ }, ), # 2
1188
+ )
1189
+ all_structs.append(ClusterConfigProperties)
1190
+ ClusterConfigProperties.thrift_spec = (
1191
+ None, # 0
1192
+ (1, TType.MAP, 'common', (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), {
1193
+ }, ), # 1
1194
+ (2, TType.MAP, 'modeClusterConfigs', (TType.STRING, 'UTF8', TType.MAP, (TType.STRING, 'UTF8', TType.STRING, 'UTF8', False), False), {
1195
+ }, ), # 2
1196
+ )
1197
+ all_structs.append(TableInfo)
1198
+ TableInfo.thrift_spec = (
1199
+ None, # 0
1200
+ (1, TType.STRING, 'table', 'UTF8', None, ), # 1
1201
+ None, # 2
1202
+ None, # 3
1203
+ None, # 4
1204
+ None, # 5
1205
+ None, # 6
1206
+ None, # 7
1207
+ None, # 8
1208
+ None, # 9
1209
+ None, # 10
1210
+ None, # 11
1211
+ None, # 12
1212
+ None, # 13
1213
+ None, # 14
1214
+ None, # 15
1215
+ None, # 16
1216
+ None, # 17
1217
+ None, # 18
1218
+ None, # 19
1219
+ None, # 20
1220
+ None, # 21
1221
+ None, # 22
1222
+ None, # 23
1223
+ None, # 24
1224
+ None, # 25
1225
+ None, # 26
1226
+ None, # 27
1227
+ None, # 28
1228
+ None, # 29
1229
+ None, # 30
1230
+ None, # 31
1231
+ None, # 32
1232
+ None, # 33
1233
+ None, # 34
1234
+ None, # 35
1235
+ None, # 36
1236
+ None, # 37
1237
+ None, # 38
1238
+ None, # 39
1239
+ None, # 40
1240
+ None, # 41
1241
+ None, # 42
1242
+ None, # 43
1243
+ None, # 44
1244
+ None, # 45
1245
+ None, # 46
1246
+ None, # 47
1247
+ None, # 48
1248
+ None, # 49
1249
+ None, # 50
1250
+ None, # 51
1251
+ None, # 52
1252
+ None, # 53
1253
+ None, # 54
1254
+ None, # 55
1255
+ None, # 56
1256
+ None, # 57
1257
+ None, # 58
1258
+ None, # 59
1259
+ None, # 60
1260
+ None, # 61
1261
+ None, # 62
1262
+ None, # 63
1263
+ None, # 64
1264
+ None, # 65
1265
+ None, # 66
1266
+ None, # 67
1267
+ None, # 68
1268
+ None, # 69
1269
+ None, # 70
1270
+ None, # 71
1271
+ None, # 72
1272
+ None, # 73
1273
+ None, # 74
1274
+ None, # 75
1275
+ None, # 76
1276
+ None, # 77
1277
+ None, # 78
1278
+ None, # 79
1279
+ None, # 80
1280
+ None, # 81
1281
+ None, # 82
1282
+ None, # 83
1283
+ None, # 84
1284
+ None, # 85
1285
+ None, # 86
1286
+ None, # 87
1287
+ None, # 88
1288
+ None, # 89
1289
+ None, # 90
1290
+ None, # 91
1291
+ None, # 92
1292
+ None, # 93
1293
+ None, # 94
1294
+ None, # 95
1295
+ None, # 96
1296
+ None, # 97
1297
+ None, # 98
1298
+ None, # 99
1299
+ (100, TType.STRING, 'partitionColumn', 'UTF8', None, ), # 100
1300
+ (101, TType.STRING, 'partitionFormat', 'UTF8', None, ), # 101
1301
+ (102, TType.STRUCT, 'partitionInterval', [Window, None], None, ), # 102
1302
+ None, # 103
1303
+ None, # 104
1304
+ None, # 105
1305
+ None, # 106
1306
+ None, # 107
1307
+ None, # 108
1308
+ None, # 109
1309
+ None, # 110
1310
+ None, # 111
1311
+ None, # 112
1312
+ None, # 113
1313
+ None, # 114
1314
+ None, # 115
1315
+ None, # 116
1316
+ None, # 117
1317
+ None, # 118
1318
+ None, # 119
1319
+ None, # 120
1320
+ None, # 121
1321
+ None, # 122
1322
+ None, # 123
1323
+ None, # 124
1324
+ None, # 125
1325
+ None, # 126
1326
+ None, # 127
1327
+ None, # 128
1328
+ None, # 129
1329
+ None, # 130
1330
+ None, # 131
1331
+ None, # 132
1332
+ None, # 133
1333
+ None, # 134
1334
+ None, # 135
1335
+ None, # 136
1336
+ None, # 137
1337
+ None, # 138
1338
+ None, # 139
1339
+ None, # 140
1340
+ None, # 141
1341
+ None, # 142
1342
+ None, # 143
1343
+ None, # 144
1344
+ None, # 145
1345
+ None, # 146
1346
+ None, # 147
1347
+ None, # 148
1348
+ None, # 149
1349
+ None, # 150
1350
+ None, # 151
1351
+ None, # 152
1352
+ None, # 153
1353
+ None, # 154
1354
+ None, # 155
1355
+ None, # 156
1356
+ None, # 157
1357
+ None, # 158
1358
+ None, # 159
1359
+ None, # 160
1360
+ None, # 161
1361
+ None, # 162
1362
+ None, # 163
1363
+ None, # 164
1364
+ None, # 165
1365
+ None, # 166
1366
+ None, # 167
1367
+ None, # 168
1368
+ None, # 169
1369
+ None, # 170
1370
+ None, # 171
1371
+ None, # 172
1372
+ None, # 173
1373
+ None, # 174
1374
+ None, # 175
1375
+ None, # 176
1376
+ None, # 177
1377
+ None, # 178
1378
+ None, # 179
1379
+ None, # 180
1380
+ None, # 181
1381
+ None, # 182
1382
+ None, # 183
1383
+ None, # 184
1384
+ None, # 185
1385
+ None, # 186
1386
+ None, # 187
1387
+ None, # 188
1388
+ None, # 189
1389
+ None, # 190
1390
+ None, # 191
1391
+ None, # 192
1392
+ None, # 193
1393
+ None, # 194
1394
+ None, # 195
1395
+ None, # 196
1396
+ None, # 197
1397
+ None, # 198
1398
+ None, # 199
1399
+ (200, TType.BOOL, 'isCumulative', None, None, ), # 200
1400
+ )
1401
+ all_structs.append(TableDependency)
1402
+ TableDependency.thrift_spec = (
1403
+ None, # 0
1404
+ (1, TType.STRUCT, 'tableInfo', [TableInfo, None], None, ), # 1
1405
+ (2, TType.STRUCT, 'startOffset', [Window, None], None, ), # 2
1406
+ (3, TType.STRUCT, 'endOffset', [Window, None], None, ), # 3
1407
+ (4, TType.STRING, 'startCutOff', 'UTF8', None, ), # 4
1408
+ (5, TType.STRING, 'endCutOff', 'UTF8', None, ), # 5
1409
+ None, # 6
1410
+ None, # 7
1411
+ None, # 8
1412
+ None, # 9
1413
+ None, # 10
1414
+ None, # 11
1415
+ None, # 12
1416
+ None, # 13
1417
+ None, # 14
1418
+ None, # 15
1419
+ None, # 16
1420
+ None, # 17
1421
+ None, # 18
1422
+ None, # 19
1423
+ None, # 20
1424
+ None, # 21
1425
+ None, # 22
1426
+ None, # 23
1427
+ None, # 24
1428
+ None, # 25
1429
+ None, # 26
1430
+ None, # 27
1431
+ None, # 28
1432
+ None, # 29
1433
+ None, # 30
1434
+ None, # 31
1435
+ None, # 32
1436
+ None, # 33
1437
+ None, # 34
1438
+ None, # 35
1439
+ None, # 36
1440
+ None, # 37
1441
+ None, # 38
1442
+ None, # 39
1443
+ None, # 40
1444
+ None, # 41
1445
+ None, # 42
1446
+ None, # 43
1447
+ None, # 44
1448
+ None, # 45
1449
+ None, # 46
1450
+ None, # 47
1451
+ None, # 48
1452
+ None, # 49
1453
+ None, # 50
1454
+ None, # 51
1455
+ None, # 52
1456
+ None, # 53
1457
+ None, # 54
1458
+ None, # 55
1459
+ None, # 56
1460
+ None, # 57
1461
+ None, # 58
1462
+ None, # 59
1463
+ None, # 60
1464
+ None, # 61
1465
+ None, # 62
1466
+ None, # 63
1467
+ None, # 64
1468
+ None, # 65
1469
+ None, # 66
1470
+ None, # 67
1471
+ None, # 68
1472
+ None, # 69
1473
+ None, # 70
1474
+ None, # 71
1475
+ None, # 72
1476
+ None, # 73
1477
+ None, # 74
1478
+ None, # 75
1479
+ None, # 76
1480
+ None, # 77
1481
+ None, # 78
1482
+ None, # 79
1483
+ None, # 80
1484
+ None, # 81
1485
+ None, # 82
1486
+ None, # 83
1487
+ None, # 84
1488
+ None, # 85
1489
+ None, # 86
1490
+ None, # 87
1491
+ None, # 88
1492
+ None, # 89
1493
+ None, # 90
1494
+ None, # 91
1495
+ None, # 92
1496
+ None, # 93
1497
+ None, # 94
1498
+ None, # 95
1499
+ None, # 96
1500
+ None, # 97
1501
+ None, # 98
1502
+ None, # 99
1503
+ None, # 100
1504
+ None, # 101
1505
+ None, # 102
1506
+ None, # 103
1507
+ None, # 104
1508
+ None, # 105
1509
+ None, # 106
1510
+ None, # 107
1511
+ None, # 108
1512
+ None, # 109
1513
+ None, # 110
1514
+ None, # 111
1515
+ None, # 112
1516
+ None, # 113
1517
+ None, # 114
1518
+ None, # 115
1519
+ None, # 116
1520
+ None, # 117
1521
+ None, # 118
1522
+ None, # 119
1523
+ None, # 120
1524
+ None, # 121
1525
+ None, # 122
1526
+ None, # 123
1527
+ None, # 124
1528
+ None, # 125
1529
+ None, # 126
1530
+ None, # 127
1531
+ None, # 128
1532
+ None, # 129
1533
+ None, # 130
1534
+ None, # 131
1535
+ None, # 132
1536
+ None, # 133
1537
+ None, # 134
1538
+ None, # 135
1539
+ None, # 136
1540
+ None, # 137
1541
+ None, # 138
1542
+ None, # 139
1543
+ None, # 140
1544
+ None, # 141
1545
+ None, # 142
1546
+ None, # 143
1547
+ None, # 144
1548
+ None, # 145
1549
+ None, # 146
1550
+ None, # 147
1551
+ None, # 148
1552
+ None, # 149
1553
+ None, # 150
1554
+ None, # 151
1555
+ None, # 152
1556
+ None, # 153
1557
+ None, # 154
1558
+ None, # 155
1559
+ None, # 156
1560
+ None, # 157
1561
+ None, # 158
1562
+ None, # 159
1563
+ None, # 160
1564
+ None, # 161
1565
+ None, # 162
1566
+ None, # 163
1567
+ None, # 164
1568
+ None, # 165
1569
+ None, # 166
1570
+ None, # 167
1571
+ None, # 168
1572
+ None, # 169
1573
+ None, # 170
1574
+ None, # 171
1575
+ None, # 172
1576
+ None, # 173
1577
+ None, # 174
1578
+ None, # 175
1579
+ None, # 176
1580
+ None, # 177
1581
+ None, # 178
1582
+ None, # 179
1583
+ None, # 180
1584
+ None, # 181
1585
+ None, # 182
1586
+ None, # 183
1587
+ None, # 184
1588
+ None, # 185
1589
+ None, # 186
1590
+ None, # 187
1591
+ None, # 188
1592
+ None, # 189
1593
+ None, # 190
1594
+ None, # 191
1595
+ None, # 192
1596
+ None, # 193
1597
+ None, # 194
1598
+ None, # 195
1599
+ None, # 196
1600
+ None, # 197
1601
+ None, # 198
1602
+ None, # 199
1603
+ None, # 200
1604
+ (201, TType.BOOL, 'forceCompute', None, None, ), # 201
1605
+ )
1606
+ all_structs.append(KvInfo)
1607
+ KvInfo.thrift_spec = (
1608
+ None, # 0
1609
+ (1, TType.STRING, 'cluster', 'UTF8', None, ), # 1
1610
+ (2, TType.STRING, 'table', 'UTF8', None, ), # 2
1611
+ (3, TType.STRING, 'keyBase64', 'UTF8', None, ), # 3
1612
+ )
1613
+ all_structs.append(KvDependency)
1614
+ KvDependency.thrift_spec = (
1615
+ None, # 0
1616
+ (1, TType.STRUCT, 'kvInfo', [KvInfo, None], None, ), # 1
1617
+ None, # 2
1618
+ None, # 3
1619
+ None, # 4
1620
+ None, # 5
1621
+ None, # 6
1622
+ None, # 7
1623
+ None, # 8
1624
+ None, # 9
1625
+ (10, TType.I64, 'startMillis', None, None, ), # 10
1626
+ (11, TType.I64, 'endMillis', None, None, ), # 11
1627
+ None, # 12
1628
+ None, # 13
1629
+ None, # 14
1630
+ None, # 15
1631
+ None, # 16
1632
+ None, # 17
1633
+ None, # 18
1634
+ None, # 19
1635
+ (20, TType.I32, 'scanStrategy', None, None, ), # 20
1636
+ )
1637
+ all_structs.append(ExecutionInfo)
1638
+ ExecutionInfo.thrift_spec = (
1639
+ None, # 0
1640
+ (1, TType.STRUCT, 'env', [EnvironmentVariables, None], None, ), # 1
1641
+ (2, TType.STRUCT, 'conf', [ConfigProperties, None], None, ), # 2
1642
+ (3, TType.I64, 'dependencyPollIntervalMillis', None, None, ), # 3
1643
+ (4, TType.I64, 'healthCheckIntervalMillis', None, None, ), # 4
1644
+ (5, TType.STRUCT, 'clusterConf', [ClusterConfigProperties, None], None, ), # 5
1645
+ None, # 6
1646
+ None, # 7
1647
+ None, # 8
1648
+ None, # 9
1649
+ (10, TType.STRING, 'scheduleCron', 'UTF8', None, ), # 10
1650
+ (11, TType.I32, 'stepDays', None, None, ), # 11
1651
+ (12, TType.BOOL, 'historicalBackfill', None, None, ), # 12
1652
+ (13, TType.LIST, 'tableDependencies', (TType.STRUCT, [TableDependency, None], False), None, ), # 13
1653
+ (14, TType.STRUCT, 'outputTableInfo', [TableInfo, None], None, ), # 14
1654
+ None, # 15
1655
+ None, # 16
1656
+ None, # 17
1657
+ None, # 18
1658
+ None, # 19
1659
+ None, # 20
1660
+ None, # 21
1661
+ None, # 22
1662
+ None, # 23
1663
+ None, # 24
1664
+ None, # 25
1665
+ None, # 26
1666
+ None, # 27
1667
+ None, # 28
1668
+ None, # 29
1669
+ None, # 30
1670
+ None, # 31
1671
+ None, # 32
1672
+ None, # 33
1673
+ None, # 34
1674
+ None, # 35
1675
+ None, # 36
1676
+ None, # 37
1677
+ None, # 38
1678
+ None, # 39
1679
+ None, # 40
1680
+ None, # 41
1681
+ None, # 42
1682
+ None, # 43
1683
+ None, # 44
1684
+ None, # 45
1685
+ None, # 46
1686
+ None, # 47
1687
+ None, # 48
1688
+ None, # 49
1689
+ None, # 50
1690
+ None, # 51
1691
+ None, # 52
1692
+ None, # 53
1693
+ None, # 54
1694
+ None, # 55
1695
+ None, # 56
1696
+ None, # 57
1697
+ None, # 58
1698
+ None, # 59
1699
+ None, # 60
1700
+ None, # 61
1701
+ None, # 62
1702
+ None, # 63
1703
+ None, # 64
1704
+ None, # 65
1705
+ None, # 66
1706
+ None, # 67
1707
+ None, # 68
1708
+ None, # 69
1709
+ None, # 70
1710
+ None, # 71
1711
+ None, # 72
1712
+ None, # 73
1713
+ None, # 74
1714
+ None, # 75
1715
+ None, # 76
1716
+ None, # 77
1717
+ None, # 78
1718
+ None, # 79
1719
+ None, # 80
1720
+ None, # 81
1721
+ None, # 82
1722
+ None, # 83
1723
+ None, # 84
1724
+ None, # 85
1725
+ None, # 86
1726
+ None, # 87
1727
+ None, # 88
1728
+ None, # 89
1729
+ None, # 90
1730
+ None, # 91
1731
+ None, # 92
1732
+ None, # 93
1733
+ None, # 94
1734
+ None, # 95
1735
+ None, # 96
1736
+ None, # 97
1737
+ None, # 98
1738
+ None, # 99
1739
+ None, # 100
1740
+ None, # 101
1741
+ None, # 102
1742
+ None, # 103
1743
+ None, # 104
1744
+ None, # 105
1745
+ None, # 106
1746
+ None, # 107
1747
+ None, # 108
1748
+ None, # 109
1749
+ None, # 110
1750
+ None, # 111
1751
+ None, # 112
1752
+ None, # 113
1753
+ None, # 114
1754
+ None, # 115
1755
+ None, # 116
1756
+ None, # 117
1757
+ None, # 118
1758
+ None, # 119
1759
+ None, # 120
1760
+ None, # 121
1761
+ None, # 122
1762
+ None, # 123
1763
+ None, # 124
1764
+ None, # 125
1765
+ None, # 126
1766
+ None, # 127
1767
+ None, # 128
1768
+ None, # 129
1769
+ None, # 130
1770
+ None, # 131
1771
+ None, # 132
1772
+ None, # 133
1773
+ None, # 134
1774
+ None, # 135
1775
+ None, # 136
1776
+ None, # 137
1777
+ None, # 138
1778
+ None, # 139
1779
+ None, # 140
1780
+ None, # 141
1781
+ None, # 142
1782
+ None, # 143
1783
+ None, # 144
1784
+ None, # 145
1785
+ None, # 146
1786
+ None, # 147
1787
+ None, # 148
1788
+ None, # 149
1789
+ None, # 150
1790
+ None, # 151
1791
+ None, # 152
1792
+ None, # 153
1793
+ None, # 154
1794
+ None, # 155
1795
+ None, # 156
1796
+ None, # 157
1797
+ None, # 158
1798
+ None, # 159
1799
+ None, # 160
1800
+ None, # 161
1801
+ None, # 162
1802
+ None, # 163
1803
+ None, # 164
1804
+ None, # 165
1805
+ None, # 166
1806
+ None, # 167
1807
+ None, # 168
1808
+ None, # 169
1809
+ None, # 170
1810
+ None, # 171
1811
+ None, # 172
1812
+ None, # 173
1813
+ None, # 174
1814
+ None, # 175
1815
+ None, # 176
1816
+ None, # 177
1817
+ None, # 178
1818
+ None, # 179
1819
+ None, # 180
1820
+ None, # 181
1821
+ None, # 182
1822
+ None, # 183
1823
+ None, # 184
1824
+ None, # 185
1825
+ None, # 186
1826
+ None, # 187
1827
+ None, # 188
1828
+ None, # 189
1829
+ None, # 190
1830
+ None, # 191
1831
+ None, # 192
1832
+ None, # 193
1833
+ None, # 194
1834
+ None, # 195
1835
+ None, # 196
1836
+ None, # 197
1837
+ None, # 198
1838
+ None, # 199
1839
+ (200, TType.LIST, 'kvDependencies', (TType.STRUCT, [KvDependency, None], False), None, ), # 200
1840
+ (201, TType.STRUCT, 'outputKvInfo', [KvInfo, None], None, ), # 201
1841
+ (202, TType.I64, 'kvPollIntervalMillis', None, None, ), # 202
1842
+ )
1843
+ fix_spec(all_structs)
1844
+ del all_structs