add generic text class
This commit is contained in:
parent
9d3496b2ba
commit
e1dc1e367a
1 changed files with 32 additions and 0 deletions
32
PyTeX/format/generic_text.py
Normal file
32
PyTeX/format/generic_text.py
Normal file
|
@ -0,0 +1,32 @@
|
|||
from pathlib import Path
|
||||
from typing import Union, List, Optional
|
||||
|
||||
|
||||
class GenericText:
|
||||
def __init__(self, content: Union[List[str], Path]):
|
||||
if isinstance(content, List):
|
||||
self._content: Optional[List[str]] = content
|
||||
self._path = None
|
||||
else:
|
||||
self._content: Optional[List[str]] = None
|
||||
self._path = content
|
||||
|
||||
@property
|
||||
def content(self) -> List[str]:
|
||||
if self._content is None:
|
||||
try:
|
||||
with open(self._path, 'r') as file:
|
||||
self._content = file.readlines()
|
||||
except FileNotFoundError:
|
||||
raise NotImplementedError
|
||||
except:
|
||||
raise NotImplementedError
|
||||
return self._content
|
||||
|
||||
def format(self, **kwargs) -> str:
|
||||
for line in self._content:
|
||||
try:
|
||||
line = line.format(**kwargs)
|
||||
except ValueError:
|
||||
raise NotImplementedError
|
||||
return '\n'.join(self._content)
|
Loading…
Reference in a new issue