void-packages/srcpkgs/whipper/patches/ruamel.yaml-0.17_compat.patch

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(