diff options
-rw-r--r-- | poezio/logger.py | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/poezio/logger.py b/poezio/logger.py index f121784f..6c3569a1 100644 --- a/poezio/logger.py +++ b/poezio/logger.py @@ -11,6 +11,7 @@ conversations and roster changes import mmap import re +from typing import List, Dict, Optional, TextIO, BinaryIO, Any from datetime import datetime from poezio import common @@ -73,9 +74,9 @@ class Logger: """ def __init__(self): - self._roster_logfile = None + self._roster_logfile = None # Optional[TextIO] # a dict of 'groupchatname': file-object (opened) - self._fds = {} + self._fds = {} # type: Dict[str, TextIO] def __del__(self): for opened_file in self._fds.values(): @@ -85,14 +86,14 @@ class Logger: except: # Can't close? too bad pass - def close(self, jid): + def close(self, jid) -> None: jid = str(jid).replace('/', '\\') if jid in self._fds: self._fds[jid].close() log.debug('Log file for %s closed.', jid) del self._fds[jid] - def reload_all(self): + def reload_all(self) -> None: """Close and reload all the file handles (on SIGHUP)""" for opened_file in self._fds.values(): if opened_file: @@ -102,7 +103,7 @@ class Logger: self._fds[room] = self._check_and_create_log_dir(room) log.debug('Log handle for %s re-created', room) - def _check_and_create_log_dir(self, room, open_fd=True): + def _check_and_create_log_dir(self, room: str, open_fd: bool = True) -> Optional[TextIO]: """ Check that the directory where we want to log the messages exists. if not, create it @@ -127,7 +128,7 @@ class Logger: log.error( 'Unable to open the log file (%s)', filename, exc_info=True) - def get_logs(self, jid, nb=10): + def get_logs(self, jid: str, nb: int = 10) -> Optional[List[Dict[str, Any]]]: """ Get the nb last messages from the log history for the given jid. Note that a message may be more than one line in these files, so @@ -172,7 +173,7 @@ class Logger: return return parse_log_lines(lines) - def log_message(self, jid, nick, msg, date=None, typ=1): + def log_message(self, jid: str, nick: str, msg: str, date: Optional[datetime] = None, typ: int = 1) -> bool: """ log the message in the appropriate jid's file type: @@ -211,7 +212,7 @@ class Logger: return False return True - def log_roster_change(self, jid, message): + def log_roster_change(self, jid: str, message: str) -> bool: """ Log a roster change """ @@ -248,7 +249,7 @@ class Logger: return True -def build_log_message(nick, msg, date=None, typ=1): +def build_log_message(nick: str, msg: str, date: Optional[datetime] = None, typ: int = 1) -> str: """ Create a log message from a nick, a message, optionally a date and type message types: @@ -275,7 +276,7 @@ def build_log_message(nick, msg, date=None, typ=1): return logged_msg + ''.join(' %s\n' % line for line in lines) -def get_lines_from_fd(fd, nb=10): +def get_lines_from_fd(fd: BinaryIO, nb: int = 10) -> List[str]: """ Get the last log lines from a fileno """ @@ -294,7 +295,7 @@ def get_lines_from_fd(fd, nb=10): return lines -def parse_log_lines(lines): +def parse_log_lines(lines: List[str]) -> List[Dict[str, Any]]: """ Parse raw log lines into poezio log objects """ @@ -334,7 +335,7 @@ def parse_log_lines(lines): return messages -def create_logger(): +def create_logger() -> None: "Create the global logger object" global logger logger = Logger() |