Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
Path(config.history_path).unlink()
elif cli_args:
getattr(chepy_cli, cli_method)(
fire_obj, **{cli_args.group(1): cli_args.group(2)}
)
else:
getattr(chepy_cli, cli_method)(fire_obj)
else:
for method in chepy:
if not method.startswith("_") and not isinstance(
getattr(Chepy, method), property
):
fire.decorators._SetMetadata(
getattr(Chepy, method),
fire.decorators.ACCEPTS_POSITIONAL_ARGS,
False,
)
args_data += prompt.split()
if args_data[-1] != "-":
args_data.append("-")
try:
last_command = prompt.split() + ["-"]
fire_obj = fire.Fire(Chepy, command=args_data)
# handle required args for methods
except fire.core.FireExit:
args_data = args_data[: -len(last_command)]
except TypeError as e:
print(red(e.message))
except SystemExit:
sys.exit()
except:
# Delete the cli history file
elif cli_method == "cli_delete_history":
Path(config.history_path).unlink()
elif cli_args:
getattr(chepy_cli, cli_method)(
fire_obj, **{cli_args.group(1): cli_args.group(2)}
)
else:
getattr(chepy_cli, cli_method)(fire_obj)
else:
for method in chepy:
if not method.startswith("_") and not isinstance(
getattr(Chepy, method), property
):
fire.decorators._SetMetadata(
getattr(Chepy, method),
fire.decorators.ACCEPTS_POSITIONAL_ARGS,
False,
)
args_data += prompt.split()
if args_data[-1] != "-":
args_data.append("-")
try:
last_command = prompt.split() + ["-"]
fire_obj = fire.Fire(Chepy, command=args_data)
# handle required args for methods
except fire.core.FireExit:
args_data = args_data[: -len(last_command)]
except TypeError as e:
print(red(e.message))
except SystemExit:
argspec. This is the number of arguments without a default value.
kwargs: Dict with named command line arguments and their values.
remaining_args: The remaining command line arguments, which may still be
used as positional arguments.
metadata: Metadata about the function, typically from Fire decorators.
Returns:
parsed_args: A list of values to be used as positional arguments for calling
the target function.
kwargs: The input dict kwargs modified with the used kwargs removed.
remaining_args: A list of the supplied args that have not been used yet.
capacity: Whether the call could have taken args in place of defaults.
Raises:
FireError: If additional positional arguments are expected, but none are
available.
"""
accepts_positional_args = metadata.get(decorators.ACCEPTS_POSITIONAL_ARGS)
capacity = False # If we see a default get used, we'll set capacity to True
# Select unnamed args.
parsed_args = []
for index, arg in enumerate(fn_args):
value = kwargs.pop(arg, None)
if value is not None: # A value is specified at the command line.
value = _ParseValue(value, index, arg, metadata)
parsed_args.append(value)
else: # No value has been explicitly specified.
if remaining_args and accepts_positional_args:
# Use a positional arg.
value = remaining_args.pop(0)
value = _ParseValue(value, index, arg, metadata)
parsed_args.append(value)
elif index < num_required_args:
"""Parses value, a string, into the appropriate type.
The function used to parse value is determined by the remaining arguments.
Args:
value: The string value to be parsed, typically a command line argument.
index: The index of the value in the function's argspec.
arg: The name of the argument the value is being parsed for.
metadata: Metadata about the function, typically from Fire decorators.
Returns:
value, parsed into the appropriate type for calling a function.
"""
parse_fn = parser.DefaultParseValue
# We check to see if any parse function from the fn metadata applies here.
parse_fns = metadata.get(decorators.FIRE_PARSE_FNS)
if parse_fns:
default = parse_fns['default']
positional = parse_fns['positional']
named = parse_fns['named']
if index is not None and 0 <= index < len(positional):
parse_fn = positional[index]
elif arg in named:
parse_fn = named[arg]
elif default is not None:
parse_fn = default
return parse_fn(value)