| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | import pathlibimport timefrom .file_handler import file_handlerclass log_directory:    def __init__(self, target: pathlib.Path | None = None) -> None:        if target is None:            target = pathlib.Path("./logs")        if not target.is_dir():            target.mkdir()        self.__root = target    @staticmethod    def _ends_with(name: str, ending: str) -> bool:        return name[-len(ending):] == ending    @property    def root(self) -> pathlib.Path:        return self.__root    @property    def logs(self) -> tuple:        return tuple(self.iter_logs())    def iter_logs(self) -> pathlib.Path:        for count in self.__root.iterdir():            if self._ends_with(count.name, ".log"):                yield self.__root / count    def get_logs_for_day(self, name: str | None = None) -> tuple:        if name is None:            name = self._base_name        logs = self.iter_logs()        filtered = filter(lambda count: count.find(name) != -1, logs)        return tuple(filtered)    @property    def _base_name(self) -> str:        return time.strftime("%Y-%m-%d", time.now())        def _get_new_name(self) -> str:        base_name = self._base_name        logs_for_name = self.get_logs_for_day(base_name)        in_result = base_name + "-" + str(len(logs_for_name) + 1) + ".log"        return in_result    def get_new_file(self) -> pathlib.Path:        return self.root / pathlib.Path(self._get_new_name())    def get_new_handler(self) -> file_handler:        return file_handler(self.get_new_file)
 |