class ConfigTest(BaseConfig):
a: int = 1
b: str = 'b'
c: float = 3.14
conf = ConfigTest()
conf.save('test.json')
conf2 = ConfigTest.load_from_json('test.json')
assert conf == conf2
# remove test.json
os.remove('test.json')
conf = ConfigTest()
conf.save('tmp/test.json')
conf2 = ConfigTest.load_from_json('tmp/test.json')
assert conf == conf2
os.remove('tmp/test.json')
test_fail(lambda: conf.save('test'), contains="Path must end with `.json`,")
test_fail(lambda: ConfigTest.load_from_json('test.json'), contains="File not found")Base APIs
relax.base.BaseConfig
class relax.base.BaseConfig ()
Base class for all config classes.
relax.base.BaseModule
class relax.base.BaseModule (config, name=None)
Base class for all modules.
class TestModule(BaseModule):
def save(self, path):
self.config.save(Path(path) / 'config.json')
def load_from_path(self, path):
self.config = ConfigTest.load_from_json(Path(path) / 'config.json')
conf = ConfigTest()
module = TestModule(conf)
assert module.name == 'TestModule'
module.save('tmp/module/')
module.load_from_path('tmp/module/')
assert module.config == conf
shutil.rmtree('tmp/module/')relax.base.PredFnMixedin
class relax.base.PredFnMixedin ()
Mixin class for modules that have a pred_fn method.
relax.base.TrainableMixedin
class relax.base.TrainableMixedin ()
Mixin class for trainable modules.