diff --git a/bonobo/io/file.py b/bonobo/io/file.py index 0b341a2..fa6374e 100644 --- a/bonobo/io/file.py +++ b/bonobo/io/file.py @@ -46,17 +46,17 @@ class FileHandler: class Reader(FileHandler): def __call__(self, ctx): - yield from self.handle(ctx) + yield from self.read(ctx) - def handle(self, ctx): + def read(self, ctx): raise NotImplementedError('Abstract.') class Writer(FileHandler): def __call__(self, ctx, row): - return self.handle(ctx, row) + return self.write(ctx, row) - def handle(self, ctx, row): + def write(self, ctx, row): raise NotImplementedError('Abstract.') @@ -71,7 +71,7 @@ class FileReader(Reader): mode = 'r' - def handle(self, ctx): + def read(self, ctx): """ Write a row on the next line of file pointed by `ctx.file`. Prefix is used for newlines. @@ -98,7 +98,7 @@ class FileWriter(Writer): super().initialize(ctx) ctx.line = 0 - def handle(self, ctx, row): + def write(self, ctx, row): """ Write a row on the next line of opened file in context. @@ -106,10 +106,10 @@ class FileWriter(Writer): :param str row: :param str prefix: """ - self.write(ctx.file, (self.eol if ctx.line else '') + row) + self._write_line(ctx.file, (self.eol if ctx.line else '') + row) ctx.line += 1 - def write(self, fp, line): + def _write_line(self, fp, line): return fp.write(line) def finalize(self, ctx): diff --git a/bonobo/io/json.py b/bonobo/io/json.py index b12a811..f94105e 100644 --- a/bonobo/io/json.py +++ b/bonobo/io/json.py @@ -10,7 +10,7 @@ class JsonHandler: class JsonReader(JsonHandler, FileReader): - def handle(self, ctx): + def read(self, ctx): for line in json.load(ctx.file): yield line @@ -20,14 +20,14 @@ class JsonWriter(JsonHandler, FileWriter): super().initialize(ctx) ctx.file.write('[\n') - def handle(self, ctx, row): + def write(self, ctx, row): """ Write a json row on the next line of file pointed by ctx.file. :param ctx: :param row: """ - return super().handle(ctx, json.dumps(row)) + return super().write(ctx, json.dumps(row)) def finalize(self, ctx): ctx.file.write('\n]') diff --git a/tests/io/test_json.py b/tests/io/test_json.py index b61c082..7386872 100644 --- a/tests/io/test_json.py +++ b/tests/io/test_json.py @@ -8,17 +8,15 @@ from bonobo.util.tokens import BEGIN, END def test_write_json_to_file(tmpdir): file = tmpdir.join('output.json') - json_writer = JsonWriter(str(file)) - context = ComponentExecutionContext(json_writer, None) + writer = JsonWriter(str(file)) + context = ComponentExecutionContext(writer, None) context.initialize() context.recv(BEGIN, Bag({'foo': 'bar'}), END) context.step() context.finalize() - assert file.read() == '''[ -{"foo": "bar"} -]''' + assert file.read() == '[\n{"foo": "bar"}\n]' with pytest.raises(AttributeError): getattr(context, 'file') @@ -29,11 +27,11 @@ def test_write_json_to_file(tmpdir): def test_write_json_without_initializer_should_not_work(tmpdir): file = tmpdir.join('output.json') - json_writer = JsonWriter(str(file)) + writer = JsonWriter(str(file)) - context = ComponentExecutionContext(json_writer, None) + context = ComponentExecutionContext(writer, None) with pytest.raises(AttributeError): - json_writer(context, {'foo': 'bar'}) + writer(context, {'foo': 'bar'}) def test_read_json_from_file(tmpdir):