Source code for pyxsd.transforms.displayer
import sys
import tempfile
from typing import IO, Any
from pyxsd.transforms.transform import Transform
from pyxsd.writers.xml_tree_writer import XmlTreeWriter
"""
Transform Library: Displayer
============================
:Category: Standard Transform Tools
:Description: Library containing functions to help print data
"""
[docs]
class Displayer(Transform):
# The tree root, stored by concrete subclass ``__init__``.
root: Any
[docs]
def openFile(self, fileName: str | None = None) -> IO[str]: # uses stdout if filename is None
if fileName is None or fileName == "stdout":
return sys.stdout
return open(fileName, "w")
[docs]
def writeTree(self, file: IO[str]) -> None:
XmlTreeWriter(self.root, file)
file.flush()
[docs]
def makeTempFileOfTree(self) -> IO[str]:
newTree = tempfile.TemporaryFile(mode="w+") # noqa: SIM115 - returned to caller
self.writeTree(newTree)
newTree.seek(0)
return newTree