def str2dict(strdict):
    """Convert key1=value1,key2=value2,... string into dictionary.

    :param strdict: key1=value1,key2=value2
    Note: This implementation overrides the original implementation
    in the neutronclient such that it is no longer required to append
    the key with a = to specify a corresponding empty value. For example,
    key1=value1,key2,key3=value3
    key1
    key1,key2
    will also be supported and converted to a dictionary with empty
    values for the relevant keys.
    """
    if not strdict:
        return {}
    return dict([kv.split('=', 1) if '=' in kv else [kv, ""]
                 for kv in strdict.split(',')])