configuration["generationTasks"]["topology"]["compressed"]
)
+ # dir structure for day0 configuration
+ # Note: compressed option ignored
+ if configuration["generationTasks"]["network_dir"]["enabled"] is True:
+ viewer.to_directory(
+ output_folder
+ )
+
# svg xml
if configuration["generationTasks"]["svg"]["enabled"] is True:
viewer.svg(
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
+
+ def to_directory(self, parent_dir: str) -> None:
+ pass
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
+
+ def to_directory(self, parent_dir: str) -> None:
+ for tower in self.towers:
+ tower.to_directory(parent_dir)
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
+
+ def to_directory(self, parent_dir: str) -> None:
+ for o_ran_cloud_du in self.o_ran_cloud_dus:
+ o_ran_cloud_du.to_directory(parent_dir)
A Class representing an O-RAN distributed unit (ORanDu)
"""
import xml.etree.ElementTree as ET
+import os
from typing import Any, cast
from network_generation.model.python.o_ran_node import IORanNode, ORanNode
if o_ran_du_data and "oRanRuCount" in o_ran_du_data
else 1
)
+ self.type = "ntsim-ng-o-du"
def _to_o_ran_du_data(self, data: dict[str, Any]) -> IORanDu:
result: IORanDu = default_value
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
+
+ def to_directory(self, parent_dir: str) -> None:
+ parent_path = os.path.join(parent_dir, self.type)
+ path = os.path.join(parent_path, self.name)
+ if not os.path.exists(parent_path):
+ os.makedirs(parent_path, exist_ok=True)
+ if not os.path.exists(path):
+ os.mkdir(path)
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
+
+ def to_directory(self, parent_dir: str) -> None:
+ for o_ran_cu in self.o_ran_cus:
+ o_ran_cu.to_directory(parent_dir)
Module for a class representing a O-RAN Network
"""
import xml.etree.ElementTree as ET
+import os
from typing import Any, cast
import network_generation.model.python.hexagon as Hexagon
}
}
+ def to_directory(self, parent_dir: str) -> None:
+ self._o_ran_smo.to_directory(os.path.join(parent_dir, self.id))
+
def toKml(self) -> ET.Element:
root: ET.Element = ET.Element(
"kml", xmlns="http://www.opengis.net/kml/2.2"
@abstractmethod
def toSvg(self) -> ET.Element:
pass
+
+ @abstractmethod
+ def to_directory(self, parent_dir: str) -> None:
+ pass
A Class representing an O-RAN radio unit (ORanRu)
"""
import xml.etree.ElementTree as ET
+import os
from typing import Any, cast
from network_generation.model.python.nr_cell_du import NrCellDu
)
self._cells: list[NrCellDu] = self._create_cells()
name: str = self.name.replace("RU", "DU")
+ self.type = "ntsim-ng-o-ru"
o_ran_du_data: dict[str, Any] = {
"name": name,
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
+
+ def to_directory(self, parent_dir: str) -> None:
+ self.oRanDu.to_directory(parent_dir)
+ parent_path = os.path.join(parent_dir, self.type)
+ path = os.path.join(parent_path, self.name)
+ if not os.path.exists(parent_path):
+ os.makedirs(parent_path, exist_ok=True)
+ if not os.path.exists(path):
+ os.mkdir(path)
def toSvg(self) -> ET.Element:
return ET.Element("not-implemented-yet-TODO")
+
+ def to_directory(self, parent_dir: str) -> None:
+ for ric in self.o_ran_near_rt_rics:
+ ric.to_directory(parent_dir)
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
+
+ def to_directory(self, parent_dir: str) -> None:
+ for o_ran_ru in self.o_ran_rus:
+ o_ran_ru.to_directory(parent_dir)
"""
print(self.__network)
+ def to_directory(self, parent_dir: str) -> None:
+ """
+ Method converting the network to a subdirectory file structure
+ """
+ self.__network.to_directory(parent_dir)
+ print(f'Directory structure saved to "{parent_dir}"')
+
def save(self, filename: str, compressed: bool = True) -> None:
"""
Method saving the class content to a file in json format.