Provides functions to convert the Network into different formats
"""
-import encodings
import json
from lxml import etree
from model.python.tapi_common_context import TapiCommonContext
"""
print(self.__network)
- def save(self, filename: str):
+ def save(self, filename: str, running: bool):
"""
Method saving the class content to a file in json format.
:param filename: A valid path to a file on the system.
:type filename: string
"""
with open(filename, "w", encoding='utf-8') as json_file:
- output = self.__network.json()
+ output = self.__network.json(running)
json.dump(output, json_file,
ensure_ascii=False, indent=2)
- for key in ["Node", "Link"]:
- print(key + "s:", len(output
- ["tapi-common:context"]
- ["tapi-topology:topology-context"]
- ["topology"][0][key.lower()])
- )
+ if running is False:
+ for key in ["Node", "Link"]:
+ print(key + "s:", len(output
+ ["tapi-common:context"]
+ ["tapi-topology:topology-context"]
+ ["topology"][0][key.lower()])
+ )
print("File '" + filename + "' saved!")
+ def readStylesFromFile(self) -> str:
+ """
+ Method reading the css styles from known file
+ return: content of the file as string
+ """
+ with open('view/svg.style.css') as styles:
+ content = styles.read()
+ return content
+
def svg(self, filename: str):
"""
Method saving the class content to a file in xml/svg format.
:type filename: string
"""
root = self.__network.svg(0, 0)
- root.addprevious(
- etree.ProcessingInstruction("xml-stylesheet",
- 'href="svg.style.css" type="text/css"')
- )
+ # not preferred see OAM-257
+ # root.addprevious(
+ # etree.ProcessingInstruction("xml-stylesheet",
+ # 'href="svg.style.css" type="text/css"')
+ # )
+ style = etree.Element("style")
+ style.text = self.readStylesFromFile()
+ root.getchildren()[0].addnext(style)
etree.ElementTree(root).write(filename,
encoding="utf-8",
xml_declaration=True,