Source code for python_utils.print_input_args
#!/usr/bin/env python3
import os
import inspect
from textwrap import dedent
from .print_msg import print_info_msg
from .environment import import_vars
[docs]def print_input_args(valid_args):
"""Prints function arguments for debugging purposes
Args:
valid_args: dictionary of arg-value pairs
Returns:
Number of printed arguments
"""
# get verbosity from environment
IMPORTS = ["DEBUG"]
import_vars(env_vars=IMPORTS)
if list(valid_args.keys())[0] == "__unset__":
valid_arg_names = {}
else:
valid_arg_names = valid_args
num_valid_args = len(valid_arg_names)
filename = inspect.stack()[1].filename
function = inspect.stack()[1].function
filename_base = os.path.basename(filename)
if num_valid_args == 0:
msg = dedent(
f"""
No arguments have been passed to function {function} in script {filename_base} located
'{filename}'"""
)
else:
msg = dedent(
f"""
The arguments to function {function} in script {filename_base} located
'{filename}'
have been set as follows:\n\n"""
)
for k, v in valid_arg_names.items():
msg = msg + f" {k}='{v}'\n"
print_info_msg(msg, verbose=DEBUG)
return num_valid_args