Test for open attribute on output, to support Paths

This commit is contained in:
Alex Hall 2019-05-03 20:00:22 +02:00 committed by Ram Rachum
parent 2732922e1d
commit 5a82a65bde
1 changed files with 9 additions and 2 deletions

View File

@ -30,11 +30,18 @@ def get_write_and_truncate_functions(output):
elif callable(output):
write = output
truncate = None
else:
assert isinstance(output, utils.WritableStream)
elif isinstance(output, utils.WritableStream):
def write(s):
output.write(s)
truncate = None
elif hasattr(output, 'open'):
def write(s):
with output.open('a') as output_file:
output_file.write(s)
def truncate():
with output.open('w'):
pass
return (write, truncate)