Commit ab84bbbc authored by xdrazkov's avatar xdrazkov
Browse files

feat: implement logging

parent 35a1267a
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -4,7 +4,10 @@ version = "0.1.0"
description = ""
readme = "README.md"
requires-python = ">=3.12"
dependencies = []
dependencies = [
    "hydra-core>=1.3.2",
    "omegaconf>=2.3.0",
]

[dependency-groups]
dev = [
+47 −0
Original line number Diff line number Diff line
# Standard Imports
import logging
import sys
from typing import TextIO, TypedDict

# Third-party Imports
import hydra.utils
from omegaconf import DictConfig


def sys_stdout() -> TextIO:
    return sys.stdout


class HandlerConfig(TypedDict):
    handler: logging.Handler
    level: str
    formatter: logging.Formatter | None


def configure_logging(cfg: DictConfig) -> None:
    """
    Configures the root logger based on the provided DictConfig.
    Instantiates handlers and formatters defined in the config.
    """
    logger = logging.getLogger()

    if "handlers" not in cfg:
        return

    for handler_cfg in cfg.handlers.values():
        handler = hydra.utils.instantiate(handler_cfg.handler)
        if "level" in handler_cfg:
            level = hydra.utils.get_object(handler_cfg["level"])
            handler.setLevel(level)
        if "formatter" in handler_cfg:
            handler.setFormatter(handler_cfg["formatter"])
        logger.addHandler(handler)


def get_logger(name: str | None = None) -> logging.Logger:
    logger = logging.getLogger("regstar")
    if name is None or name == "":
        return logger

    child = logger.getChild(name)
    return child
+50 −0
Original line number Diff line number Diff line
@@ -2,6 +2,12 @@ version = 1
revision = 2
requires-python = ">=3.12"

[[package]]
name = "antlr4-python3-runtime"
version = "4.9.3"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/3e/38/7859ff46355f76f8d19459005ca000b6e7012f2f1ca597746cbcd1fbfe5e/antlr4-python3-runtime-4.9.3.tar.gz", hash = "sha256:f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b", size = 117034, upload-time = "2021-11-06T17:52:23.524Z" }

[[package]]
name = "cfgv"
version = "3.5.0"
@@ -29,6 +35,20 @@ wheels = [
    { url = "https://files.pythonhosted.org/packages/76/91/7216b27286936c16f5b4d0c530087e4a54eead683e6b0b73dd0c64844af6/filelock-3.20.0-py3-none-any.whl", hash = "sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2", size = 16054, upload-time = "2025-10-08T18:03:48.35Z" },
]

[[package]]
name = "hydra-core"
version = "1.3.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
    { name = "antlr4-python3-runtime" },
    { name = "omegaconf" },
    { name = "packaging" },
]
sdist = { url = "https://files.pythonhosted.org/packages/6d/8e/07e42bc434a847154083b315779b0a81d567154504624e181caf2c71cd98/hydra-core-1.3.2.tar.gz", hash = "sha256:8a878ed67216997c3e9d88a8e72e7b4767e81af37afb4ea3334b269a4390a824", size = 3263494, upload-time = "2023-02-23T18:33:43.03Z" }
wheels = [
    { url = "https://files.pythonhosted.org/packages/c6/50/e0edd38dcd63fb26a8547f13d28f7a008bc4a3fd4eb4ff030673f22ad41a/hydra_core-1.3.2-py3-none-any.whl", hash = "sha256:fa0238a9e31df3373b35b0bfb672c34cc92718d21f81311d8996a16de1141d8b", size = 154547, upload-time = "2023-02-23T18:33:40.801Z" },
]

[[package]]
name = "identify"
version = "2.6.15"
@@ -47,6 +67,28 @@ wheels = [
    { url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9", size = 22314, upload-time = "2024-06-04T18:44:08.352Z" },
]

[[package]]
name = "omegaconf"
version = "2.3.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
    { name = "antlr4-python3-runtime" },
    { name = "pyyaml" },
]
sdist = { url = "https://files.pythonhosted.org/packages/09/48/6388f1bb9da707110532cb70ec4d2822858ddfb44f1cdf1233c20a80ea4b/omegaconf-2.3.0.tar.gz", hash = "sha256:d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7", size = 3298120, upload-time = "2022-12-08T20:59:22.753Z" }
wheels = [
    { url = "https://files.pythonhosted.org/packages/e3/94/1843518e420fa3ed6919835845df698c7e27e183cb997394e4a670973a65/omegaconf-2.3.0-py3-none-any.whl", hash = "sha256:7b4df175cdb08ba400f45cae3bdcae7ba8365db4d165fc65fd04b050ab63b46b", size = 79500, upload-time = "2022-12-08T20:59:19.686Z" },
]

[[package]]
name = "packaging"
version = "25.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" }
wheels = [
    { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" },
]

[[package]]
name = "platformdirs"
version = "4.5.1"
@@ -122,6 +164,10 @@ wheels = [
name = "regstar-library"
version = "0.1.0"
source = { virtual = "." }
dependencies = [
    { name = "hydra-core" },
    { name = "omegaconf" },
]

[package.dev-dependencies]
dev = [
@@ -130,6 +176,10 @@ dev = [
]

[package.metadata]
requires-dist = [
    { name = "hydra-core", specifier = ">=1.3.2" },
    { name = "omegaconf", specifier = ">=2.3.0" },
]

[package.metadata.requires-dev]
dev = [