diff --git a/mmcv/utils/config.py b/mmcv/utils/config.py index 4f96372ae4..473bd1e165 100644 --- a/mmcv/utils/config.py +++ b/mmcv/utils/config.py @@ -638,6 +638,8 @@ def _parse_int_float_bool(val): pass if val.lower() in ['true', 'false']: return True if val.lower() == 'true' else False + if val == 'None': + return None return val @staticmethod diff --git a/tests/test_utils/test_config.py b/tests/test_utils/test_config.py index 6f9f95726c..368016e572 100644 --- a/tests/test_utils/test_config.py +++ b/tests/test_utils/test_config.py @@ -470,9 +470,18 @@ def test_dict_action(): with pytest.raises(AssertionError): parser.parse_args(['--options', 'item2.a=[(a,b), [1,2], false']) # Normal values - args = parser.parse_args( - ['--options', 'item2.a=1', 'item2.b=0.1', 'item2.c=x', 'item3=false']) - out_dict = {'item2.a': 1, 'item2.b': 0.1, 'item2.c': 'x', 'item3': False} + args = parser.parse_args([ + '--options', 'item2.a=1', 'item2.b=0.1', 'item2.c=x', 'item3=false', + 'item4=none', 'item5=None' + ]) + out_dict = { + 'item2.a': 1, + 'item2.b': 0.1, + 'item2.c': 'x', + 'item3': False, + 'item4': 'none', + 'item5': None, + } assert args.options == out_dict cfg_file = osp.join(data_path, 'config/a.py') cfg = Config.fromfile(cfg_file)