pytex/PyTeX/format/generic_text.py

32 lines
995 B
Python

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 text(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)