From 34e6cb4136712df8f746eea346cafe1984b676c1 Mon Sep 17 00:00:00 2001 From: Daniel Tomlinson Date: Fri, 22 Oct 2021 05:21:39 +0100 Subject: [PATCH] adding latest --- tembo/journal/pages.py | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/tembo/journal/pages.py b/tembo/journal/pages.py index d2702d2..9439b8e 100644 --- a/tembo/journal/pages.py +++ b/tembo/journal/pages.py @@ -1,19 +1,37 @@ from __future__ import annotations from abc import ABCMeta, abstractmethod +import pathlib + +from tembo.exceptions import BasePathDoesNotExistError # noqa +from tembo import logger class PageCreator: @abstractmethod - def create_page(self, path, user_input, raw_entry_input) -> Page: + def create_page(self, base_path: str, page_path: str, user_input: str) -> Page: pass + @staticmethod + def _convert_to_path(base_path: str, page_path: str) -> pathlib.Path: + if not pathlib.Path(base_path).expanduser().exists(): + logger.debug("base path of %s does not exist", base_path, exec_info=1) + raise BasePathDoesNotExistError( + f"Your base path of {base_path} does not exist." + ) + return pathlib.Path(base_path).expanduser() / pathlib.Path(page_path) + class ScopedPageCreator(PageCreator): + def __init__(self, raw_entry_input: str) -> None: + self.raw_entry_input = raw_entry_input + def create_page( - self, path: str, user_input, raw_entry_input: dict | None = None + self, base_path: str, page_path: str, user_input: str | None ) -> Page: - pass + path = self._convert_to_path(base_path, page_path) + # substitute tokens in path + # substitute tokens in raw_entry_input class Page(metaclass=ABCMeta):