Exemple #1
0
 def _load_data_from_spec(self, text):
     try:
         return yaml.load(text, Loader=yaml.BaseLoader)
     except Exception as e:
         log.warning(f"Failed to load temporary meetings from '{text}'")
         log.exception(e)
         return None
Exemple #2
0
def parse_timedelta(config):
    args = {k: int(v) for (k, v) in config.items()}
    try:
        delta = datetime.timedelta(**args)
    except TypeError as e:
        log.expected("valid arguments", "time delta", args)
        log.exception(e)
        return datetime.timedelta()
    else:
        return delta
Exemple #3
0
 def _do_apply(self, data):
     try:
         self._apply(data)
     except KeyError as e:
         log.warning(f"Failed to apply action '{data}',"
                     f" missing attribute '{e}'.")
     except Exception as e:
         log.warning(f"Failed to apply action '{data}'.")
         log.exception(e)
     finally:
         return data
Exemple #4
0
 def apply_action(self, entry):
     """Try to apply action and log errors."""
     call = self._determine_action(entry)
     try:
         call(entry)
     except KeyError as e:
         log.warning(
             f"Failed to apply action '{entry}',"
             f" missing attribute {e}."
         )
     except Exception as e:
         log.warning(f"Failed to apply action '{entry}'.")
         log.exception(e)
Exemple #5
0
 def _load_data_from_file(self, filename):
     """Try to load data from YAML file, return empty dictionary on
     failure.
     """
     try:
         with open(filename) as file:
             return yaml.load(file, Loader=yaml.BaseLoader)
     except FileNotFoundError as e:
         self._loaded_paths.fail_on(filename, "does not exist")
         log.warning(f"Meeting file '{filename}' does not exist.")
         log.exception(e, warn=False)
         return None
     except Exception as e:
         self._loaded_paths.fail_on(filename, "failed to parse")
         log.warning(f"Failed to load meetings from '{filename}'")
         log.exception(e)
         return None
Exemple #6
0
 def _load(self):
     status = "FAILED"
     config = {}
     try:
         with open(self._path) as cfile:
             config = yaml.load(cfile, Loader=yaml.BaseLoader)
             assert isinstance(config, dict)
     except FileNotFoundError:
         if self._required:
             log.warning(f"Cannot find configuration '{self.description}'.")
         else:
             log.warning(f"No configuration '{self.description}'.")
     except Exception as e:
         log.warning(f"Cannot read {self.description} configuration.")
         log.exception(e)
     else:
         status = "successful"
     finally:
         log.info(f"Load configuration '{self.description}': {status}")
         return config