Refactor code and add option -ab=c
This commit is contained in:
parent
2c4c16360c
commit
cc47b0b746
1
.gitignore
vendored
1
.gitignore
vendored
@ -138,3 +138,4 @@ dmypy.json
|
|||||||
# Cython debug symbols
|
# Cython debug symbols
|
||||||
cython_debug/
|
cython_debug/
|
||||||
|
|
||||||
|
.vscode
|
||||||
|
|||||||
47
pargv.py
47
pargv.py
@ -18,30 +18,29 @@ def parse_args(argv=None):
|
|||||||
args.append(arg.replace('-', '_'))
|
args.append(arg.replace('-', '_'))
|
||||||
|
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
values = []
|
value = None
|
||||||
for arg in argv[len(args):]:
|
for arg in argv[len(args):]:
|
||||||
if not arg.startswith('-'):
|
|
||||||
values.append(arg)
|
|
||||||
continue
|
|
||||||
if len(values):
|
|
||||||
kwargs[key] = values
|
|
||||||
values = []
|
|
||||||
key = arg[:2].lstrip('-') + arg[2:].replace('-', '_')
|
|
||||||
if arg.startswith('--'):
|
|
||||||
if '=' in arg:
|
|
||||||
key, value = key.split('=')
|
|
||||||
values.append(value)
|
|
||||||
kwargs[key] = values
|
|
||||||
else:
|
|
||||||
kwargs[key] = True
|
|
||||||
elif arg.startswith('-'):
|
|
||||||
for k in key:
|
|
||||||
kwargs[k] = True
|
|
||||||
key = arg[-1]
|
|
||||||
if len(values):
|
|
||||||
kwargs[key] = values
|
|
||||||
|
|
||||||
for k, v in kwargs.items():
|
if not arg.startswith('-'):
|
||||||
if isinstance(v, list) and len(v) == 1:
|
if isinstance(kwargs[key], bool):
|
||||||
kwargs[k] = v[0]
|
kwargs[key] = arg
|
||||||
|
elif isinstance(kwargs[key], str):
|
||||||
|
kwargs[key] = [kwargs[key]] + [arg]
|
||||||
|
elif isinstance(kwargs[key], list):
|
||||||
|
kwargs[key].append(arg)
|
||||||
|
continue
|
||||||
|
|
||||||
|
key = arg[:2].lstrip('-') + arg[2:].replace('-', '_')
|
||||||
|
|
||||||
|
if '=' in key:
|
||||||
|
key, value = key.split('=')
|
||||||
|
|
||||||
|
if not arg.startswith('--'):
|
||||||
|
for k in key[:-1]:
|
||||||
|
kwargs[k] = True
|
||||||
|
key = key[-1]
|
||||||
|
|
||||||
|
kwargs[key] = value if value else True
|
||||||
|
value = None
|
||||||
|
|
||||||
return (args, kwargs)
|
return (args, kwargs)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user