docs: def load_ini(self, ini_file):
          """ Load the contents from the ini file
  
              Args:
                  ini_file (str): The file from which the settings should be loaded
  
          """
          if ini_file and not os.path.exists(ini_file):
              self.log.critical(f"Settings file specified but not found. {ini_file}")
              sys.exit(1)
          if not ini_file:
              ini_file = f"{self.cwd}/settings.ini"
          if os.path.exists(ini_file):
              config = configparser.RawConfigParser(allow_no_value=True)
              config.read(ini_file)
              for key, value in self.spec.items():
                  entry = None
                  if value['type'] == str:
                      entry = config.get("settings", option=key.lower(), fallback=None)
                  elif value['type'] == bool:
                      entry = config.getboolean("settings", option=key.lower(), fallback=None)
                  elif value['type'] == int:
                      entry = config.getint("settings", option=key.lower(), fallback=None)
                  elif value['type'] == float:
                      entry = config.getfloat("settings", option=key.lower(), fallback=None)
                  elif value['type'] in [list, dict]:
                      entries = config.get("settings", option=key.lower(), fallback=None)
                      if entries:
                          try:
                              entry = json.loads(entries)
                          except json.decoder.JSONDecodeError as _err:  #pragma: no cover
                              self.log.critical(f"Error parsing json from ini file. {entries}")
                              sys.exit(1)
                  if entry is not None:
                      setattr(self, key.upper(), entry)