no idea
This commit is contained in:
1 parent
eace153f2d
commit
2faa94ec14
10 files changed
+320
No files matched your search
Whitespace-only changes.
@@ -0,0 +1,40 @@
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
class Reader:
|
||||
|
||||
def read_lines(self) -> list[str]:
|
||||
raise Exception("not yet implemented")
|
||||
|
||||
|
||||
class FileReader(Reader):
|
||||
|
||||
def __init__(self, path: Path|str):
|
||||
self._path = Path(path)
|
||||
|
||||
def read(self) -> str:
|
||||
return self._path.read_text('utf-8')
|
||||
|
||||
def read_lines(self) -> list[str]:
|
||||
return [l for l in self.read().split('\n') if l.strip()]
|
||||
|
||||
|
||||
class User:
|
||||
def __init__(self, name: str):
|
||||
self.name = name
|
||||
|
||||
@classmethod
|
||||
def from_json(cls, blob) -> 'User' | None:
|
||||
if 'name' not in blob:
|
||||
return
|
||||
return cls(blob['name'])
|
||||
|
||||
|
||||
class UserLoader:
|
||||
def __init__(self, reader: Reader):
|
||||
self._file_reader = reader
|
||||
|
||||
def get_users(self) -> list[User]:
|
||||
ret = [User.from_json(json.loads(line)) for line in self._file_reader.read_lines()]
|
||||
return [r for r in ret if r is not None]
|
||||
Reference in new issue
Block a user