in nubia/internal/typing/argparse.py [0:0]
def get_arguments_for_inspection(inspection, kwargs):
# map back from names or extra names given to arguments to the actual
# arguments taken by the function
names_to_args = {
transform_name(arg_obj.name, to_char="_"): arg_obj.arg
for arg, arg_obj in inspection.arguments.items()
}
names_to_args.update(
{
transform_name(extra_name, to_char="_"): arg_obj.arg
for arg, arg_obj in inspection.arguments.items()
for extra_name in arg_obj.extra_names
}
)
# disconsider _cmd as it is used to identify the function/parser, not the
# actual arguments
valid_args = set(map(lambda arg_obj: arg_obj.arg, inspection.arguments.values()))
# use the reverse map to convert the names used in parsing to the actual
# arguments used in the command function
# filter out any argument that is not accepted by this function.
kwargs = {
names_to_args.get(name, name): value
for name, value in kwargs.items()
if names_to_args.get(name, name) in valid_args
}
return kwargs