Source code for fenn.secrets.keystore
import os
from dotenv import dotenv_values
[docs]
class KeyStore:
_instance = None
def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance
[docs]
def __init__(self):
if not hasattr(self, "_keys"):
self._keys = dotenv_values(".env")
[docs]
def set_key(self, key: str, value: str) -> None:
self._keys[key] = value
[docs]
def get_key(self, key: str) -> str:
env_value = os.getenv(key)
if env_value is not None:
return env_value
dotenv_value = self._keys.get(key)
if dotenv_value is not None:
return dotenv_value
raise KeyError(f"Key {key!r} not found in .env or environment")