Source code for pipeline.utils.tools.tstr
"""A module that defines utilies to handle strings.
"""
from string import Formatter
[docs]class MyFormatter(Formatter):
    """Class used for formatting not all the arguments of a string.
    Taken from
    https://stackoverflow.com/questions/17215400/format-string-unused-named-arguments
    Examples:
        >>> fmt=MyFormatter()
        >>> fmt.format("{a}{b}", a="blabla")
        'blabla{b}'
    """
    def __init__(self, default="{{{0}}}"):
        self.default = default
[docs]    def get_value(self, key, args, kwargs):
        if isinstance(key, str):
            return kwargs.get(key, self.default.format(key))
        else:
            return Formatter.get_value(key, args, kwargs)
fmt = MyFormatter()
