You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by tv...@apache.org on 2022/08/21 04:39:20 UTC
[buildstream] 01/02: _yaml.pyx: Added roundtrip_dump_string()
This is an automated email from the ASF dual-hosted git repository.
tvb pushed a commit to branch tristan/fix-ruamel-deprecation-warnings
in repository https://gitbox.apache.org/repos/asf/buildstream.git
commit de67e74854765793970762be63e67d2e7c86244d
Author: Tristan van Berkom <tr...@codethink.co.uk>
AuthorDate: Sun Aug 21 13:37:10 2022 +0900
_yaml.pyx: Added roundtrip_dump_string()
A convenience function for dumping yaml to a returned string
---
src/buildstream/_yaml.pyx | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/src/buildstream/_yaml.pyx b/src/buildstream/_yaml.pyx
index 19f5dfc38..57d98e413 100644
--- a/src/buildstream/_yaml.pyx
+++ b/src/buildstream/_yaml.pyx
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2018 Codethink Limited
+# Copyright (C) 2022 Codethink Limited
# Copyright (C) 2019 Bloomberg LLP
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,6 +22,7 @@
import datetime
import sys
+from io import StringIO
from contextlib import ExitStack
from collections import OrderedDict
from collections.abc import Mapping
@@ -477,3 +478,19 @@ def roundtrip_dump(contents, file=None):
else:
f = sys.stdout
yml.dump(contents, f)
+
+
+# roundtrip_dump_string()
+#
+# Helper to call roundtrip_dump() but get the content in a string.
+#
+# Args:
+# contents (Mapping or list): The content to write out as YAML.
+#
+# Returns:
+# (str): The generated string
+#
+def roundtrip_dump_string(node):
+ with StringIO() as f:
+ roundtrip_dump(node, f)
+ return f.getvalue()