mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
config: create Config objects with JK support (#138766)
This teaches install_config_module (and the underlying code) to understands Config objects. Additionally we've added a JK option to this which resolves the JK. This config gets stored within the _ConfigEntry class and is evaluated when __getattr__ is called. If justknobs is set, it'll call justknobs_check to see the result. Due to preceeding work, basically everything works correctly here and we had to update a couple of tests, and modify the getattr behaviour. Note that we are updating the justknob_check function to support a default option, to make default work. Pull Request resolved: https://github.com/pytorch/pytorch/pull/138766 Approved by: https://github.com/ezyang
This commit is contained in:
committed by
PyTorch MergeBot
parent
6fc63b4ef1
commit
abc5d59dcb
@ -90,6 +90,9 @@ class TestConfigModule(TestCase):
|
||||
"e_compile_ignored": True,
|
||||
"magic_cache_config_ignored": True,
|
||||
"_save_config_ignore": ["e_ignored"],
|
||||
"e_config": True,
|
||||
"e_jk": True,
|
||||
"e_jk_false": False,
|
||||
},
|
||||
)
|
||||
config.e_bool = False
|
||||
@ -117,6 +120,9 @@ class TestConfigModule(TestCase):
|
||||
"nested.e_bool": True,
|
||||
"e_ignored": True,
|
||||
"e_compile_ignored": True,
|
||||
"e_config": True,
|
||||
"e_jk": True,
|
||||
"e_jk_false": False,
|
||||
},
|
||||
)
|
||||
config.e_bool = False
|
||||
@ -146,29 +152,28 @@ torch.testing._internal.fake_config_module._save_config_ignore = ['e_ignored']""
|
||||
|
||||
def test_get_hash(self):
|
||||
self.assertEqual(
|
||||
config.get_hash(), b"\xcd\x96\x93\xf5(\xf8(\xa5\x1c+O\n\xd3_\x0b\xa6"
|
||||
config.get_hash(), b"\xa8\xe0\x9b\xfc*\xc4P\xb5g\x1e_\x03 \x7fA\x05"
|
||||
)
|
||||
# Test cached value
|
||||
self.assertEqual(
|
||||
config.get_hash(), b"\xcd\x96\x93\xf5(\xf8(\xa5\x1c+O\n\xd3_\x0b\xa6"
|
||||
config.get_hash(), b"\xa8\xe0\x9b\xfc*\xc4P\xb5g\x1e_\x03 \x7fA\x05"
|
||||
)
|
||||
self.assertEqual(
|
||||
config._hash_digest, b"\xcd\x96\x93\xf5(\xf8(\xa5\x1c+O\n\xd3_\x0b\xa6"
|
||||
config.get_hash(), b"\xa8\xe0\x9b\xfc*\xc4P\xb5g\x1e_\x03 \x7fA\x05"
|
||||
)
|
||||
config._hash_digest = "fake"
|
||||
self.assertEqual(config.get_hash(), "fake")
|
||||
|
||||
# BUG
|
||||
config.e_bool = False
|
||||
self.assertNotEqual(
|
||||
config.get_hash(), b"\xcd\x96\x93\xf5(\xf8(\xa5\x1c+O\n\xd3_\x0b\xa6"
|
||||
config.get_hash(), b"\xa8\xe0\x9b\xfc*\xc4P\xb5g\x1e_\x03 \x7fA\x05"
|
||||
)
|
||||
config.e_bool = True
|
||||
|
||||
# Test ignored values
|
||||
config.e_compile_ignored = False
|
||||
self.assertEqual(
|
||||
config.get_hash(), b"\xcd\x96\x93\xf5(\xf8(\xa5\x1c+O\n\xd3_\x0b\xa6"
|
||||
config.get_hash(), b"\xa8\xe0\x9b\xfc*\xc4P\xb5g\x1e_\x03 \x7fA\x05"
|
||||
)
|
||||
for k in config._config:
|
||||
config._config[k].user_override = _UNSET_SENTINEL
|
||||
@ -194,6 +199,9 @@ torch.testing._internal.fake_config_module._save_config_ignore = ['e_ignored']""
|
||||
"_cache_config_ignore_prefix": ["magic_cache_config"],
|
||||
"_save_config_ignore": ["e_ignored"],
|
||||
"magic_cache_config_ignored": True,
|
||||
"e_config": True,
|
||||
"e_jk": True,
|
||||
"e_jk_false": False,
|
||||
},
|
||||
)
|
||||
p2 = config.to_dict()
|
||||
@ -216,6 +224,9 @@ torch.testing._internal.fake_config_module._save_config_ignore = ['e_ignored']""
|
||||
"_cache_config_ignore_prefix": ["magic_cache_config"],
|
||||
"_save_config_ignore": ["e_ignored"],
|
||||
"magic_cache_config_ignored": True,
|
||||
"e_config": True,
|
||||
"e_jk": True,
|
||||
"e_jk_false": False,
|
||||
},
|
||||
)
|
||||
p3 = config.get_config_copy()
|
||||
@ -238,6 +249,9 @@ torch.testing._internal.fake_config_module._save_config_ignore = ['e_ignored']""
|
||||
"_cache_config_ignore_prefix": ["magic_cache_config"],
|
||||
"_save_config_ignore": ["e_ignored"],
|
||||
"magic_cache_config_ignored": True,
|
||||
"e_config": True,
|
||||
"e_jk": True,
|
||||
"e_jk_false": False,
|
||||
},
|
||||
)
|
||||
|
||||
|
Reference in New Issue
Block a user