Loading pyproject.toml +4 −1 Original line number Diff line number Diff line Loading @@ -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 = [ Loading regstar_library/logging/logging.py 0 → 100644 +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 uv.lock +50 −0 Original line number Diff line number Diff line Loading @@ -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" Loading Loading @@ -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" Loading @@ -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" Loading Loading @@ -122,6 +164,10 @@ wheels = [ name = "regstar-library" version = "0.1.0" source = { virtual = "." } dependencies = [ { name = "hydra-core" }, { name = "omegaconf" }, ] [package.dev-dependencies] dev = [ Loading @@ -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 = [ Loading Loading
pyproject.toml +4 −1 Original line number Diff line number Diff line Loading @@ -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 = [ Loading
regstar_library/logging/logging.py 0 → 100644 +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
uv.lock +50 −0 Original line number Diff line number Diff line Loading @@ -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" Loading Loading @@ -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" Loading @@ -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" Loading Loading @@ -122,6 +164,10 @@ wheels = [ name = "regstar-library" version = "0.1.0" source = { virtual = "." } dependencies = [ { name = "hydra-core" }, { name = "omegaconf" }, ] [package.dev-dependencies] dev = [ Loading @@ -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 = [ Loading