Skip to content

Commit

Permalink
Mod: Update setup_logging function.
Browse files Browse the repository at this point in the history
  • Loading branch information
Labbeti committed Apr 18, 2024
1 parent 0000bcd commit 2125228
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 32 deletions.
4 changes: 2 additions & 2 deletions src/aac_datasets/check.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from aac_datasets.datasets.clotho import Clotho, ClothoCard
from aac_datasets.datasets.macs import MACS, MACSCard
from aac_datasets.datasets.wavcaps import WavCaps, WavCapsCard
from aac_datasets.download import _setup_logging
from aac_datasets.download import setup_logging
from aac_datasets.utils.globals import get_default_root

DATASETS_NAMES = (AudioCapsCard.NAME, ClothoCard.NAME, MACSCard.NAME, WavCapsCard.NAME)
Expand Down Expand Up @@ -124,7 +124,7 @@ def _get_main_check_args() -> Namespace:

def _main_check() -> None:
args = _get_main_check_args()
_setup_logging(aac_datasets.__package__, args.verbose)
setup_logging(aac_datasets.__package__, args.verbose)

if args.verbose >= 2:
pylog.debug(yaml.dump({"Arguments": args.__dict__}, sort_keys=False))
Expand Down
19 changes: 5 additions & 14 deletions src/aac_datasets/download.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,17 @@
# -*- coding: utf-8 -*-

import logging

from argparse import ArgumentParser, Namespace

import yaml

import aac_datasets

from aac_datasets.datasets.functional.audiocaps import (
AudioCapsCard,
download_audiocaps_datasets,
)
from aac_datasets.datasets.functional.clotho import (
ClothoCard,
download_clotho_datasets,
)
from aac_datasets.datasets.functional.macs import (
MACSCard,
download_macs_datasets,
)
from aac_datasets.datasets.functional.clotho import ClothoCard, download_clotho_datasets
from aac_datasets.datasets.functional.macs import MACSCard, download_macs_datasets
from aac_datasets.datasets.functional.wavcaps import (
WavCapsCard,
download_wavcaps_datasets,
Expand All @@ -29,16 +21,15 @@
_str_to_bool,
_str_to_opt_int,
_str_to_opt_str,
_setup_logging,
setup_logging,
)
from aac_datasets.utils.globals import (
get_default_root,
get_default_ffmpeg_path,
get_default_root,
get_default_ytdlp_path,
get_default_zip_path,
)


pylog = logging.getLogger(__name__)


Expand Down Expand Up @@ -184,7 +175,7 @@ def _get_main_download_args() -> Namespace:

def _main_download() -> None:
args = _get_main_download_args()
_setup_logging(aac_datasets.__package__, args.verbose)
setup_logging(aac_datasets.__package__, args.verbose)

if args.verbose >= 2:
pylog.debug(yaml.dump({"Arguments": args.__dict__}, sort_keys=False))
Expand Down
64 changes: 48 additions & 16 deletions src/aac_datasets/utils/cmdline.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@

import logging
import sys

from typing import Optional

from logging import Logger
from types import ModuleType
from typing import Optional, Sequence, Union

_TRUE_VALUES = ("true", "t", "yes", "y", "1")
_FALSE_VALUES = ("false", "f", "no", "n", "0")
Expand Down Expand Up @@ -40,22 +40,55 @@ def _str_to_opt_str(s: str) -> Optional[str]:
return s


def _setup_logging(pkg_name: str, verbose: int, set_format: bool = True) -> None:
def setup_logging(
package_or_logger: Union[
str,
ModuleType,
None,
Logger,
Sequence[Union[str, ModuleType, None]],
Sequence[Logger],
],
verbose: int,
format_: Optional[str] = "[%(asctime)s][%(name)s][%(levelname)s] - %(message)s",
) -> None:
if package_or_logger is None or isinstance(
package_or_logger, (str, Logger, ModuleType)
):
package_or_logger_lst = [package_or_logger]
else:
package_or_logger_lst = list(package_or_logger)

name_or_logger_lst = [
pkg.__name__ if isinstance(pkg, ModuleType) else pkg
for pkg in package_or_logger_lst
]
logger_lst = [
logging.getLogger(pkg_i) if not isinstance(pkg_i, Logger) else pkg_i
for pkg_i in name_or_logger_lst
]

handler = logging.StreamHandler(sys.stdout)
if set_format:
format_ = "[%(asctime)s][%(name)s][%(levelname)s] - %(message)s"
if format_ is not None:
handler.setFormatter(logging.Formatter(format_))

pkg_logger = logging.getLogger(pkg_name)
for logger in logger_lst:
found = False
for handler in logger.handlers:
if (
isinstance(handler, logging.StreamHandler)
and handler.stream is sys.stdout
):
found = True
break
if not found:
logger.addHandler(handler)

level = _verbose_to_logging_level(verbose)
logger.setLevel(level)

found = False
for handler in pkg_logger.handlers:
if isinstance(handler, logging.StreamHandler) and handler.stream is sys.stdout:
found = True
break
if not found:
pkg_logger.addHandler(handler)

def _verbose_to_logging_level(verbose: int) -> int:
if verbose < 0:
level = logging.ERROR
elif verbose == 0:
Expand All @@ -64,5 +97,4 @@ def _setup_logging(pkg_name: str, verbose: int, set_format: bool = True) -> None
level = logging.INFO
else:
level = logging.DEBUG

pkg_logger.setLevel(level)
return level

0 comments on commit 2125228

Please sign in to comment.