MCPcopy Create free account
hub / github.com/aaPanel/BaoTa / detect_missing_fields

Method detect_missing_fields

class/theme_config.py:302–332  ·  view source on GitHub ↗

检测配置中缺失的必要字段

(self, config)

Source from the content-addressed store, hash-verified

300 return self.return_message(False, f"字段验证异常: {str(e)}")
301
302 def detect_missing_fields(self, config):
303 """检测配置中缺失的必要字段"""
304 try:
305 if not isinstance(config, dict):
306 return self.return_message(False, '配置必须是字典类型')
307
308 missing_fields = []
309
310 def _check_nested_fields(default_dict, current_dict, path_prefix=''):
311 """递归检查嵌套字段"""
312 for key, default_value in default_dict.items():
313 current_path = f"{path_prefix}.{key}" if path_prefix else key
314
315 if key not in current_dict:
316 missing_fields.append({
317 'path': current_path,
318 'default_value': default_value,
319 'type': type(default_value).__name__
320 })
321 elif isinstance(default_value, dict) and isinstance(current_dict.get(key), dict):
322 _check_nested_fields(default_value, current_dict[key], current_path)
323
324 _check_nested_fields(self.DEFAULT_CONFIG, config)
325
326 return self.return_message(True, f'检测到 {len(missing_fields)} 个缺失字段', {
327 'missing_fields': missing_fields,
328 'total_missing': len(missing_fields)
329 })
330
331 except Exception as e:
332 return self.return_message(False, f'字段检测异常: {str(e)}')
333
334 def auto_fill_missing_fields(self, config):
335 """自动补充配置中缺失的必要字段"""

Callers 1

save_configMethod · 0.95

Calls 1

return_messageMethod · 0.95

Tested by

no test coverage detected