# built-ins
from enum import Enum, auto
from getpass import getuser
-from os import makedirs
-from os.path import exists
+from pathlib import Path
from typing import Any, Callable, Optional, Sequence
# ourselves
from ircplom.tui_base import (BaseTui, PromptWidget, TuiEvent, Window,
_LOG_PREFIX_OUT = '>'
_LOG_PREFIX_IN = '<'
-_PATH_LOGS = 'logs'
+_PATH_LOGS = Path('logs')
class _LogScope(Enum):
def log(self, msg: str) -> None:
super().log(msg)
- ldir = f'{_PATH_LOGS}/{self._title}'
- if not exists(ldir):
- makedirs(ldir)
- with open(f'{ldir}/{self._last_today}.txt', 'a', encoding='utf8') as f:
+ ldir = _PATH_LOGS.joinpath(self._title)
+ if not ldir.exists():
+ ldir.mkdir(parents=True)
+ assert ldir.is_dir()
+ with ldir.joinpath('f{self._last_today}.txt'
+ ).open('a', encoding='utf8') as f:
f.write(msg + '\n')
def _send_msg(self, verb: str, params: tuple[str, ...]) -> None:
'Basic testing.'
from contextlib import contextmanager
from queue import SimpleQueue, Empty as QueueEmpty
+from pathlib import Path
from typing import Generator, Iterator, Optional
from ircplom.events import Event, Loop, QueueMixin
from ircplom.client import IrcConnection, IrcConnSetup
from ircplom.tui_base import TerminalInterface, TuiEvent
-_PATH_TEST_TXT = './test.txt'
+_PATH_TEST_TXT = Path('test.txt')
class TestTerminal(QueueMixin, TerminalInterface):
self._clients = []
assert isinstance(self._term, TestTerminal)
self._q_keypresses = self._term._q_keypresses
- with open(_PATH_TEST_TXT, 'r', encoding='utf8') as f:
+ with _PATH_TEST_TXT.open('r', encoding='utf8') as f:
self._playbook = tuple(line[:-1] for line in f.readlines())
self._playbook_idx = -1
self._play_till_next_log()