Source code for handypy.utils

"""
Utility Functions
=================


"""
import logging
import os
from argparse import Namespace

import yaml

logger = logging.getLogger(__name__)


[docs]def validate_folder(folder: str) -> None: """Validate target folder exists, if not exist, an empty folder will be created. :param folder: folder path """ if os.path.isfile(folder): raise FileExistsError("Target folder path exists by file") os.makedirs(os.path.abspath(folder), exist_ok=True)
[docs]def set_log(level: str = 'info') -> None: """Set Logger level :param level: info|warn|error|critical etc. """ try: level = getattr(logging, level.upper()) except AttributeError: level = logging.INFO print("Logging level (%s) not match, use default level (info)" % level) logging.basicConfig(level=level, format='%(name)-25s:%(funcName)20s: %(levelname)-8s: %(message)s')
[docs]def load_yaml_namespace(filename: str) -> Namespace: """Load YAML config into a Namespace object :param filename: YAML file :return: Namespace object that attributes are accessible directly """ config = yaml.safe_load(open(filename)) return Namespace(**config)