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