# 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["output-folder"]
# 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 = configuration["network"]["name"]
+ filename: str = ""
# topology json
- if configuration['generation-tasks']['topology'] is True:
- filename: str = output_folder + "/" + name + "-operational.json"
+ if configuration["generation-tasks"]["topology"] is True:
+ filename = output_folder + "/" + name + "-operational.json"
viewer.json().save(filename)
# svg xml
- if configuration['generation-tasks']['svg'] is True:
- filename: str = output_folder + "/" + name + ".svg"
+ if configuration["generation-tasks"]["svg"] is True:
+ filename = output_folder + "/" + name + ".svg"
viewer.svg(filename)
# kml xml
- if configuration['generation-tasks']['kml'] is True:
- filename: str = output_folder + "/" + name + ".kml"
+ if configuration["generation-tasks"]["kml"] is True:
+ filename = output_folder + "/" + name + ".kml"
viewer.kml(filename)
else:
print(validator.error_message())
-