yacs - Serbipunk/notes GitHub Wiki

  1. RGB 在 facebook 弄的一个数据格式,yaml的扩展

CfgNode (CN)

node in configuration tree, dict-like container

init 通过字典创建CN

init(self, init_dict=None, key_list=None, new_allowed=False)

init_dict

key_list root下的值(只是logging作用)

_create_config_tree_from_dict 赋值的实现

_create_config_tree_from_dict(cls, dic, key_list)

Create a configuration tree using the given dict.

load_cfg(cfg_file_obj_or_str)

  • file object (YAML)

  • file object (CfgNode)

  • YAML string

内部靠 _load_cfg_from_file _load_cfg_from_yaml_str 实现

getattr(self, name)

setattr(self, name, value)

str()

dump()

merge_from_file(cfg_filename) merge_from_other_cfg(cfg_other) merge_from_list(cfg_list)

freeze() defrost()

通过 _immutable() 将内容树中的 "immutable" 置为 True 和 False

clone()

register_deprecated_key() register_renamed_key() key_is_deprecated() key_is_renamed()

_decode_cfg_value

immutable 永远不变的