'Must pass a list for multi-valued parameter: %s.' % name)
setattr(self, name, _cast_to_type_if_compatible(name, param_type, value))
+ def del_hparam(self, name):
+ """Removes the hyperparameter with key 'name'.
+
+ Args:
+ name: Name of the hyperparameter.
+ """
+ if hasattr(self, name):
+ delattr(self, name)
+ del self._hparam_types[name]
+
def parse(self, values):
"""Override hyperparameter values, parsing new values from a string.
self.assertEqual(123, hparams.get('unknown', 123))
self.assertEqual([1, 2, 3], hparams.get('unknown', [1, 2, 3]))
+ def testDel(self):
+ hparams = hparam.HParams(aaa=1, b=2.0)
+
+ with self.assertRaises(ValueError):
+ hparams.set_hparam('aaa', 'will fail')
+
+ with self.assertRaises(ValueError):
+ hparams.add_hparam('aaa', 'will fail')
+
+ hparams.del_hparam('aaa')
+ hparams.add_hparam('aaa', 'will work')
+ self.assertEqual('will work', hparams.get('aaa'))
+
+ hparams.set_hparam('aaa', 'still works')
+ self.assertEqual('still works', hparams.get('aaa'))
+
if __name__ == '__main__':
test.main()