blob: 8964411a3ee2ce6670c14bee2068da2e20f5e247 [file]
"""A small set of utilities for parsing pip args."""
def _get_pip_args(args, *arg_names, value = None, repeated = False):
set_next = False
if repeated:
value = [] + (value or [])
for arg in (args or []):
if arg in arg_names:
set_next = True
continue
val = None
if set_next:
set_next = False
val = arg
else:
for arg_name in arg_names:
start = "{}=".format(arg_name)
if arg.startswith(start):
val = arg[len(start):]
break
if val == None:
continue
if repeated:
if val not in value:
value.append(val)
else:
value = val
return value
argparse = struct(
index_url = lambda args, default: _get_pip_args(args, "-i", "--index-url", value = default),
extra_index_url = lambda args, default: _get_pip_args(args, "--extra-index-url", value = default, repeated = True),
platform = lambda args, default: _get_pip_args(args, "--platform", value = default, repeated = True),
)