matches = re.findall('(--?[\\w-]+)(.*?)(?= -|$)', args)
result = {}
for match in matches:
    result[match[0]] = True if not match[1] else match[1].strip()
print(result)
Как разобрать произвольную строку параметров в словарь python