Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 24 additions & 19 deletions sharc/main_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,11 @@
from sharc.controller import Controller
from sharc.gui.view_cli import ViewCli
from sharc.model import Model


import sys
import getopt
import os
import argparse
import logging
sys.path.append(os.path.join(os.path.dirname(__file__), ".."))


Expand All @@ -34,28 +37,30 @@ def main(argv):

param_file = ""

try:
opts, _ = getopt.getopt(argv, "hp:")
except getopt.GetoptError:
print("usage: main_cli.py -p <param_file>")
sys.exit(2)

if not opts:
param_file = os.path.join(os.getcwd(), "input", "parameters.yaml")
else:
for opt, arg in opts:
if opt == "-h":
print("usage: main_cli.py -p <param_file>")
sys.exit()
elif opt == "-p":
param_file = os.path.join(os.getcwd(), arg)
parser = argparse.ArgumentParser(description="Run the SHARC command-line interface.")
parser.add_argument(
"-p", "--param_file",
type=str,
required=True,
help="Path to the parameter file (required)"
)
parser.add_argument(
"-l", "--log_level",
type=str,
choices=["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"],
default="INFO",
help="Set the logging level (default: INFO)"
)
args = parser.parse_args(argv)
param_file = os.path.abspath(args.param_file)

log_level = getattr(logging, args.log_level.upper(), logging.INFO)
Logging.setup_logging(default_level=log_level)

# Logger setup start
sim_logger = SimulationLogger(param_file)
sim_logger.start()

Logging.setup_logging()

model = Model()
view_cli = ViewCli()
controller = Controller()
Expand Down
7 changes: 7 additions & 0 deletions sharc/simulation.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import math
import sys
import matplotlib.pyplot as plt
from logging import getLogger

from sharc.support.enumerations import StationType
from sharc.topology.topology_factory import TopologyFactory
Expand All @@ -21,6 +22,8 @@
from sharc.results import Results
from sharc.propagation.propagation_factory import PropagationFactory

logger = getLogger(__name__)


class Simulation(ABC, Observable):
"""
Expand Down Expand Up @@ -221,6 +224,8 @@ def initialize(self, *args, **kwargs):
This method is executed only once to initialize the simulation variables.
"""

logger.debug("Initializing the simulation")

self.topology.calculate_coordinates()

self.initialize_topology_dependant_variables()
Expand Down Expand Up @@ -266,6 +271,8 @@ def finalize(self, *args, **kwargs):
snapshot_number = kwargs["snapshot_number"]
self.results.write_files(snapshot_number)

logger.debug("Finalizing the simulation")

def calculate_coupling_loss_system_imt(
self,
system_station: StationManager,
Expand Down
8 changes: 4 additions & 4 deletions sharc/support/logging.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@ disable_existing_loggers: False
formatters:
simple:
format: "%(message)s"
# format: "%(asctime)s - %(name)s - %(message)s"
detailed:
class: logging.Formatter
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"

handlers:
console:
class: logging.StreamHandler
level: INFO
formatter: simple
formatter: detailed
stream: ext://sys.stdout

file:
Expand All @@ -20,7 +21,6 @@ handlers:
maxBytes: 10485760 # 10MB
backupCount: 20
encoding: utf8


root:
level: INFO
Expand Down
1 change: 1 addition & 0 deletions sharc/support/sharc_logger.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ def setup_logging(
if os.path.exists(path):
with open(path, "rt") as f:
config = yaml.safe_load(f.read())
config['root']['level'] = logging.getLevelName(default_level)
logging.config.dictConfig(config)
else:
logging.basicConfig(level=default_level)
Expand Down
2 changes: 1 addition & 1 deletion sharc/thread_simulation.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def is_stopped(self) -> bool:
-------
True if simulation is stopped
"""
return self.stop_flag.isSet()
return self.stop_flag.is_set()

def run(self):
"""
Expand Down