Module yamhl.utils

Expand source code Browse git
from typing import Any, Dict

from mako.lookup import TemplateLookup

from .settings import stg
import shlex
from subprocess import call

YAHML = stg(None, "yamhl.yml")

def ddir(d: Dict[Any, Any], dir: str, de: Any={}) -> Any:
    """
    Retrieve dictionary value using recursive indexing with a string.
    ex.:
        `ddir({"data": {"attr": {"ch": 1}}}, "data/attr/ch")`
        will return `1`


    Args:
        dict (dict): Dictionary to retrieve the value from.
        dir (str): Directory of the value to be retrieved.

    Returns:
        op (Any): Retrieved value.
    """
    op = d
    for a in dir.split("/"):
        op = op.get(a)
        if not op:
            break
    return op or de

LOOKUPS = TemplateLookup(directories=ddir(YAHML, "templates") or [])

def srv_tpl(tn: str, **kwargs: Dict[str, Any]):
    return LOOKUPS.get_template(tn).render(**kwargs)

def run(s: str):
    call(shlex.split(s))

Functions

def ddir(d: Dict[Any, Any], dir: str, de: Any = {}) ‑> Any

Retrieve dictionary value using recursive indexing with a string. ex.: ddir({"data": {"attr": {"ch": 1}}}, "data/attr/ch") will return 1

Args

dict : dict
Dictionary to retrieve the value from.
dir : str
Directory of the value to be retrieved.

Returns

op (Any): Retrieved value.

Expand source code Browse git
def ddir(d: Dict[Any, Any], dir: str, de: Any={}) -> Any:
    """
    Retrieve dictionary value using recursive indexing with a string.
    ex.:
        `ddir({"data": {"attr": {"ch": 1}}}, "data/attr/ch")`
        will return `1`


    Args:
        dict (dict): Dictionary to retrieve the value from.
        dir (str): Directory of the value to be retrieved.

    Returns:
        op (Any): Retrieved value.
    """
    op = d
    for a in dir.split("/"):
        op = op.get(a)
        if not op:
            break
    return op or de
def run(s: str)
Expand source code Browse git
def run(s: str):
    call(shlex.split(s))
def srv_tpl(tn: str, **kwargs: Dict[str, Any])
Expand source code Browse git
def srv_tpl(tn: str, **kwargs: Dict[str, Any]):
    return LOOKUPS.get_template(tn).render(**kwargs)