Skip to content

Commit

Permalink
feat: logger and settings added init
Browse files Browse the repository at this point in the history
  • Loading branch information
janezlapajne committed Aug 11, 2024
1 parent e9018f7 commit 451f4e3
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 0 deletions.
3 changes: 3 additions & 0 deletions main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from source.core import logger, settings

logger.debug(settings)
4 changes: 4 additions & 0 deletions source/core/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from .logger import logger
from .settings import settings

__all__ = ["logger", "settings"]
19 changes: 19 additions & 0 deletions source/core/logger.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import logging
import sys

from loguru import logger

from .settings import settings


class InterceptHandler(logging.Handler):
def emit(self, record: logging.LogRecord) -> None:
logger_opt = logger.opt(depth=7, exception=record.exc_info)
logger_opt.log(record.levelname, record.getMessage())


LOGGING_LEVEL = logging.DEBUG if settings.debug else logging.INFO
logging.basicConfig(
handlers=[InterceptHandler(level=LOGGING_LEVEL)], level=LOGGING_LEVEL
)
logger.configure(handlers=[{"sink": sys.stderr, "level": LOGGING_LEVEL}])
27 changes: 27 additions & 0 deletions source/core/settings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from pathlib import Path

from dotenv import load_dotenv
from pydantic_settings import BaseSettings, SettingsConfigDict

DOTENV_PATH = ".env"

BASE_DIR = Path(__file__).parent.parent.parent.absolute()
SAVED_DIR = BASE_DIR / "saved"

SAVED_DIR.mkdir(parents=True, exist_ok=True)

load_dotenv(override=True, dotenv_path=DOTENV_PATH)


class Settings(BaseSettings):
images_dir: str = ""
debug: bool = False

model_config = SettingsConfigDict(
env_file=DOTENV_PATH,
env_file_encoding="utf-8",
cli_parse_args=True,
)


settings = Settings()
Empty file removed source/main.py
Empty file.

0 comments on commit 451f4e3

Please sign in to comment.