# inspired by https://github.com/rochacbruno/python-project-template
-"""CLI interface for network_generation project.
-
-Be creative! do whatever you want!
-
-- Install click or typer and create a CLI app
-- Use builtin argparse
-- Start a web application
-- Import things from your .base module
-"""
-
+import os
+import sys
+from network_generation.base import NetworkGenerator
+from network_generation.model.python.o_ran_network import ORanNetwork
+from network_generation.parameter_validator import ParameterValidator
+from network_generation.view.network_viewer import NetworkViewer
"""
+CLI interface for network_generation project.
Module as entry point to generate an ietf topology json
"""
-import os
-import sys
-from network_generation.view.network_viewer import NetworkViewer
-from network_generation.controller.network_generator import NetworkGenerator
-from network_generation.controller.parameter_validator import ParameterValidator
-def main(): # pragma: no cover
+def main() -> None: # pragma: no cover
"""
The main function executes on commands:
`python -m network_generation`.
"""
validator: ParameterValidator = ParameterValidator(sys.argv)
- print("I'm in", sys.argv)
if validator.is_valid():
- configuration = validator.configuration()
- generator = NetworkGenerator(configuration['network'])
- network = generator.generate()
- viewer = NetworkViewer(network)
-
- output_folder:str = configuration['output-folder']
+ configuration: dict = validator.configuration()
+ generator: NetworkGenerator = NetworkGenerator(
+ configuration["network"]
+ )
+ network: ORanNetwork = generator.generate()
+ viewer: NetworkViewer = NetworkViewer(network)
+
+ output_folder: str = configuration["outputFolder"]
# If folder doesn't exist, then create it.
if not os.path.isdir(output_folder):
os.makedirs(output_folder)
-
- name: str = configuration['network']['name']
+
+ name: str = str(configuration["network"]["name"]).lower()
+ filename: str = "/".join([output_folder, name])
# topology json
- if configuration['generation-tasks']['topology'] is True:
- filename: str = output_folder + "/" + name + "-operational.json"
- viewer.json().save(filename)
+ if configuration["generationTasks"]["topology"]["enabled"] is True:
+ viewer.json().save(
+ filename,
+ configuration["generationTasks"]["topology"]["compressed"]
+ )
# svg xml
- if configuration['generation-tasks']['svg'] is True:
- filename: str = output_folder + "/" + name + ".svg"
- viewer.svg(filename)
-
- # kml xml
- if configuration['generation-tasks']['kml'] is True:
- filename: str = output_folder + "/" + name + ".kml"
- viewer.kml(filename)
+ if configuration["generationTasks"]["svg"]["enabled"] is True:
+ viewer.svg(
+ filename,
+ configuration["generationTasks"]["svg"]["compressed"]
+ )
+
+ # kml/kmz xml
+ if configuration["generationTasks"]["kml"]["enabled"] is True:
+ viewer.kml(
+ filename,
+ configuration["generationTasks"]["kml"]["compressed"]
+ )
else:
print(validator.error_message())
-