aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/bin/utils/io.py
diff options
context:
space:
mode:
Diffstat (limited to 'bin/utils/io.py')
-rw-r--r--bin/utils/io.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/bin/utils/io.py b/bin/utils/io.py
index 04baa6a..bb8eef9 100644
--- a/bin/utils/io.py
+++ b/bin/utils/io.py
@@ -8,6 +8,7 @@ import csv
import json
import sys
+
class FileWriterJSON:
def __init__(self, fd=sys.stdout):
self._fd = fd
@@ -16,13 +17,14 @@ class FileWriterJSON:
self._fd.write(json.dumps(something, indent=3, ensure_ascii=False))
self._fd.write('\n')
+
class FileWriterCSV:
def __init__(self, fd=sys.stdout):
self._writer = csv.writer(fd, lineterminator='\n')
@staticmethod
def _convert_row_old_python(row):
- if isinstance(row, list) or isinstance(row, tuple):
+ if isinstance(row, (list, tuple)):
return row
return list(row)
@@ -31,6 +33,7 @@ class FileWriterCSV:
row = self._convert_row_old_python(row)
self._writer.writerow(row)
+
@contextmanager
def _open_file(path=None, default=None, **kwargs):
if path is None:
@@ -39,8 +42,10 @@ def _open_file(path=None, default=None, **kwargs):
with open(path, **kwargs) as fd:
yield fd
+
def open_output_text_file(path=None):
return _open_file(path, default=sys.stdout, mode='w', encoding='utf-8')
+
def open_output_binary_file(path=None):
return _open_file(path, default=sys.stdout, mode='wb')