From 5474c3c27343f8ef076fe4daa6fa9c0f0f104611 Mon Sep 17 00:00:00 2001 From: Daniel Tomlinson Date: Thu, 21 Oct 2021 00:22:20 +0100 Subject: [PATCH] adding initial Page scaffolding --- .DS_Store | Bin 6148 -> 0 bytes .vscode/settings.json | 18 ++++++++ dev.todo | 3 ++ poetry.lock | 6 +-- tembo/__pycache__/__init__.cpython-38.pyc | Bin 372 -> 524 bytes tembo/__pycache__/cli.cpython-38.pyc | Bin 815 -> 1445 bytes tembo/journal/__init__.py | 1 + tembo/journal/pages.py | 51 ++++++++++++++++++++++ 8 files changed, 76 insertions(+), 3 deletions(-) delete mode 100644 .DS_Store create mode 100644 .vscode/settings.json create mode 100644 tembo/journal/__init__.py create mode 100644 tembo/journal/pages.py diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index a119bd2ba36eec67533f2655c2d16b0bdd6d92c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK&2G~`5T0$*VuOGjkje$g7j99Mv<0b$N+!669uNp4H~?zxIBJY+uN6B)B?S52 z16R243LJO@E=W88j|1QS6vaskH$Z47n*G+hGqc`ry*pVVV!d(HC2A6p1r^x1h~f+p z{X&;yMYmi6G8v{U%h4< zPKsRb^)F$b#6{WZd}AxCjkWa)mTg=1W&625Si;?o^w>J6k*WhD$-Gkj&@K{6S0qjEJ3zjEmS{CPgNgw9EBsd!Rs|@Hp zV2Lxph+)7mU>KNZK%5T_RG_P|QYeoO6!HoHY@k^R>LTR`A4j9Bu~LX02ve>=<;wIG zgDH2kJKE0GSSeKQ#PsEZ>5-Yfp)ff*;ycoun5)o~h5^Gsoq<*L*cADH@BI6J-N`%| z1`GrL6$7l{`CboG(z$hMaw69{&_k#YVOJ@XE+}+5mKBkTuS2Dv&k+@%tFcmu7Kr&H NAZaj#Vc?H4@B?<7vNiw! diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..80eea8e --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "workbench.colorCustomizations": { + "editorGroup.border": "#d68b62", + "panel.border": "#d68b62", + "sash.hoverBorder": "#d68b62", + "sideBar.border": "#d68b62", + "statusBar.background": "#cc6d39", + "statusBar.foreground": "#15202b", + "statusBarItem.hoverBackground": "#a7572b", + "statusBarItem.remoteBackground": "#cc6d39", + "statusBarItem.remoteForeground": "#15202b", + "titleBar.activeBackground": "#cc6d39", + "titleBar.activeForeground": "#15202b", + "titleBar.inactiveBackground": "#cc6d3999", + "titleBar.inactiveForeground": "#15202b99" + }, + "peacock.color": "#CC6D39" +} diff --git a/dev.todo b/dev.todo index 99c54ad..35b7cac 100644 --- a/dev.todo +++ b/dev.todo @@ -1,2 +1,5 @@ Functionality: ☐ Handle case where there are no scopes in the config and command is invoked. + +Documentation: + ☐ Document usage of Panaetius in a module? diff --git a/poetry.lock b/poetry.lock index d6b1bbf..cd73ef9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -198,7 +198,7 @@ pyparsing = ">=2.0.2" [[package]] name = "panaetius" -version = "2.0.0" +version = "2.1.0" description = "Python module to gracefully handle a .config file/environment variables for scripts, with built in masking for sensitive options. Provides a Splunk friendly formatted logger instance." category = "main" optional = false @@ -638,8 +638,8 @@ packaging = [ {file = "packaging-21.0.tar.gz", hash = "sha256:7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7"}, ] panaetius = [ - {file = "panaetius-2.0.0-py3-none-any.whl", hash = "sha256:ccd3893c285b1ba4bf46cf24d45214a23d469e31b0f78962dba6fdd5c42a29dc"}, - {file = "panaetius-2.0.0.tar.gz", hash = "sha256:53fbf197ccad264838b0efa5528372be33ac8cc9e3923b51fd5c8c73c0de610c"}, + {file = "panaetius-2.1.0-py3-none-any.whl", hash = "sha256:ab524a2a2aac650d684ffbf601659f463d1cf8d2ca26e31df4a294ed9a22e03d"}, + {file = "panaetius-2.1.0.tar.gz", hash = "sha256:0ac2efd70b055c71ad200427d19f6d4297242f321a5f50e32cc50e93ddfbffeb"}, ] pbr = [ {file = "pbr-5.6.0-py2.py3-none-any.whl", hash = "sha256:c68c661ac5cc81058ac94247278eeda6d2e6aecb3e227b0387c30d277e7ef8d4"}, diff --git a/tembo/__pycache__/__init__.cpython-38.pyc b/tembo/__pycache__/__init__.cpython-38.pyc index f16c65d7f3770ff304a436cade97aecb157843b4..f08dc10e85b14fb71ba90e073c44c1de0aa8a00c 100644 GIT binary patch literal 524 zcmYk3y-ve05P)qbb$*&MG4Ki5pi4F)*K~I+&yyk|H&aEAJ(4VvOpkDnPG# zxymvjvx6L#kh9MD@N|5+ivFYPqCT$wvyvvOAJs%@78I#W!H9*fJ&;RLDp@-j7}lLC z`5>~UBco>xSlhlS)L@b}fi?cR6_hL*iFuL3bwj0Nr(v```aq>;u~9#Rc&wq+F*jFE$;)@)P?e8MJXO&NUvWs^}=WPX6)E{(f$r?zbjhl#;l`R-Bw)kXo$C5ye@Mn3tGZ zl37}Oiz$Dy1*44WEjH);ytK^pC^m?WD6ZnvlK5n>*h+>XPN11ZoRb$Y1_FyUA{`+w9K9#_zL_*vIUy)z~NO)Av3x z58mwX=qHSklVU3|e1?+G-a_7J+K|zr2}h#^U)2dt_w75AwJD{@L|$>-^p84KA15T; zE2J>|xydv)rWAAC-q?Q4DsJ+pxhibf>x+PL0$cCFVUWQ~vh-fQOM^7yn8KRz>WQQy znhPq`JQtjOHY`Q)v6R)ipjh*BgJc}C$*AGUKl-bp|)qSD#!I@>#4PfY~r>86sSI& z3078X16|0PH@zeGK2C7k+t%NPrKs0Nzx@kV6CHILVAlpBS97g)z`t-IL9ok%9l&-V zeG7s?O91Hs`u_e4VmyYg&};M~v5FVbq#QdRh(OD(dsg*71vyt+|toy+U(c4)?HMW z-63s;T~1xLhqU!=3A1SuDwtcOEVOOtjJ2{@w*fS`xJZ3oEM(#-JLhTuM;fnzDVa0< zhd|15p!EQx7w+7BsW z>0*m<6uAR}L6#Ii4Gh%irU^l#3C#073M934Cd8H2`Znml>*>LyF3P8T1cn{KePshD z17*u}(1B-Jm~;>3Yj*nGEIT`$%^po3p0&YT$#v}pBJCBjs&c{72-v-@pj!@+H0=Ht zT+nnUXDr(qUdzM{se?B`o-^^R(Js2I&&4obnk!H;k2JmfzS@9^?A~pN;NRZfu zcxo|51u2tE@_Uq?^zUGdF;_hGra1*Kz6@SbmZY#4p@GB(MCBjq1qXxjMkVXzS6SE8 zBaDj(AA^7Z9TcCqJ+iJLN&vnV^iF(}WIdIjP5p_5ebOCL$1sN!Q??7I>$jM5i9>jT zXEsIzir5e(U;fWbqan1I7KD1X>RL#j7zTs$;)|^;Hg*n=_G(&PC~azaR?CaJw^}^# zwUMVe&D8chlfV%(+Omn5E|ZDFzES$j0eZTWEic(}-c>gXgMjtOnW!T%@7-%O!nKVZm(r*XTbyy JF%%&R`~_2!Vq*XR diff --git a/tembo/journal/__init__.py b/tembo/journal/__init__.py new file mode 100644 index 0000000..2235318 --- /dev/null +++ b/tembo/journal/__init__.py @@ -0,0 +1 @@ +from tembo.journal import pages diff --git a/tembo/journal/pages.py b/tembo/journal/pages.py new file mode 100644 index 0000000..d2702d2 --- /dev/null +++ b/tembo/journal/pages.py @@ -0,0 +1,51 @@ +from __future__ import annotations + +from abc import ABCMeta, abstractmethod + + +class PageCreator: + @abstractmethod + def create_page(self, path, user_input, raw_entry_input) -> Page: + pass + + +class ScopedPageCreator(PageCreator): + def create_page( + self, path: str, user_input, raw_entry_input: dict | None = None + ) -> Page: + pass + + +class Page(metaclass=ABCMeta): + @abstractmethod + def __init__(self) -> None: + pass + + @abstractmethod + def save_to_disk(self) -> None: + pass + + +class ScopedPage(Page): + """A Page that uses substitute tokens.""" + + def __init__(self, path: str, raw_entry_input: dict): + self.path = path + self._raw_entry_input = raw_entry_input + self._squashed_content: dict = {} + self._page_content: str = "" + + def save_to_disk(self) -> None: + # create the file/folder if it doesnt exist + pass + + def _convert_to_path(self): + # take a path str and convert to pathlib + # substitute the tokens in + pass + + def squash_raw_entry_input(self) -> None: + pass + + def substitute_tokens(self) -> None: + pass