def str2kvdict(s, sep='@', dlm='::'):
    """Returns a key-value dict from the given string.
    Keys and values are assumed to be separated using `sep` [default '@'].
    Each key-value pair is delimited using `dlm` [default '::'].

    .. warning::
        Silently skips any elements that don't have the separator in them or are blank.
    """
    ret = dict([pair.split(sep,1) for pair in s.split(dlm) if pair and sep in pair])
    return ret