Source code for gwss.utilities

from __future__ import annotations

import os
from pathlib import Path
import pathlib
from pprint import pprint

from jinja2 import Environment, BaseLoader
from colorama import Fore, Back, Style


[docs] ls_tmpl = """ {%- for type, values in config.items() %} {{- Style.BRIGHT }}{{- type.upper() }}{{ Style.NORMAL }} {% for value in values %} {{ value }} {% endfor -%} {%- endfor -%} """
[docs] def prepare_config(config: dict) -> str: """ :param config: :return: str """ rtmpl = Environment(keep_trailing_newline=False, trim_blocks=True, lstrip_blocks=True, loader=BaseLoader()).from_string(ls_tmpl) return rtmpl.render(config=config, Style=Style, Fore=Fore, Back=Back)
[docs] def squish_info(config) -> dict: info = config info_dict = {} pprint(config) for k, v, in info.items(): info_dict[k] = {} for k2 in v: pprint(k2) info_dict[k][k2] = {} return info_dict
# check if path exists
[docs] def path_validation(path: str | os.PathLike | Path) -> bool: """ :param path: :return: True """ return Path.exists(path)
# if it doesn't, create it
[docs] def path_create(path: str | os.PathLike | Path) -> bool: """ :param path: :return: True """ if path_validation(path): return False else: Path.mkdir(path, parents=True, exist_ok=True)