Config — mmengine 0.10.7 documentation (original) (raw)
class mmengine.config.Config(cfg_dict=None, cfg_text=None, filename=None, env_variables=None, format_python_code=True)[source]¶
A facility for config and config files.
It supports common file formats as configs: python/json/yaml.Config.fromfile
can parse a dictionary from a config file, then build a Config
instance with the dictionary. The interface is the same as a dict object and also allows access config values as attributes.
Parameters:
- cfg_dict (dict, optional) – A config dictionary. Defaults to None.
- cfg_text (str, optional) – Text of config. Defaults to None.
- filename (str or Path , optional) – Name of config file. Defaults to None.
- format_python_code (bool) – Whether to format Python code by yapf. Defaults to True.
- env_variables (dict | None) –
Here is a simple example:
Examples
cfg = Config(dict(a=1, b=dict(b1=[0, 1]))) cfg.a 1 cfg.b {'b1': [0, 1]} cfg.b.b1 [0, 1] cfg = Config.fromfile('tests/data/config/a.py') cfg.filename "/home/username/projects/mmengine/tests/data/config/a.py" cfg.item4 'test' cfg "Config [path: /home/username/projects/mmengine/tests/data/config/a.py] :" "{'item1': [1, 2], 'item2': {'a': 0}, 'item3': True, 'item4': 'test'}"
You can find more advance usage in the config tutorial.
static auto_argparser(description=None)[source]¶
Generate argparser from config file automatically (experimental)
Dump config to file or return config text.
Parameters:
- file (str or Path , optional) – If not specified, then the object
- str (is dumped to a) –
- filename. (otherwise to a file specified by the) –
- None. (Defaults to) –
Returns:
Config text.
Return type:
str or None
property env_variables_: dict_¶
Get used environment variables.
Get file name of config.
static fromfile(filename, use_predefined_variables=True, import_custom_modules=True, use_environment_variables=True, lazy_import=None, format_python_code=True)[source]¶
Build a Config instance from config file.
Parameters:
- filename (str or Path) – Name of config file.
- use_predefined_variables (bool, optional) – Whether to use predefined variables. Defaults to True.
- import_custom_modules (bool, optional) – Whether to support importing custom modules in config. Defaults to None.
- use_environment_variables (bool, optional) – Whether to use environment variables. Defaults to True.
- lazy_import (bool) – Whether to load config in lazy_import mode. If it is None, it will be deduced by the content of the config file. Defaults to None.
- format_python_code (bool) – Whether to format Python code by yapf. Defaults to True.
Returns:
Config instance built from config file.
Return type:
static fromstring(cfg_str, file_format)[source]¶
Build a Config instance from config text.
Parameters:
- cfg_str (str) – Config text.
- file_format (str) – Config file format corresponding to the config str. Only py/yml/yaml/json type are supported now!
Returns:
Config object generated from cfg_str
.
Return type:
merge_from_dict(options, allow_list_keys=True)[source]¶
Merge list into cfg_dict.
Merge the dict parsed by MultipleKVAction into this cfg.
Parameters:
- options (dict) – dict of configs to merge from.
- allow_list_keys (bool) – If True, int string keys (e.g. ‘0’, ‘1’) are allowed in
options
and will replace the element of the corresponding index in the config if the config is a list. Defaults to True.
Return type:
None
Examples
from mmengine import Config
Merge dictionary element
options = {'model.backbone.depth': 50, 'model.backbone.with_cp': True} cfg = Config(dict(model=dict(backbone=dict(type='ResNet')))) cfg.merge_from_dict(options) cfg._cfg_dict {'model': {'backbone': {'type': 'ResNet', 'depth': 50, 'with_cp': True}}}
Merge list element
cfg = Config( dict(pipeline=[dict(type='LoadImage'), dict(type='LoadAnnotations')])) options = dict(pipeline={'0': dict(type='SelfLoadImage')}) cfg.merge_from_dict(options, allow_list_keys=True) cfg._cfg_dict {'pipeline': [{'type': 'SelfLoadImage'}, {'type': 'LoadAnnotations'}]}
Get formatted python config text.
Get config text.
to_dict(keep_imported=False)[source]¶
Convert all data in the config to a builtin dict
.
Parameters:
keep_imported (bool) – Whether to keep the imported field. Defaults to False
If you import third-party objects in the config file, all imported objects will be converted to a string like torch.optim.SGD