iclientpy.jupyter.widgets.basesetting 源代码

from traitlets import HasTraits


[文档]class BaseSetting(HasTraits): """ 专题图设置的基础类 """
[文档] def get_settings(self): """ 获取设置,metadata通过setttings=true标志的属性 Returns: 返回设置 """ setting = {} for k in [name for name in self.traits(settings=True)]: v = getattr(self, k) if not v: continue elif isinstance(v, dict): setting[self._underline_to_camel(k)] = self._dict_key_underline_to_camel(v) else: setting[self._underline_to_camel(k)] = v return setting
def _underline_to_camel(self, underline_format): """ 字符串从下划线命名法转为驼峰命名法 Args: underline_format: 以下划线命名法命名的字符串 Returns: 驼峰命名法命名的字符串 """ if isinstance(underline_format, str): split_strs = underline_format.split('_') camel_format = split_strs[0] for _s_ in split_strs[1:]: camel_format += _s_.capitalize() else: camel_format = underline_format return camel_format def _dict_key_underline_to_camel(self, source): """ 将字典类型数据的key,从下划线命名法转为驼峰命名法 Args: source: 需要转换的字典数据 Returns: key以驼峰命名法的字典 """ result = {} for k, v in source.items(): if isinstance(v, dict): result[self._underline_to_camel(k)] = self._dict_key_underline_to_camel(v) else: result[self._underline_to_camel(k)] = v return result