'Get the tag for the given key or list of tags.
Args:
key (str or list): The tag or tags to retrieve.
default (any, optional): The value to return in case of no match.
category (str, optional): The Tag category to limit the
request to. Note that `None` is the valid, default
category.
return_tagobj (bool, optional): Return the Tag object itself
instead of a string representation of the Tag.
Returns:
tags (str, TagObject or list): The matches, either string
representations of the tags or the Tag objects themselves
depending on `return_tagobj`.'

def get(self, key=None, default=None, category=None, return_tagobj=False):

    ret = []
    for keystr in make_iter(key):
        ret.extend([(tag if return_tagobj else to_str(tag.db_key)) for tag in self._getcache(keystr, category)])
    return (ret[0] if (len(ret) == 1) else (ret if ret else default))
