110 lines
3.2 KiB
Diff
110 lines
3.2 KiB
Diff
From e0942417a1c267781a8b676789730457dcb2e6fa Mon Sep 17 00:00:00 2001
|
|
From: Martin Weinelt <hexa@darmstadt.ccc.de>
|
|
Date: Sun, 20 Jun 2021 15:18:37 +0200
|
|
Subject: [PATCH] Use custom YAML subclass to be compatible with
|
|
ruamel_yaml>=0.17
|
|
|
|
Signed-off-by: Martin Weinelt <hexa@darmstadt.ccc.de>
|
|
---
|
|
whipper/common/yaml.py | 18 ++++++++++++++++++
|
|
whipper/result/logger.py | 11 ++++++-----
|
|
whipper/test/test_result_logger.py | 14 ++++++--------
|
|
3 files changed, 30 insertions(+), 13 deletions(-)
|
|
create mode 100644 whipper/common/yaml.py
|
|
|
|
diff --git a/whipper/common/yaml.py b/whipper/common/yaml.py
|
|
new file mode 100644
|
|
index 00000000..4edb0b36
|
|
--- /dev/null
|
|
+++ b/whipper/common/yaml.py
|
|
@@ -0,0 +1,18 @@
|
|
+from ruamel.yaml import YAML as ruamel_YAML
|
|
+from ruamel.yaml.compat import StringIO
|
|
+
|
|
+# https://yaml.readthedocs.io/en/latest/example.html#output-of-dump-as-a-string
|
|
+class YAML(ruamel_YAML):
|
|
+ def __init__(self, *args, **kwargs):
|
|
+ super().__init__()
|
|
+ self.width = 4000
|
|
+ self.default_flow_style = False
|
|
+
|
|
+ def dump(self, data, stream=None, **kw):
|
|
+ inefficient = False
|
|
+ if stream is None:
|
|
+ inefficient = True
|
|
+ stream = StringIO()
|
|
+ ruamel_YAML.dump(self, data, stream, **kw)
|
|
+ if inefficient:
|
|
+ return stream.getvalue()
|
|
diff --git a/whipper/result/logger.py b/whipper/result/logger.py
|
|
index b7043adc..f4471a00 100644
|
|
--- a/whipper/result/logger.py
|
|
+++ b/whipper/result/logger.py
|
|
@@ -1,12 +1,12 @@
|
|
import time
|
|
import hashlib
|
|
import re
|
|
-import ruamel.yaml as yaml
|
|
from ruamel.yaml.comments import CommentedMap as OrderedDict
|
|
|
|
import whipper
|
|
|
|
from whipper.common import common
|
|
+from whipper.common.yaml import YAML
|
|
from whipper.result import result
|
|
|
|
|
|
@@ -148,11 +148,12 @@ def logRip(self, ripResult, epoch):
|
|
data["EOF"] = "End of status report"
|
|
riplog["Conclusive status report"] = data
|
|
|
|
+ yaml = YAML(
|
|
+ typ="rt",
|
|
+ pure=True
|
|
+ )
|
|
riplog = yaml.dump(
|
|
- riplog,
|
|
- default_flow_style=False,
|
|
- width=4000,
|
|
- Dumper=yaml.RoundTripDumper
|
|
+ riplog
|
|
)
|
|
# Add a newline after the "Log creation date" line
|
|
riplog = re.sub(
|
|
diff --git a/whipper/test/test_result_logger.py b/whipper/test/test_result_logger.py
|
|
index 411b61af..98c89ab5 100644
|
|
--- a/whipper/test/test_result_logger.py
|
|
+++ b/whipper/test/test_result_logger.py
|
|
@@ -3,8 +3,8 @@
|
|
import os
|
|
import re
|
|
import unittest
|
|
-import ruamel.yaml
|
|
|
|
+from whipper.common.yaml import YAML
|
|
from whipper.result.result import TrackResult, RipResult
|
|
from whipper.result.logger import WhipperLogger
|
|
|
|
@@ -163,16 +163,14 @@ def testLogger(self):
|
|
))
|
|
)
|
|
|
|
- yaml = ruamel.yaml.YAML()
|
|
+ yaml = YAML(
|
|
+ typ='rt',
|
|
+ pure=True
|
|
+ )
|
|
parsedLog = yaml.load(actual)
|
|
self.assertEqual(
|
|
actual,
|
|
- ruamel.yaml.dump(
|
|
- parsedLog,
|
|
- default_flow_style=False,
|
|
- width=4000,
|
|
- Dumper=ruamel.yaml.RoundTripDumper
|
|
- )
|
|
+ yaml.dump(parsedLog)
|
|
)
|
|
log_body = "\n".join(actualLines[:-1]).encode()
|
|
self.assertEqual(
|