openubmc-bingo 0.6.70__py3-none-any.whl → 0.6.73__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.

Potentially problematic release.


This version of openubmc-bingo might be problematic. Click here for more details.

bmcgo/__init__.py CHANGED
@@ -9,4 +9,4 @@
9
9
  # MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
10
10
  # See the Mulan PSL v2 for more details.
11
11
 
12
- __version__ = '0.6.70'
12
+ __version__ = '0.6.73'
bmcgo/codegen/__init__.py CHANGED
@@ -11,4 +11,4 @@
11
11
 
12
12
  # 非常重要,修改bmcgo后如果自动生成代码有变更的,必须变更__version__字段
13
13
  # 该版本号会传入mako渲染,在自动生成变更时需要做到向下兼容,确保代码自动生成功能OK
14
- __version__ = 18
14
+ __version__ = 19
@@ -33,6 +33,7 @@ class IntfPool:
33
33
  self.add_from_service(os.path.join(root, file))
34
34
  if file == "model.json":
35
35
  self.add_from_model(os.path.join(root, file))
36
+ self.pool["Properties"].add("bmc.kepler.Object.Properties")
36
37
 
37
38
  if project_name == 'hwproxy':
38
39
  for root, _, files in os.walk(os.path.join(mdb_path, "intf/mdb/bmc/dev")):
@@ -18,6 +18,7 @@ class Options:
18
18
  self.source_file_path: str = options.source_file_path
19
19
  self.template_name: str = options.template_name
20
20
  self.output_file_path: str = options.output_file_path
21
+ self.ignore_empty_input: bool = options.ignore_empty_input
21
22
  self.enable_auto_merge: bool = options.enable_auto_merge
22
23
  self.project_name = options.project_name
23
24
  self.version = options.version
@@ -380,7 +380,7 @@ def rectify_local_db(historical_local_db_file, out_dict):
380
380
  table_info["properties"] = new_props
381
381
 
382
382
 
383
- def save_json_file(is_local, load_dict, historical_local_db_file, of_name, disable_gen=False):
383
+ def save_json_file(is_local, load_dict, historical_local_db_file, of_name, disable_gen):
384
384
  package = of_name.split("/")[-2]
385
385
  extra_imports = set()
386
386
  datas = make_datas(load_dict, package, extra_imports, is_local)
@@ -420,8 +420,9 @@ def generate(if_name, historical_local_db_file, of_name):
420
420
  load_dict = json.load(load_f)
421
421
  load_f.close()
422
422
  disable_mem_db_gen = Utils.get_lua_codegen_version() >= 7 and not Utils.check_model_need_mem_db(load_dict)
423
- save_json_file(False, load_dict, historical_local_db_file, of_name, disable_gen=disable_mem_db_gen) # 保存普通持久化的表
424
- save_json_file(True, load_dict, historical_local_db_file, of_name) # 保存本地持久化的表
423
+ save_json_file(False, load_dict, historical_local_db_file, of_name, disable_mem_db_gen) # 保存普通持久化的表
424
+ disable_local_db_gen = Utils.get_lua_codegen_version() >= 19 and not Utils.check_model_need_local_db(load_dict)
425
+ save_json_file(True, load_dict, historical_local_db_file, of_name, disable_local_db_gen) # 保存本地持久化的表
425
426
 
426
427
 
427
428
  def usage():
@@ -16,6 +16,7 @@ import getopt
16
16
  import sys
17
17
  import os
18
18
  import stat
19
+ from collections import defaultdict
19
20
  import mds_util as utils
20
21
  from utils import Utils
21
22
 
@@ -43,6 +44,18 @@ PROPERTY_FLAGS = {
43
44
  OPTIONS = 'options'
44
45
 
45
46
 
47
+ def modify_common_interface_messages(messages):
48
+ if Utils.get_lua_codegen_version() < 19:
49
+ return
50
+ intf_map = Utils.get_unique_intf_map()
51
+ require_paths = {}
52
+ for intf_name, require_path in Utils.COMMON_INTERFACE_REQUIRE_PATHS.items():
53
+ unique_intf_name = intf_map.get(intf_name)
54
+ if unique_intf_name and unique_intf_name in messages:
55
+ messages[unique_intf_name]['require_path'] = require_path
56
+ messages[unique_intf_name]['disable_gen'] = True
57
+
58
+
46
59
  def is_struct(prop_data):
47
60
  if 'baseType' not in prop_data:
48
61
  return True
@@ -166,8 +179,9 @@ def save_msg(intfs, out_dir, project_name):
166
179
  "package": pkg_name,
167
180
  "options": {},
168
181
  "filename": file_name,
169
- "require_path": f"{project_name}.{require_dir}.{pkg_name}",
182
+ "require_path": pkg_data.get("require_path", f"{project_name}.{require_dir}.{pkg_name}"),
170
183
  "intf": pkg_data["data"] if "data" in pkg_data else {},
184
+ "disable_gen": pkg_data.get("disable_gen", False)
171
185
  }
172
186
  utils.save_proto_json(f"{new_out_dir}/{file_name}.json", datas)
173
187
 
@@ -219,7 +233,7 @@ def update_package(package, msg_name, struct_data, msg_package, imports):
219
233
 
220
234
 
221
235
  # 为结构体生成message
222
- def gen_defs(defs, msg_package, packages, imports=None):
236
+ def gen_defs(defs, msg_package, packages, imports=None, package_filter=None):
223
237
  if imports is None:
224
238
  imports = {}
225
239
 
@@ -228,6 +242,8 @@ def gen_defs(defs, msg_package, packages, imports=None):
228
242
 
229
243
  package = packages[msg_package]
230
244
  for struct_name, struct_data in defs.items():
245
+ if package_filter and not package_filter.get("defs", {}).get(struct_name, True):
246
+ continue
231
247
  msg_name = struct_name
232
248
  if not check_duplicate_msg(package["messages"], msg_name):
233
249
  update_package(package, msg_name, struct_data, msg_package, imports)
@@ -265,7 +281,7 @@ def convert_property_options(intf, property_name: str, options_data: dict):
265
281
  return flags
266
282
 
267
283
 
268
- def generate_message(intf_data, intf, packages, imports):
284
+ def generate_message(intf_data, intf, packages, imports, package_filter=None):
269
285
  msg_package = Utils.get_unique_intf_name(intf)
270
286
 
271
287
  if msg_package not in packages:
@@ -273,7 +289,7 @@ def generate_message(intf_data, intf, packages, imports):
273
289
  package = packages[msg_package]
274
290
  package["data"] = {"name": intf, "data": intf_data}
275
291
 
276
- if "methods" in intf_data:
292
+ if "methods" in intf_data and (not package_filter or package_filter.get("methods")):
277
293
  for method_name, method_data in intf_data["methods"].items():
278
294
  req_name = method_name + "Req"
279
295
  rsp_name = method_name + "Rsp"
@@ -285,14 +301,14 @@ def generate_message(intf_data, intf, packages, imports):
285
301
  update_package(package, rsp_name, get_rsp(
286
302
  method_data), msg_package, imports)
287
303
 
288
- if "signals" in intf_data:
304
+ if "signals" in intf_data and (not package_filter or package_filter.get("signals")):
289
305
  for signal_name, signal_data in intf_data["signals"].items():
290
306
  signature_name = signal_name + "Signature"
291
307
  if not check_duplicate_msg(package["messages"], signature_name):
292
308
  update_package(package, signature_name,
293
309
  signal_data, msg_package, imports)
294
310
 
295
- if "properties" in intf_data:
311
+ if "properties" in intf_data and (not package_filter or package_filter.get("properties")):
296
312
  for property_name, property_data in intf_data["properties"].items():
297
313
  if not check_duplicate_msg(package["messages"], property_name):
298
314
  update_package(package, property_name,
@@ -365,6 +381,7 @@ def gen_service_msg(model_merged_file, of_name, mdb_path, project_name):
365
381
  messages = {}
366
382
  imports = {}
367
383
  get_service_messages(mdb_path, load_dict, messages, imports)
384
+ modify_common_interface_messages(messages)
368
385
  save_msg(messages, of_name, project_name)
369
386
  load_f.close()
370
387
 
@@ -387,15 +404,54 @@ def gen_model_msg(model_merged_file, of_name):
387
404
  load_f.close()
388
405
 
389
406
 
390
- def gen_client_msg_intf(intf_json, intf, messages):
407
+ def gen_client_msg_intf(intf_json, intf, messages, package_filter=None):
391
408
  imports = {}
392
409
  for intf_name, intf_data in intf_json.items():
393
410
  if intf_name == "defs":
394
- gen_defs(intf_data, Utils.get_unique_intf_name(intf), messages)
411
+ gen_defs(intf_data, Utils.get_unique_intf_name(intf), messages, None, package_filter)
395
412
  else:
396
413
  prepare_intf_data(intf_json, intf_name)
397
414
  prepare_virutal(intf_data)
398
- generate_message(intf_data, intf_name, messages, imports)
415
+ generate_message(intf_data, intf_name, messages, imports, package_filter)
416
+
417
+
418
+ def parse_ref_items(input_data, refs):
419
+ for key, value in input_data.items():
420
+ if key != "$ref":
421
+ if isinstance(value, dict):
422
+ parse_ref_items(value, refs)
423
+ continue
424
+ if isinstance(value, str) and value.startswith("#/defs/"):
425
+ refs[value.replace("#/defs/", "")] = input_data.get("baseType") == "Enum"
426
+
427
+
428
+ def set_def_enbale_gen(input_data, defs_enable_gen, enabled):
429
+ refs = dict()
430
+ parse_ref_items(input_data, refs)
431
+ for ref, is_enum in refs.items():
432
+ if ref in defs_enable_gen:
433
+ defs_enable_gen[ref] = enabled or is_enum
434
+
435
+
436
+ def parse_interface_defs(intf_json, package_filter):
437
+ defs_data = intf_json.get("defs", {})
438
+ if not defs_data:
439
+ return {}
440
+ defs_enable_gen = {def_name: False for def_name in defs_data.keys()}
441
+ for intf_name, intf_data in intf_json.items():
442
+ if intf_name == "defs":
443
+ continue
444
+ for category, enable_gen in package_filter.items():
445
+ for item_data in intf_data.get(category, {}).values():
446
+ # 属性、方法、信号如果需要生成校验器,它们引用的自定义类型也需要生成校验器
447
+ # 枚举类型可能被用于属性默认值,也需要生成
448
+ set_def_enbale_gen(item_data, defs_enable_gen, enable_gen)
449
+
450
+ for def_name, def_data in defs_data.items():
451
+ if defs_enable_gen.get(def_name):
452
+ # 自定义类型如果需要生成校验器,它们引用的其它自定义类型也需要生成校验器
453
+ set_def_enbale_gen(def_data, defs_enable_gen, True)
454
+ return defs_enable_gen
399
455
 
400
456
 
401
457
  def gen_client_msg(service_file, output, mdb_path, project_name):
@@ -412,8 +468,19 @@ def gen_client_msg(service_file, output, mdb_path, project_name):
412
468
  intf_json = utils.get_intf(intf, mdb_path)
413
469
  if "implement" in intf_json[intf]:
414
470
  intf_json = utils.generate_default(intf_json, mdb_path)
415
- gen_client_msg_intf(intf_json, intf, messages)
416
-
471
+ package_filter = None
472
+ if Utils.get_lua_codegen_version() >= 19:
473
+ # 客户端用到的接口,不需要生成属性校验器、信号参数校验器,只需要生成方法参数校验器
474
+ # package_filter里面True表示需要生成,False表示不需要生成
475
+ package_filter = {
476
+ "properties": False,
477
+ "methods": True,
478
+ "signals": False
479
+ }
480
+ package_filter["defs"] = parse_interface_defs(intf_json, package_filter)
481
+ gen_client_msg_intf(intf_json, intf, messages, package_filter)
482
+
483
+ modify_common_interface_messages(messages)
417
484
  save_msg(messages, output, project_name)
418
485
  load_f.close()
419
486
 
@@ -215,6 +215,9 @@ class ModelLuaUtils(Base, Utils):
215
215
  def get_mdb_prop_configs(self, msg):
216
216
  string = '{'
217
217
  for (interface, intf_msg) in msg['interfaces'].items():
218
+ if Utils.get_lua_codegen_version() >= 19 and interface == 'bmc.kepler.Object.Properties':
219
+ string += f"['{interface}'] = mdb.OBJECT_PROPERTIES_INTERFACE_PROP_CONFIGS,"
220
+ continue
218
221
  if not self.has_properties(intf_msg):
219
222
  continue
220
223
  intf_name = self.get_intf_name(interface, intf_msg)
@@ -455,7 +458,8 @@ class ModelLuaUtils(Base, Utils):
455
458
  for (interface, intf_msg) in msg.get('interfaces', {}).items():
456
459
  intf_name = self.get_intf_name(interface, intf_msg)
457
460
  intf_type = self.get_intf_type(intf_name)
458
- types[intf_type] = f"local {intf_type} = require '{project_name}.json_types.{intf_name}'\n"
461
+ path = Utils.get_interface_require_path(interface, project_name, intf_name)
462
+ types[intf_type] = f"local {intf_type} = require '{path}'\n"
459
463
  return types
460
464
 
461
465
  def render_types(self, project_name, root):
@@ -52,6 +52,9 @@ def parse_input_args() -> Options:
52
52
  parser.add_argument("-v", "--version", dest="version",
53
53
  help="version",
54
54
  default=-1)
55
+ parser.add_argument("--ignore_empty_input", dest="ignore_empty_input",
56
+ help="Whether to stop generating result file when input is empty",
57
+ action=misc.STORE_TRUE, default=False)
55
58
  parser.add_argument("--enable_auto_merge", dest="enable_auto_merge",
56
59
  help="Whether result files are automatically combined when customized.",
57
60
  action=misc.STORE_TRUE, default=False)
@@ -130,6 +133,8 @@ def generate(options: Options):
130
133
  if os.path.exists(options.output_file_path):
131
134
  os.remove(options.output_file_path)
132
135
  load_imports(data, options)
136
+ if not data and options.ignore_empty_input and utils.Utils.get_lua_codegen_version() >= 19:
137
+ return
133
138
  os.makedirs(os.path.dirname(options.output_file_path), exist_ok=True)
134
139
  output_file = os.fdopen(os.open(options.output_file_path,
135
140
  os.O_WRONLY | os.O_CREAT | os.O_TRUNC, stat.S_IWUSR | stat.S_IRUSR), 'w')
@@ -89,6 +89,18 @@ class Utils:
89
89
  'account'
90
90
  }
91
91
 
92
+ COMMON_INTERFACE_REQUIRE_PATHS = {
93
+ 'bmc.kepler.MicroComponent': 'mdb.bmc.kepler.MicroComponentInterface',
94
+ 'bmc.kepler.MicroComponent.ConfigManage': 'mdb.bmc.kepler.MicroComponent.ConfigManageInterface',
95
+ 'bmc.kepler.MicroComponent.Debug': 'mdb.bmc.kepler.MicroComponent.DebugInterface',
96
+ 'bmc.kepler.MicroComponent.Performance': 'mdb.bmc.kepler.MicroComponent.PerformanceInterface',
97
+ 'bmc.kepler.MicroComponent.Reboot': 'mdb.bmc.kepler.MicroComponent.RebootInterface',
98
+ 'bmc.kepler.MicroComponent.Reset': 'mdb.bmc.kepler.MicroComponent.ResetInterface',
99
+ 'bmc.kepler.Object.Properties': 'mdb.bmc.kepler.Object.PropertiesInterface',
100
+ 'bmc.kepler.Release.Maintenance': 'mdb.bmc.kepler.Release.MaintenanceInterface',
101
+ 'bmc.kepler.TaskService.Task': 'mdb.bmc.kepler.TaskService.TaskInterface'
102
+ }
103
+
92
104
  def __init__(self, data: dict, options: Options):
93
105
  self.data = data
94
106
  self.options = options
@@ -281,7 +293,14 @@ class Utils:
281
293
  if "tableName" in class_data and class_data.get("tableLocation") != "Local":
282
294
  return True
283
295
  return False
284
-
296
+
297
+ @staticmethod
298
+ def check_model_need_local_db(model_json: dict):
299
+ for class_data in model_json.values():
300
+ if "tableName" in class_data and class_data.get("tableLocation") == "Local":
301
+ return True
302
+ return False
303
+
285
304
  @staticmethod
286
305
  def has_db(root: dict):
287
306
  return Utils.check_need_mem_db(root) or Utils.check_local_poweroff_db(root) or \
@@ -348,15 +367,24 @@ class Utils:
348
367
  return Utils.get_unique_intf_name(full_intf_name) + "." + slices[-1]
349
368
 
350
369
  @staticmethod
351
- def get_unique_intf_name(intf):
352
- check_intfs = Path(__file__).parent.parent.joinpath("temp").joinpath("check_intfs.json")
370
+ def get_unique_intf_map():
371
+ check_intfs = Path(__file__).parent.parent.joinpath('temp').joinpath('check_intfs.json')
353
372
  with open(check_intfs, 'r') as check_intfs_fp:
354
- intf_map = json.load(check_intfs_fp)
373
+ return json.load(check_intfs_fp)
355
374
 
375
+ @staticmethod
376
+ def get_unique_intf_name(intf):
356
377
  slices = intf.split('.')
357
- if slices[-1] == "Default":
378
+ if slices[-1] == 'Default':
358
379
  return slices[-2] + slices[-1]
359
- return intf_map.get(intf, slices[-1])
380
+ return Utils.get_unique_intf_map().get(intf, slices[-1])
381
+
382
+ @staticmethod
383
+ def get_interface_require_path(intf_name, project_name, unique_intf_name):
384
+ fallback = f'{project_name}.json_types.{unique_intf_name}'
385
+ if Utils.get_lua_codegen_version() < 19:
386
+ return fallback
387
+ return Utils.COMMON_INTERFACE_REQUIRE_PATHS.get(intf_name, fallback)
360
388
 
361
389
  @staticmethod
362
390
  def get_files(path):
@@ -80,7 +80,7 @@ message: $(foreach v, $(MESSAGE_FILES), $(GEN_OUT_DIR)/$(v).lua)
80
80
  define MAKE_DATAS
81
81
  $$(GEN_OUT_DIR)/$(1).lua: ${PROTO_OUT_DIR}/$(1).json $${TEMPLATE_BIN} datas.lua.mako
82
82
  @mkdir -p $$(dir $$@)
83
- python3 $${TEMPLATE_BIN} -d ${PROTO_DIR} -j ${PROTO_OUT_DIR} -n ${PROJECT_NAME} -i ${PROTO_OUT_DIR}/$(1).json -f ${LUA_FORMATER} -t datas.lua.mako -o $$@
83
+ python3 $${TEMPLATE_BIN} -d ${PROTO_DIR} -j ${PROTO_OUT_DIR} -n ${PROJECT_NAME} -i ${PROTO_OUT_DIR}/$(1).json -f ${LUA_FORMATER} -t datas.lua.mako --ignore_empty_input -o $$@
84
84
  endef
85
85
  $(foreach v, $(YAML_FILES), $(eval $(call MAKE_DATAS,$(v))))
86
86
  datas: $(foreach v, $(YAML_FILES), $(GEN_OUT_DIR)/$(v).lua)
@@ -89,7 +89,7 @@ define MAKE_CONF_DATAS
89
89
  $$(GEN_OUT_DIR)/$(1).lua: ${CONF_DIR}/$(1).yaml $${TEMPLATE_BIN} datas.lua.mako
90
90
  @mkdir -p $$(dir $$@)
91
91
  python3 ${YAML_TO_JSON_BIN} -i ${CONF_DIR}/$(1).yaml -b ${CONF_DIR} -o ${PROTO_OUT_DIR}/$(1).json
92
- python3 $${TEMPLATE_BIN} -d ${CONF_DIR} -j ${PROTO_OUT_DIR} -n ${PROJECT_NAME} -i ${PROTO_OUT_DIR}/$(1).json -f ${LUA_FORMATER} -t datas.lua.mako -o $$@
92
+ python3 $${TEMPLATE_BIN} -d ${CONF_DIR} -j ${PROTO_OUT_DIR} -n ${PROJECT_NAME} -i ${PROTO_OUT_DIR}/$(1).json -f ${LUA_FORMATER} -t datas.lua.mako --ignore_empty_input -o $$@
93
93
  endef
94
94
  $(foreach v, $(YAML_FILES_CONF), $(eval $(call MAKE_CONF_DATAS,$(v))))
95
95
  datas_conf: $(foreach v, $(YAML_FILES_CONF), $(GEN_OUT_DIR)/$(v).lua)
@@ -55,7 +55,7 @@ local foreach_non_virtual_interface_objects = mdb_service.foreach_non_virtual_in
55
55
  % if intf_data['interface'].startswith('bmc.dev.'):
56
56
  local ${intf} = require '${project_name}.device_types.${intf}'
57
57
  %else:
58
- local ${intf} = require '${project_name}.json_types.${intf}'
58
+ local ${intf} = require '${render_utils.get_interface_require_path(intf_data["interface"], project_name, intf)}'
59
59
  % endif
60
60
  % endfor
61
61
 
@@ -182,7 +182,7 @@ local ${class_name} = {
182
182
  methods = ${render_utils.get_privileges(intf_msg.get('methods', {}))}
183
183
  },
184
184
  ${render_utils.get_readonlys(intf_msg.get('properties', {}))},
185
- require '${project_name}.json_types.${intf_name}')
185
+ require '${render_utils.get_interface_require_path(interface, project_name, intf_name)}')
186
186
  objs['${interface}'] = obj
187
187
  end<% num = num + 1 %>
188
188
  % endfor
@@ -222,9 +222,10 @@ end
222
222
 
223
223
  % for (method, method_config) in intf_msg['methods'].items():
224
224
  -- The callback needs to be registered during app initialization
225
- function M.Impl${class_name}${render_utils.get_intf_name(interface, intf_msg)}${method}(cb)
225
+ <% intf_name = render_utils.get_intf_name(interface, intf_msg)%>
226
+ function M.Impl${class_name}${intf_name}${method}(cb)
226
227
  class('${class_name}')['${interface}'].${method} = function(obj, ctx, ...)
227
- local ${interface.split(".")[-1].lower()}_types = require "${project_name}.json_types.${render_utils.get_intf_name(interface, intf_msg)}"
228
+ local ${interface.split(".")[-1].lower()}_types = require "${render_utils.get_interface_require_path(interface, project_name, intf_name)}"
228
229
  local req = ${interface.split(".")[-1].lower()}_types.${method}Req.new(...):validate(nil, nil, true)
229
230
  local rsp = ${interface.split(".")[-1].lower()}_types.${method}Rsp.new(cb(obj, ctx, req:unpack())):validate()
230
231
  return rsp:unpack(true)
@@ -47,7 +47,7 @@ end
47
47
  % endif
48
48
 
49
49
  % for intf, intf_data in root['intf_imports'].items():
50
- local ${intf}Types = require '${project_name}.json_types.${intf}'
50
+ local ${intf}Types = require '${render_utils.get_interface_require_path(intf_data["interface"], project_name, intf)}'
51
51
  % endfor
52
52
 
53
53
  % for cls, cls_data in root['class_require'].items():
@@ -2,7 +2,11 @@
2
2
  mdb.register_interface('${intf['name']}', {
3
3
  % if 'properties' in intf['data'] :
4
4
  % for p,p_data in intf['data']['properties'].items():
5
+ % if version >= 19:
6
+ ${p} = {'${render_utils.do_type_to_dbus_json(intf['data'], p_data)}', ${render_utils.options_json(p_data)}, ${render_utils.readonly_json(p_data)}, ${render_utils.default_json(p_data)}},
7
+ % else:
5
8
  ${p} = {'${render_utils.do_type_to_dbus_json(intf['data'], p_data)}', ${render_utils.options_json(p_data)}, ${render_utils.readonly_json(p_data)}, ${render_utils.default_json(p_data)}, false},
9
+ % endif
6
10
  % endfor
7
11
  % endif
8
12
  }, {
@@ -262,6 +262,9 @@ class ConsistencyModelLuaUtils(Base, Utils):
262
262
  string = '{'
263
263
  path_privilege = msg.get("privilege", [])
264
264
  for (interface, intf_msg) in msg['interfaces'].items():
265
+ if interface == 'bmc.kepler.Object.Properties':
266
+ string += f"['{interface}'] = mdb.OBJECT_PROPERTIES_INTERFACE_PROP_CONFIGS,"
267
+ continue
265
268
  if not self.has_properties(intf_msg):
266
269
  continue
267
270
  interface_privilege = intf_msg.get("privilege", [])
@@ -457,7 +460,8 @@ class ConsistencyModelLuaUtils(Base, Utils):
457
460
  for (interface, intf_msg) in msg.get('interfaces', {}).items():
458
461
  intf_name = self.get_intf_name(interface, intf_msg)
459
462
  intf_type = self.get_intf_type(intf_name)
460
- types[intf_type] = f"local {intf_type} = require '{project_name}.json_types.{intf_name}'\n"
463
+ path = Utils.get_interface_require_path(interface, project_name, intf_name)
464
+ types[intf_type] = f"local {intf_type} = require '{path}'\n"
461
465
  return types
462
466
 
463
467
  def render_types(self, project_name, root):
@@ -54,7 +54,7 @@ local foreach_non_virtual_interface_objects = mdb_service.foreach_non_virtual_in
54
54
  % if intf_data['interface'].startswith('bmc.dev.'):
55
55
  local ${intf} = require '${project_name}.device_types.${intf}'
56
56
  %else:
57
- local ${intf} = require '${project_name}.json_types.${intf}'
57
+ local ${intf} = require '${render_utils.get_interface_require_path(intf_data["interface"], project_name, intf)}'
58
58
  % endif
59
59
  % endfor
60
60
 
@@ -1,5 +1,6 @@
1
1
  ${make_header('lua')}
2
2
  local privilege = require 'mc.privilege'
3
+ local mdb = require 'mc.mdb'
3
4
  % if render_utils.get_features(root):
4
5
  require 'mc.plugin.loader'.load()
5
6
  % for feature in render_utils.get_features(root):
@@ -3,7 +3,7 @@
3
3
  '${intf['name']}', {
4
4
  % if 'properties' in intf['data'] :
5
5
  % for p,p_data in intf['data']['properties'].items():
6
- ${p} = {'${render_utils.do_type_to_dbus_json(intf['data'], p_data)}', ${render_utils.options_json(p_data)}, ${render_utils.readonly_json(p_data)}, ${render_utils.default_json(p_data)}, false},
6
+ ${p} = {'${render_utils.do_type_to_dbus_json(intf['data'], p_data)}', ${render_utils.options_json(p_data)}, ${render_utils.readonly_json(p_data)}, ${render_utils.default_json(p_data)}},
7
7
  % endfor
8
8
  % endif
9
9
  }, {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openubmc-bingo
3
- Version: 0.6.70
3
+ Version: 0.6.73
4
4
  Summary: Tools provided by openubmc
5
5
  Home-page: https://openubmc.cn
6
6
  Classifier: Programming Language :: Python :: 3
@@ -1,4 +1,4 @@
1
- bmcgo/__init__.py,sha256=ZseRGGw1BIo33Zy9RTeEklcfSC1yc7r54gsFo5abONU,562
1
+ bmcgo/__init__.py,sha256=dKxwvYrGObODUzVxgVgu5y02h9fNOYaZHT0-1q3_PN0,562
2
2
  bmcgo/bmcgo.py,sha256=uD4TsfjrFB5aQPIS6WRUVc9ShXX-dSImY9ezkB13g1w,685
3
3
  bmcgo/bmcgo_config.py,sha256=-KYhC3jNqWkCWu6YkyxDZlyC3floXIHaibGpmyB6YWQ,11873
4
4
  bmcgo/errors.py,sha256=QW1ndrJcJ2Ws7riOznPKVvZsNlrYk73eZol7w8gJTPU,3076
@@ -10,7 +10,7 @@ bmcgo/cli/__init__.py,sha256=BDXz8BcSlCkfo5UYt6j2rm89-HiYA1ZzfpFhy99MH-0,538
10
10
  bmcgo/cli/cli.py,sha256=O4FHWNLUyqNjs0BoD3aYzPyi3L3mCg7rsIL0mP7_x0U,27748
11
11
  bmcgo/cli/config.conan2.yaml,sha256=SAtM_6_qOjZbkgUT5fzWbhbq4aWCayqE8o4xJ2vBRww,261
12
12
  bmcgo/cli/config.yaml,sha256=tbnFhz2TTrl2-ALpHHujbXB1ymZpjGC4f0zTfqfUZfM,194
13
- bmcgo/codegen/__init__.py,sha256=eplRBfR_obzVWMQtIeX1RRq6DOEezBx_l1EqcZYLRPM,775
13
+ bmcgo/codegen/__init__.py,sha256=lZxBtUuoXbVMqRJkvIqqNF4jeMLEb9Y66dch5roQBcc,775
14
14
  bmcgo/codegen/c/__init__.py,sha256=tmBG8c6sfxgIj__lyyU5mydWeKBdqbDuIQkLI38lwjI,522
15
15
  bmcgo/codegen/c/annotation.py,sha256=c4NiF6b9R-HbwbBGNhnH5zrfcPAYBkhWq30PT9CKzw4,1987
16
16
  bmcgo/codegen/c/argument.py,sha256=oH08szRKxkL0S3dUZ3P8x4JV1UVFqadzhuZ343RbuHM,1871
@@ -40,9 +40,9 @@ bmcgo/codegen/lua/proto/Makefile,sha256=rS4nEBwWJEDYAb5XN9S7SfII7RMFb071jh0eh_KJ
40
40
  bmcgo/codegen/lua/proto/ipmi_types.proto,sha256=BX09mymhhPkWqZE1UCVJACpLBeQh1vQN31oBRVVieFY,377
41
41
  bmcgo/codegen/lua/proto/types.proto,sha256=_X8JCKZCvO6PfWh6tuWcEqKHROrh46rCZab-OCkfirA,1162
42
42
  bmcgo/codegen/lua/script/base.py,sha256=E1_V6lmE5CjY2pqSYOpyNVGRVneC4pSLnLoNntm1I6A,823
43
- bmcgo/codegen/lua/script/check_intfs.py,sha256=6l9fgNJDGDVhVDajjPqsPInjmOYQcUSU5gfHblc4YSQ,5844
43
+ bmcgo/codegen/lua/script/check_intfs.py,sha256=mXEp7mo-jDHIEMTDgz3U4br7ZQAOUUPcBUp2P3QAp3o,5916
44
44
  bmcgo/codegen/lua/script/factory.py,sha256=pCkzFNkRjKNsITETzbgn3cBLPzP1bMi3Y84pozEEGjk,1687
45
- bmcgo/codegen/lua/script/gen_db_json.py,sha256=QpfpUrd36nBaouv6pyO9zCvMG8eJ2JL6ZNyF2FsT3DI,17025
45
+ bmcgo/codegen/lua/script/gen_db_json.py,sha256=_Y2RcXN0VenffuvP4VxotcwYcCynOM3xJ1YOHU5oDlo,17145
46
46
  bmcgo/codegen/lua/script/gen_depends.py,sha256=9erHhPSa6s-Ucv2k1vCc4aR6rsO0WxkM0yfZZKXi-1w,2720
47
47
  bmcgo/codegen/lua/script/gen_entry.py,sha256=k__I5VBts9RM0g_KzSGr2csc_tRjXAms_GSqx6DllHY,10368
48
48
  bmcgo/codegen/lua/script/gen_feature_json.py,sha256=gMCAIF_ZMgFIP5wXV_Of51XG61zmsDxhCeqthnj_hHQ,4855
@@ -51,7 +51,7 @@ bmcgo/codegen/lua/script/gen_intf_json.py,sha256=J_yLbYzvTps1Teej-fecLRR2Vfqz6kW
51
51
  bmcgo/codegen/lua/script/gen_intf_rpc_json.py,sha256=4gKv4dFrnU8uJsnTySFiqpP6ZFnJCqC_cy1LvuS6n58,19576
52
52
  bmcgo/codegen/lua/script/gen_ipmi_json.py,sha256=wTktlR1YZO-5PdZid8zMR8JHojL4eAn7LpF76Z46lu4,17340
53
53
  bmcgo/codegen/lua/script/gen_mdb_json.py,sha256=2w2fk6jIlMCr6WT5yzLOmWenk_9-lh3e19oV1lDghcY,3027
54
- bmcgo/codegen/lua/script/gen_rpc_msg_json.py,sha256=6fVtZTHL-v6pdCjkgxFmqCjf511cc9iC9xPTspC4lDU,16407
54
+ bmcgo/codegen/lua/script/gen_rpc_msg_json.py,sha256=D53yEya9aB2mI0EvD6maPuNNn2_r0BT1Mw_UVMExg9Y,19708
55
55
  bmcgo/codegen/lua/script/gen_schema.py,sha256=9sfqv7fHYoCiokotesBER2HglqHwrj08ftQDbrDjrlI,10600
56
56
  bmcgo/codegen/lua/script/ipmi_types_pb2.py,sha256=CaCartJKCRgx5WLBg4mbzS8VXwSKy380o6BPYgouAJQ,6665
57
57
  bmcgo/codegen/lua/script/lua_format.py,sha256=W3UO-II34qY0_st6QiHwSOrQZnqdz4mLWOIB3pfGe58,2003
@@ -64,15 +64,15 @@ bmcgo/codegen/lua/script/proto_loader.py,sha256=w6TTyLvXrdXZKTKOGf87kSuSsbBviVeQ
64
64
  bmcgo/codegen/lua/script/proto_plugin.py,sha256=hfFr7QXndA1dbFYmpUkemFxkdSchK8i8xml_3cMdBA4,5002
65
65
  bmcgo/codegen/lua/script/redfish_source_tree.py,sha256=HzTGY4PViZXLQLOt_U7-YMqE5Ctf-Mxa1p5voOFJU4A,3905
66
66
  bmcgo/codegen/lua/script/sep_ipmi_message_cmds.py,sha256=dQZog5e7Eo8Z7xSrp9sUri8vg-VtEj_Sll_E_OhnBw4,8209
67
- bmcgo/codegen/lua/script/template.py,sha256=kJ5vQcHKY5OKUkYrSObFjx6WLVopveasjbr0HWgrMZM,6711
67
+ bmcgo/codegen/lua/script/template.py,sha256=W3cnePvZpWWjXm36wAlUyKAV781x9v_1kNnE5IJP4A4,7051
68
68
  bmcgo/codegen/lua/script/types_pb2.py,sha256=uiRP_JPK9EF57RUZuomx1K1M9_jZFZgsHXcatFrhzow,23074
69
- bmcgo/codegen/lua/script/utils.py,sha256=QrBlrntS9uTb95iAKpZLPYbSeCUNXNzSoxEm5d21zjY,24886
69
+ bmcgo/codegen/lua/script/utils.py,sha256=MT_WmFiwJ5kapvlFrjyEnyeke1i_Ihg8kVfSUCekIzM,26386
70
70
  bmcgo/codegen/lua/script/validate.py,sha256=_RHZBSDZklmcjETD8zRmnhz4DABzKoL-fNl1I9L4Ofs,2096
71
71
  bmcgo/codegen/lua/script/yaml_to_json.py,sha256=31J1qJPIAJrx9Cq6bNZks3QCZ754spI5mjZNlshkcJ4,2291
72
72
  bmcgo/codegen/lua/script/dto/__init__.py,sha256=nSBpsAbZ7UGd0a25ys_LLEpi3juPtUhVMy_tgGuZsNY,560
73
73
  bmcgo/codegen/lua/script/dto/exception.py,sha256=PDuaO5-IoCq1bjPlUMLWc5MGC7LcerPD4EgX5Su6fa4,2026
74
74
  bmcgo/codegen/lua/script/dto/kepler_abstract.py,sha256=0rfLwN2n-8-wp7C7isHuTMwDyKkYvwUKujqlmUvtaKA,1741
75
- bmcgo/codegen/lua/script/dto/options.py,sha256=ZGjU9b9hIqwGKQLfVwnDS6W9CTkhRuRM_B7x5wBizQ4,1421
75
+ bmcgo/codegen/lua/script/dto/options.py,sha256=pZsYgQ727NrbvG2e4QuSkM5udYVCkEX390mbjqn4SMI,1488
76
76
  bmcgo/codegen/lua/script/dto/print_simple.py,sha256=imrPW2zlmCIcM6Nfg4HSPE2Y14g2n8uSGj-JOjJ2ijY,723
77
77
  bmcgo/codegen/lua/script/dto/redfish_api.py,sha256=iifn1jNHtIoal0-YA-4bvNm8wLOLqloA3S9p99bD8Qg,8411
78
78
  bmcgo/codegen/lua/script/dto/url_route.py,sha256=DkgV0Ok5FBgkVqikPcFX_OJdLm0Sd7VL7NATS_aCBpg,7849
@@ -91,7 +91,7 @@ bmcgo/codegen/lua/script/render_utils/ipmi_message_lua.py,sha256=Y-5pXMfAPDZqqoA
91
91
  bmcgo/codegen/lua/script/render_utils/mdb_lua.py,sha256=gKX_GUkIbYbbviBw9cEO3pfTwoLWurczYFmoOoWA1Us,6141
92
92
  bmcgo/codegen/lua/script/render_utils/message_lua.py,sha256=ZHJy35iJir1O149dafZnl-oEdU89-eP6VIeQmKjh9D8,1155
93
93
  bmcgo/codegen/lua/script/render_utils/messages_lua.py,sha256=hFBLl3tqh7KIeljm0JEEyeDXkKSDxjtVMirc3euckyI,5189
94
- bmcgo/codegen/lua/script/render_utils/model_lua.py,sha256=kxlPkPboUKtUfK2HTWakmgKMFLLZ3UofPouWvng7UWY,18456
94
+ bmcgo/codegen/lua/script/render_utils/model_lua.py,sha256=WstgLjxmdYNqMhkwZTu0dHXCKROv-h_tRRAdEN2XkdM,18737
95
95
  bmcgo/codegen/lua/script/render_utils/old_model_lua.py,sha256=OFUPJOaiXDjXpknbh6Pw0TNC1dUVtjPbuIs-3fSN7p4,15611
96
96
  bmcgo/codegen/lua/script/render_utils/plugin_lua.py,sha256=-_r-MqjDNnoYel6zdsNSkqYI3w1DKJPwJy5Vsevl33s,1481
97
97
  bmcgo/codegen/lua/script/render_utils/redfish_proto.py,sha256=lAVo9pPxkc7Iv22enuqCOJVTFy8_63C57iADjzYWz5g,3130
@@ -102,11 +102,11 @@ bmcgo/codegen/lua/script/render_utils/validate_lua.py,sha256=NVjMWZwMxwUj9kdTaCR
102
102
  bmcgo/codegen/lua/templates/Makefile,sha256=-br3qnXM_73_nJhYVgF7TsNtVxt_p_h4l5TYPjWqQIs,4044
103
103
  bmcgo/codegen/lua/templates/errors.lua.mako,sha256=T93tESJl0K3r5izufq6NsqqCptQbVslpsTEjkQdDq0U,1536
104
104
  bmcgo/codegen/lua/templates/messages.lua.mako,sha256=tbvVXx-zodE5sqyKNW4-dzNmPpZ2yBKpkECsIf9-tkU,1115
105
- bmcgo/codegen/lua/templates/apps/Makefile,sha256=IPU-LW3i9xTQUrb9XCWYTWlATCTu2JE3aayL43juEeM,19484
105
+ bmcgo/codegen/lua/templates/apps/Makefile,sha256=k8CN5UdGAS-VkzSaYVPSNlJIbaCQn8uq8c0TX7FygHg,19526
106
106
  bmcgo/codegen/lua/templates/apps/Makefile.mdb.mk,sha256=Qmd-n_YsQbfnpED_6PIp_6pL13w6UCCGgBoBA4h6r_0,3296
107
107
  bmcgo/codegen/lua/templates/apps/app.lua.mako,sha256=Y_aZCPyNgeqfa39_RWxV-_m3out1p4vTTWnzqXtPV7E,276
108
108
  bmcgo/codegen/lua/templates/apps/class.lua.mako,sha256=FZsGAZeiytVwihxyyjhw6Hvv4V01Lhtz8Q9FPZYieZw,1208
109
- bmcgo/codegen/lua/templates/apps/client.lua.mako,sha256=4TgJawCCQhn0yqY0YnL1i_GHhIKOAS0Z5-sBSnS_LLs,17976
109
+ bmcgo/codegen/lua/templates/apps/client.lua.mako,sha256=NWTE9VteYnqi1zaWv4ToDsMTWe8Hf8ZSwkoKzohuW9Y,18028
110
110
  bmcgo/codegen/lua/templates/apps/controller.lua.mako,sha256=ET9dSNasgAw7HuhLxV4pwq2X-E44Zk1rKSQJPUj_ir0,11310
111
111
  bmcgo/codegen/lua/templates/apps/datas.lua.mako,sha256=xAU1c9xe3-bcVfxA3vSbvrkCDcKqCv65gM92lcSPwvo,135
112
112
  bmcgo/codegen/lua/templates/apps/db.lua.mako,sha256=wROjv7qofMaZhTrAywhIWhwuDL9Gs3UMHSQJ97tKZD0,2723
@@ -123,16 +123,16 @@ bmcgo/codegen/lua/templates/apps/mc.lua.mako,sha256=_PMYCI0-RImOv2LQYZU0aUKuL4jM
123
123
  bmcgo/codegen/lua/templates/apps/mdb.lua.mako,sha256=SWZejbAl-27d8Q_pb_I0IOAxxKIX3aEd2IXke2QHyvg,1237
124
124
  bmcgo/codegen/lua/templates/apps/mdb_interface.lua.mako,sha256=wZYf_FZa8nQO0bF9X4ilog47RO7I3VYE1cZdQ8IPg2M,2371
125
125
  bmcgo/codegen/lua/templates/apps/message.lua.mako,sha256=Rj1B_wi8dc2IUvoT0-Q2TfgUpIBxsXXaeqk00zXW1RA,1025
126
- bmcgo/codegen/lua/templates/apps/model.lua.mako,sha256=iNz0PZqYnEiyZOsTdGZuudhsS76weEi-3ABjNAzKYgc,8889
126
+ bmcgo/codegen/lua/templates/apps/model.lua.mako,sha256=GT2aI4LVPBO1fQJncFoS9GPqzxtFVfKIdenvAzvsAJI,8956
127
127
  bmcgo/codegen/lua/templates/apps/orm_classes.lua.mako,sha256=Oz2fKu5uhDJn7d0q178rgX9IDJ4Xmm0nfZYYrek5SNY,335
128
128
  bmcgo/codegen/lua/templates/apps/plugin.lua.mako,sha256=w8aVvxcuNKEmHjWiwFhe6aSIxkMHJKMuc5EaKNgb7DQ,246
129
129
  bmcgo/codegen/lua/templates/apps/redfish.proto.mako,sha256=0yisLKgHi-wuipvjbVZGYH_8ESCEr4wcB3KvAWsJUyE,2628
130
- bmcgo/codegen/lua/templates/apps/service.lua.mako,sha256=WG_TyW8RAMZVslTkaznCAX9ZSXTAFsEEHU5-FGR9pQA,15672
130
+ bmcgo/codegen/lua/templates/apps/service.lua.mako,sha256=eYCNAsu-fG93hFYwyueM8Y45Tkd84trMQGbkukBSrg0,15724
131
131
  bmcgo/codegen/lua/templates/apps/signal_listen.lua.mako,sha256=K3I2xg7iXw60Z-PTiSFq_BNJFHjK6GdBOxUF3XfXHNA,602
132
132
  bmcgo/codegen/lua/templates/apps/utils/default_intf.lua.mako,sha256=PD8_TWmefd17hP03_BUPMnuvRa0sheLlYMF0QOYGwWM,1392
133
133
  bmcgo/codegen/lua/templates/apps/utils/enum.mako,sha256=6rmXhAScF2yx4izXa0V1mQimqgWGysdMbAEIGhUVcU0,499
134
134
  bmcgo/codegen/lua/templates/apps/utils/imports.mako,sha256=Dj7WEQ-rzy1j19Ox38TA99vzK2So2VdAcdZ9CTKsg5c,433
135
- bmcgo/codegen/lua/templates/apps/utils/mdb_intf.lua.mako,sha256=nGuCsYt3d0MUGVZyW8B_24xCVoKLcSDOrEufPox2XXc,1262
135
+ bmcgo/codegen/lua/templates/apps/utils/mdb_intf.lua.mako,sha256=JDliqjdIlJeOJlgzxIRJwp8J8a5MFFyRTR3GxrjijgA,1490
136
136
  bmcgo/codegen/lua/templates/apps/utils/mdb_obj.lua.mako,sha256=sq4tCcQQK7HLcfyszHrYmBy5HlgOt4jyQxHqvzwSzeY,801
137
137
  bmcgo/codegen/lua/templates/apps/utils/message.mako,sha256=IAKhqdzR-dPzPF_akR1EieD-aQ2B33DaeU-287gXQN4,4958
138
138
  bmcgo/codegen/lua/templates/apps/utils/request.lua.mako,sha256=8ZQ_SxYq1s0JjIDUyEAVlSj0trGdQSaz5UohjMf0SfQ,3071
@@ -158,14 +158,14 @@ bmcgo/codegen/lua/templates/new_app/user_conf/rootfs/etc/systemd/system/multi-us
158
158
  bmcgo/codegen/lua/v1/script/gen_schema.py,sha256=LtSswrIqjgk3PuGSlzKSB5Cw5OeSafYkm7PdLQ7Mrao,11717
159
159
  bmcgo/codegen/lua/v1/script/render_utils/client_lua.py,sha256=0dKvOrd-fihPUZckr8_y275STe1rWppIWpYxHhtz-no,3773
160
160
  bmcgo/codegen/lua/v1/script/render_utils/db_lua.py,sha256=59XfkKtUz8Rv73zcyIcQR25JN_2atS4hQq_4BcXRrqo,7948
161
- bmcgo/codegen/lua/v1/script/render_utils/model_lua.py,sha256=NTB1RYxjqBypm5KeRKpJSige6HtaZl_EI9mHJ5HZ9Ss,19024
162
- bmcgo/codegen/lua/v1/templates/apps/client.lua.mako,sha256=6z71SedeK_bIfIi3PUMvqQSMKgVZ1K83qd3a3acNoB8,10701
161
+ bmcgo/codegen/lua/v1/script/render_utils/model_lua.py,sha256=aFLapGuGRSRrRsLYVlpUzisHGdesDgxeeR-QQXIjA3A,19263
162
+ bmcgo/codegen/lua/v1/templates/apps/client.lua.mako,sha256=LpYZshtj9t4A7ofGz2klgsRwrBzG8Q9HYhX8WMoBL1s,10753
163
163
  bmcgo/codegen/lua/v1/templates/apps/db.lua.mako,sha256=zrlqjVN9k6G1i3OeW2OROxzsYyhNAY-wpDt_nva5jL4,2094
164
164
  bmcgo/codegen/lua/v1/templates/apps/local_db.lua.mako,sha256=6Tp99mTF9tLTMz2K6kviaxG9Lwtt0d6cMYY7ZGgMFCE,6460
165
165
  bmcgo/codegen/lua/v1/templates/apps/message.lua.mako,sha256=-AUAwlgVIaNN7fiReXqDXX5Icq88i0SAar5XHlCrXQU,1039
166
- bmcgo/codegen/lua/v1/templates/apps/model.lua.mako,sha256=EmHD62fk0QetQUO0DPz2BEc2NZmbq39pozqm4-ngYEY,2056
166
+ bmcgo/codegen/lua/v1/templates/apps/model.lua.mako,sha256=MfT94MxEI0lUZXyLWf1GXgtAc4nYtgnTL-9t8zmokgY,2085
167
167
  bmcgo/codegen/lua/v1/templates/apps/service.lua.mako,sha256=wd_NJtiSSMbR-lxEqv-rluHOdUCpeV9ZlrZDA7DDaZY,5564
168
- bmcgo/codegen/lua/v1/templates/apps/utils/mdb_intf.lua.mako,sha256=msdj2SygZvV3RIEHLeVDfZvOzZ99Yy27SwPVrFVVcpc,1242
168
+ bmcgo/codegen/lua/v1/templates/apps/utils/mdb_intf.lua.mako,sha256=QxiwSUH8VcAQs-af8q3uN8evq6qzIWGOKf9mN43P0iE,1235
169
169
  bmcgo/codegen/lua/v1/templates/apps/utils/mdb_obj.lua.mako,sha256=oCzx2u3bjvCdNKX5oC8j6Q-Zb21q6SFCqd14_VzrWvo,349
170
170
  bmcgo/component/__init__.py,sha256=BDXz8BcSlCkfo5UYt6j2rm89-HiYA1ZzfpFhy99MH-0,538
171
171
  bmcgo/component/build.py,sha256=zEtX3IG43z-EC8frpuRRH8zx2KjVuA1LlLnhDgErhqE,12920
@@ -263,8 +263,8 @@ bmcgo/utils/installations/install_plans/qemu.yml,sha256=lT7aKag60QUH6hTGFKa3hGRq
263
263
  bmcgo/utils/installations/install_plans/studio.yml,sha256=AEspVgsVAnmUdvqZYNCb7SPoUEq_0i61dfpauyguLa4,229
264
264
  bmcgo/utils/installations/installers/apt_installer.py,sha256=nPaCb4cobSi9InN_aHsEPtQ0k4FgsCUWE5_VgBPvcRE,3769
265
265
  bmcgo/utils/installations/installers/pip_installer.py,sha256=dDdios1EQ7fzt90r02pZeoM3jCmjslLzkSvzd2hgRVM,3241
266
- openubmc_bingo-0.6.70.dist-info/METADATA,sha256=r8PH4Z1EhzTs-bAcIfANC1pVpQ8J-6P2Ziz4ZfrTbcE,1010
267
- openubmc_bingo-0.6.70.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
268
- openubmc_bingo-0.6.70.dist-info/entry_points.txt,sha256=UUoUP-vAWTgg9vEYbRwYqOBHgpRtkngdzMPb-ocz90g,42
269
- openubmc_bingo-0.6.70.dist-info/top_level.txt,sha256=9AcvCAt1nZcOgMsGt6T07mg2Bgtdet-3mHTwg91axgI,6
270
- openubmc_bingo-0.6.70.dist-info/RECORD,,
266
+ openubmc_bingo-0.6.73.dist-info/METADATA,sha256=PHXfq2bMBgoUx9je1I5Eovu_Z1ZmXNWXl4VHk54cIDw,1010
267
+ openubmc_bingo-0.6.73.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
268
+ openubmc_bingo-0.6.73.dist-info/entry_points.txt,sha256=UUoUP-vAWTgg9vEYbRwYqOBHgpRtkngdzMPb-ocz90g,42
269
+ openubmc_bingo-0.6.73.dist-info/top_level.txt,sha256=9AcvCAt1nZcOgMsGt6T07mg2Bgtdet-3mHTwg91axgI,6
270
+ openubmc_bingo-0.6.73.dist-info/RECORD,,