[diffoscope] 06/06: {feeders/diff/command}: fixes FIFO writting and parsing from stdout
Juliana Oliveira
jwnx-guest at moszumanska.debian.org
Tue Jan 23 22:03:36 CET 2018
This is an automated email from the git hooks/post-receive script.
jwnx-guest pushed a commit to branch jwnx_parallel_diffoscope
in repository diffoscope.
commit 632abfef75a4f807af55ca74ba03181ffd4cf9e9
Author: Juliana Oliveira <juliana.orod at gmail.com>
Date: Mon Jan 22 17:46:07 2018 -0200
{feeders/diff/command}: fixes FIFO writting and parsing from stdout
Since Popen was replaced by subprocess.run in Command, stdout and stderr
were simplified. Sometimes, this change reflected on how output was being
written on file. As Feeder and Diff were expecting a different
kind of Command.stdout, they were unable to parse some temporary files, which
caused a few tests to fail (and mostly fallback) without errors.
This patch fixes Command.stdout formatting and Feeder and Diff
writting/parsing of files.
Signed-off-by: Juliana Oliveira <juliana.orod at gmail.com>
---
diffoscope/comparators/utils/command.py | 2 +-
diffoscope/diff.py | 4 ++--
diffoscope/feeders.py | 3 ++-
3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/diffoscope/comparators/utils/command.py b/diffoscope/comparators/utils/command.py
index c276bfe..9abc158 100644
--- a/diffoscope/comparators/utils/command.py
+++ b/diffoscope/comparators/utils/command.py
@@ -102,4 +102,4 @@ class Command(object, metaclass=abc.ABCMeta):
@property
def stdout(self):
- return [self._process.stdout]
+ return self._process.stdout.decode().splitlines(True)
diff --git a/diffoscope/diff.py b/diffoscope/diff.py
index f21aa45..5664caa 100644
--- a/diffoscope/diff.py
+++ b/diffoscope/diff.py
@@ -67,8 +67,8 @@ class DiffParser(object):
return self._success
def parse(self):
- for line in self._output:
- self._action = self._action(line.decode('utf-8', errors='replace'))
+ for line in self._output.decode('utf-8', errors='replace').splitlines(True):
+ self._action = self._action(line)
self._action('')
self._success = True
diff --git a/diffoscope/feeders.py b/diffoscope/feeders.py
index 8522584..04a3440 100644
--- a/diffoscope/feeders.py
+++ b/diffoscope/feeders.py
@@ -43,6 +43,7 @@ def from_raw_reader(in_file, filter=None):
h = hashlib.sha1()
for buf in in_file:
+ buf = buf.encode('utf-8')
line_count += 1
out = buf if filter is None else filter(buf)
@@ -71,7 +72,7 @@ def from_raw_reader(in_file, filter=None):
def from_text_reader(in_file, filter=None):
if filter is None:
def encoding_filter(text_buf):
- return text_buf.encode('utf-8')
+ return text_buf
else:
def encoding_filter(text_buf):
return filter(text_buf).encode('utf-8')
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/diffoscope.git
More information about the diffoscope
mailing list