def test_pipeline_stop_on_exception_filter(self): data = AssemblerState() assembler = Assembler("Fail test").set_validator(InputValidator()) assembler.set_estimator(HelloStage(), [BadFilter()], [PostFilter()]) # This should fail to execute HelloStage assembler.run(data) self.assertIsNone(data.text) self.assertFalse(data.post_filter_ran)
def test_pipeline_stop_on_error_estimator(self): data = AssemblerState() data.estimator_add_error = True assembler = Assembler("Fail test").set_validator(InputValidator()) assembler.set_estimator(HelloStage(), [], [PostFilter()]) # This should fail to execute PostFilter assembler.run(data) self.assertFalse(data.post_filter_ran)
def test_pipeline_stop_on_error_filter(self): # Use the errors list in state instead data = AssemblerState() data.use_errors_instead = True assembler = Assembler("Fail test").set_validator(InputValidator()) assembler.set_estimator(HelloStage(), [BadFilter()], [PostFilter()]) # This should fail to execute HelloStage & PostFilter assembler.run(data) self.assertIsNone(data.text) self.assertFalse(data.post_filter_ran)
from surround import Assembler from stages import AddWorld, AddHello, AddSurround, BasicData, ValidateData if __name__ == "__main__": data = BasicData() assembler = Assembler("Pre Post Example", ValidateData()) assembler.set_estimator(AddWorld(), [AddHello()], [AddSurround()]) assembler.run(data) print("Text is '%s'" % data.text)
print("Not training implementation") class AssemblerState(State): text = None class InputValidator(Validator): def validate(self, state, config): if state.text: raise ValueError("'text' is not None") if __name__ == "__main__": logging.basicConfig(level=logging.INFO) path = os.path.dirname(os.path.realpath(__file__)) app_config = Config() app_config.read_config_files([path + "/config.yaml"]) assembler = Assembler("Dump output example") assembler.set_validator(InputValidator()) assembler.set_config(app_config) assembler.set_estimator(WriteWorld(path), [WriteHello(path)]) assembler.run(AssemblerState()) print("Hello output.txt contains '%s'" % open(path + hello_file_path, "r").read()) print("World output.txt contains '%s'" % open(path + world_file_path, "r").read())
class AssemblerState(State): training_message = None text = None class Formatter(Visualiser): def visualise(self, state, config): print("Visualiser result: %s" % state.training_message) if __name__ == "__main__": logging.basicConfig(level=logging.INFO) data = AssemblerState() assembler = Assembler("Training example") assembler.set_validator(InputValidator()) assembler.set_estimator(HelloWorld()) assembler.init_assembler(True) assembler.set_visualiser(Formatter()) # Run assembler before training assembler.run(data) print("Text before training is '%s'" % data.text) data.text = None # Clear text to prevent validation raising error # Run training mode assembler.run(data, True) # Run assembler after training assembler.run(data) print("Text after training is '%s'" % data.text)
def test_assembler_init_fail(self): assembler = Assembler("Fail test").set_validator(InputValidator()) assembler.set_estimator(HelloStage(), [BadFilter()]) self.assertFalse(assembler.init_assembler())