Source code for todays_paper_web.storage.storage

from __future__ import annotations
from abc import ABC, abstractmethod
from typing import BinaryIO, Iterator
import os


[docs] class Storage(ABC): instance = None
[docs] @abstractmethod def listConfigs(self) -> Iterator[str]: pass
[docs] @abstractmethod def getConfig(self, name: str) -> str: pass
[docs] @abstractmethod def getFileBytes(self, config: str, name: str) -> bytes: pass
[docs] @abstractmethod def getFileObject(self, config: str, name: str) -> BinaryIO: pass
[docs] @staticmethod def getInstance() -> Storage: if Storage.instance is not None: return Storage.instance storageType = os.environ.get("TP_STORAGE", "local").lower() if storageType == "s3": Storage.instance = S3Storage() else: Storage.instance = LocalStorage() return Storage.instance
from .local import LocalStorage from .s3 import S3Storage