From e39be6173ecc577aab2c977a8269e1e1d774d0ef Mon Sep 17 00:00:00 2001 From: "Robin.Mueller" <robin.mueller.m@gmail.com> Date: Sun, 26 Apr 2020 22:59:51 +0200 Subject: [PATCH] pylint --- comIF/obsw_com_config.py | 15 ++++++--- tm/obsw_pus_tm_creator.py | 24 ++++++++++++--- utility/obsw_args_parser.py | 7 +++-- utility/obsw_logger.py | 12 +++++++- utility/obsw_tmtc_printer.py | 59 +++++++++++++++++++----------------- 5 files changed, 76 insertions(+), 41 deletions(-) diff --git a/comIF/obsw_com_config.py b/comIF/obsw_com_config.py index 8824fa5..8e6e08e 100644 --- a/comIF/obsw_com_config.py +++ b/comIF/obsw_com_config.py @@ -1,14 +1,19 @@ +""" +Set-up function. Initiates the communication interface. +""" import sys -from utility.obsw_tmtc_printer import TmTcPrinter from comIF.obsw_com_interface import CommunicationInterface from comIF.obsw_dummy_com_if import DummyComIF from comIF.obsw_ethernet_com_if import EthernetComIF from comIF.obsw_serial_com_if import SerialComIF + from utility.obsw_logger import get_logger +from utility.obsw_tmtc_printer import TmTcPrinter + import config.obsw_config as g -logger = get_logger() +LOGGER = get_logger() def set_communication_interface(tmtc_printer: TmTcPrinter) -> CommunicationInterface: """ @@ -33,6 +38,6 @@ def set_communication_interface(tmtc_printer: TmTcPrinter) -> CommunicationInter communication_interface = DummyComIF(tmtc_printer=tmtc_printer) return communication_interface except (IOError, OSError): - logger.error("Error setting up communication interface") - logger.exception("Error") - sys.exit() \ No newline at end of file + LOGGER.error("Error setting up communication interface") + LOGGER.exception("Error") + sys.exit() diff --git a/tm/obsw_pus_tm_creator.py b/tm/obsw_pus_tm_creator.py index 1ffdee3..3772ebc 100644 --- a/tm/obsw_pus_tm_creator.py +++ b/tm/obsw_pus_tm_creator.py @@ -1,19 +1,30 @@ +""" +This module creates the class required to generate PUS telemetry packets. +""" +import crcmod + from tm.obsw_pus_tm_base import PusTelemetry, PusTelemetryTimestamp from utility.obsw_logger import get_logger -import crcmod -logger = get_logger() + +LOGGER = get_logger() +#pylint: disable=too-many-instance-attributes +#pylint: disable=too-many-arguments class PusTelemetryCreator(PusTelemetry): """ Alternative way to create a PUS Telemetry packet by specifying telemetry parameters, similarly to the way telecommands are created. This can be used to create telemetry - directly in the software. + directly in the software. See documentation and more information related to + the ESA PUS standard in the PusTelemetry documentation. """ def __init__(self, service: int, subservice: int, ssc: int = 0, - source_data: bytearray=bytearray([]), apid: int = 0x73, version: int = 0): + source_data: bytearray = bytearray([]), apid: int = 0x73, version: int = 0): + """ + Initiates the unserialized data fields for the PUS telemetry packet. + """ super().__init__() # packet type for telemetry is 0 as specified in standard packet_type = 0 @@ -40,6 +51,9 @@ class PusTelemetryCreator(PusTelemetry): self.source_data = source_data def pack(self) -> bytearray: + """ + Serializes the PUS telemetry into a raw packet. + """ tm_packet_raw = bytearray() # PUS Header tm_packet_raw.extend(self.packet_id_bytes) @@ -75,5 +89,5 @@ class PusTelemetryCreator(PusTelemetry): data_length = 4 + PusTelemetry.PUS_TIMESTAMP_SIZE + len(self.source_data) + 1 return data_length except TypeError: - logger.error("PusTelecommand: Invalid type of application data!") + LOGGER.error("PusTelecommand: Invalid type of application data!") return 0 diff --git a/utility/obsw_args_parser.py b/utility/obsw_args_parser.py index 234aae6..d5b3bb7 100644 --- a/utility/obsw_args_parser.py +++ b/utility/obsw_args_parser.py @@ -1,10 +1,13 @@ #!/usr/bin/python3.8 +""" +Argument parser module. +""" import argparse import sys from utility.obsw_logger import get_logger -logger = get_logger() +LOGGER = get_logger() def parse_input_arguments(): @@ -19,7 +22,7 @@ def parse_input_arguments(): '0: GUI Mode, 1:Listener Mode, 2: Single Command Mode, 3: Service Test Mode, ' '4: Software Test Mode, 5: Unit Test Mode ', default=0) arg_parser.add_argument( - '-c', '--comIF', type=int, help='Communication Interface. 0 for Ethernet, 1 for Serial, ' + '-c', '--com_if', type=int, help='Communication Interface. 0 for Ethernet, 1 for Serial, ' '2 for virtual interface', default=2) arg_parser.add_argument('--clientIP', help='Client(Computer) IP. Default:\'\'', default='') arg_parser.add_argument( diff --git a/utility/obsw_logger.py b/utility/obsw_logger.py index ffe2057..5725183 100644 --- a/utility/obsw_logger.py +++ b/utility/obsw_logger.py @@ -1,9 +1,14 @@ +""" +@brief This module is used to set up the global loggers +""" import logging import os import sys import config.obsw_config as g +# pylint: disable=arguments-differ +# pylint: disable=too-few-public-methods class InfoFilter(logging.Filter): """ Filter object, which is used so that only INFO and DEBUG messages are printed to stdout. @@ -11,6 +16,7 @@ class InfoFilter(logging.Filter): def filter(self, rec): if rec.levelno == logging.INFO: return rec.levelno + return None class DebugFilter(logging.Filter): @@ -20,6 +26,7 @@ class DebugFilter(logging.Filter): def filter(self, rec): if rec.levelno == logging.DEBUG: return rec.levelno + return None def set_tmtc_logger() -> logging.Logger: @@ -66,5 +73,8 @@ def set_tmtc_logger() -> logging.Logger: return logger def get_logger() -> logging.Logger: + """ + Get the global logger instance. + """ logger = logging.getLogger(g.G_TMTC_LOGGER_NAME) - return logger \ No newline at end of file + return logger diff --git a/utility/obsw_tmtc_printer.py b/utility/obsw_tmtc_printer.py index 5ed2be3..aecd05a 100644 --- a/utility/obsw_tmtc_printer.py +++ b/utility/obsw_tmtc_printer.py @@ -9,7 +9,6 @@ Class that performs all printing functionalities """ import os -import sys import enum from config import obsw_config as g from tm.obsw_pus_tm_base import PusTelemetry @@ -17,10 +16,11 @@ from tm.obsw_tm_service_3 import Service3TM from tc.obsw_pus_tc_base import PusTcInfoT, TcDictionaryKeys from utility.obsw_logger import get_logger -logger = get_logger() +LOGGER = get_logger() class DisplayMode(enum.Enum): + """ List of display modes """ SHORT = enum.auto() LONG = enum.auto() @@ -69,18 +69,18 @@ class TmTcPrinter: self.__handle_hk_definition_print(packet) if g.G_PRINT_RAW_TM: self.__print_buffer = "TM Data:" + "\n" + self.return_data_string(packet.get_tm_data()) - logger.info(self.__print_buffer) + LOGGER.info(self.__print_buffer) self.add_print_buffer_to_file_buffer() def __handle_short_print(self, tm_packet: PusTelemetry): self.__print_buffer = "Received TM[" + str(tm_packet.get_service()) + "," + str( tm_packet.get_subservice()) + "]" - logger.info(self.__print_buffer) + LOGGER.info(self.__print_buffer) self.add_print_buffer_to_file_buffer() def __handle_long_print(self, tm_packet: PusTelemetry): self.__print_buffer = "Received Telemetry: " + tm_packet.print_info - logger.info(self.__print_buffer) + LOGGER.info(self.__print_buffer) self.add_print_buffer_to_file_buffer() self.__handle_column_header_print(tm_packet) self.__handle_tm_content_print(tm_packet) @@ -89,7 +89,7 @@ class TmTcPrinter: rec_pus = [] tm_packet.append_telemetry_column_headers(rec_pus) self.__print_buffer = str(rec_pus) - logger.info(self.__print_buffer) + LOGGER.info(self.__print_buffer) self.add_print_buffer_to_file_buffer() def __handle_tm_content_print(self, tm_packet: PusTelemetry): @@ -100,7 +100,7 @@ class TmTcPrinter: rec_pus = [] tm_packet.append_telemetry_content(rec_pus) self.__print_buffer = str(rec_pus) - logger.info(self.__print_buffer) + LOGGER.info(self.__print_buffer) self.add_print_buffer_to_file_buffer() def __handle_hk_print(self, tm_packet: Service3TM): @@ -167,9 +167,8 @@ class TmTcPrinter: if counter == number_of_parameters: self.__print_buffer = self.__print_buffer + "]" break - else: - self.__print_buffer = self.__print_buffer + ", " - logger.info(self.__print_buffer) + self.__print_buffer = self.__print_buffer + ", " + LOGGER.info(self.__print_buffer) self.add_print_buffer_to_file_buffer() def __handle_wiretapping_packet(self, wiretapping_packet: PusTelemetry): @@ -183,7 +182,7 @@ class TmTcPrinter: str(wiretapping_packet.get_service()) + "," + \ str(wiretapping_packet.get_subservice()) + "]: " self.__print_buffer = self.__print_buffer + wiretapping_packet.return_source_data() - logger.info(self.__print_buffer) + LOGGER.info(self.__print_buffer) self.add_print_buffer_to_file_buffer() def __handle_data_reply_packet(self, tm_packet: PusTelemetry): @@ -195,7 +194,7 @@ class TmTcPrinter: if tm_packet.get_service() == 8 and tm_packet.get_subservice() == 130: self.__print_buffer = "Service 8 Direct Command Reply TM[8,130] with TM data: " \ + tm_packet.return_source_data() - logger.info(self.__print_buffer) + LOGGER.info(self.__print_buffer) def print_data(self, byte_array: bytearray): """ @@ -203,7 +202,7 @@ class TmTcPrinter: :return: None """ string = self.return_data_string(byte_array) - logger.info(string) + LOGGER.info(string) @staticmethod def return_data_string(byte_array: bytearray) -> str: @@ -228,11 +227,12 @@ class TmTcPrinter: :return: """ self.__print_buffer = string - logger.info(self.__print_buffer) + LOGGER.info(self.__print_buffer) if self.do_print_to_file: self.add_print_buffer_to_file_buffer(add_cr_to_file_buffer) - def add_to_print_string(self, string_to_add: str=""): + def add_to_print_string(self, string_to_add: str = ""): + """ Add a specific string to the current print buffer """ self.__print_buffer += string_to_add def add_print_buffer_to_file_buffer(self, add_cr_to_file_buffer: bool = False): @@ -248,9 +248,11 @@ class TmTcPrinter: def add_print_buffer_to_buffer_list(self): + """ Add the current print buffer to the buffer list """ self.file_buffer_list.append(self.__file_buffer) def clear_file_buffer(self): + """ Clears the file buffer """ self.__file_buffer = "" def print_to_file(self, log_name: str = "log/tmtc_log.txt", clear_file_buffer: bool = False): @@ -262,13 +264,13 @@ class TmTcPrinter: try: file = open(log_name, 'w') except FileNotFoundError: - logger.info("Log directory does not exists, creating log folder.") + LOGGER.info("Log directory does not exists, creating log folder.") os.mkdir('log') file = open(log_name, 'w') file.write(self.__file_buffer) if clear_file_buffer: self.__file_buffer = "" - logger.info("Log file written to " + log_name) + LOGGER.info("Log file written to %s", log_name) file.close() def print_file_buffer_list_to_file(self, log_name: str = "log/tmtc_log.txt", @@ -282,14 +284,14 @@ class TmTcPrinter: try: file = open(log_name, 'w') except FileNotFoundError: - logger.info("Log directory does not exists, creating log folder.") + LOGGER.info("Log directory does not exists, creating log folder.") os.mkdir('log') file = open(log_name, 'w') file_buffer = ''.join(self.file_buffer_list) file.write(file_buffer) if clear_list: self.file_buffer_list = [] - logger.info("Log file written to " + log_name) + LOGGER.info("Log file written to %s", log_name) file.close() @@ -314,10 +316,10 @@ class TmTcPrinter: """ if self.print_tc: if len(tc_packet) == 0: - logger.error("TMTC Printer: Empty packet was sent, configuration error") + LOGGER.error("TMTC Printer: Empty packet was sent, configuration error") return if tc_packet_info is None: - logger.error("TMTC Printer: No packet info supplied to print") + LOGGER.error("TMTC Printer: No packet info supplied to print") return if self.display_mode == DisplayMode.SHORT: self.__handle_short_tc_print(tc_packet_info) @@ -330,10 +332,11 @@ class TmTcPrinter: :param tc_packet_info: :return: """ - self.__print_buffer = "Sent TC[" + str(tc_packet_info[TcDictionaryKeys.SERVICE]) + "," + \ - str(tc_packet_info[TcDictionaryKeys.SUBSERVICE]) + "] " + " with SSC " + \ - str(tc_packet_info[TcDictionaryKeys.SSC]) - logger.info(self.__print_buffer) + self.__print_buffer = \ + "Sent TC[" + str(tc_packet_info[TcDictionaryKeys.SERVICE]) + "," + \ + str(tc_packet_info[TcDictionaryKeys.SUBSERVICE]) + "] " + " with SSC " + \ + str(tc_packet_info[TcDictionaryKeys.SSC]) + LOGGER.info(self.__print_buffer) self.add_print_buffer_to_file_buffer() def __handle_long_tc_print(self, tc_packet_info: PusTcInfoT): @@ -349,7 +352,7 @@ class TmTcPrinter: str(tc_packet_info[TcDictionaryKeys.SSC]) + " sent with data " + \ self.return_data_string(tc_packet_info[TcDictionaryKeys.DATA]) - logger.info(self.__print_buffer) + LOGGER.info(self.__print_buffer) self.add_print_buffer_to_file_buffer() - except TypeError as e: - logger.error("TMTC Printer: Type Error! Traceback: " + str(e)) + except TypeError as error: + LOGGER.error("TMTC Printer: Type Error! Traceback: %s", error) -- GitLab