def _get_default_args()

in source/python/neuropod/utils/packaging_utils.py [0:0]


def _get_default_args(f):
    """
    get the default args of a functon `f` as  a map from an arg name to a default value
    """
    if hasattr(f, "neuropod_default_args"):
        return f.neuropod_default_args

    argspec = inspect.getargspec(f)
    if argspec.defaults:
        # Generate tuples of (arg, default_value)
        # According to https://docs.python.org/2/library/inspect.html#inspect.getargspec,
        # if defaults has n elements, they correspond to the last n elements listed in args.
        default_values = zip(reversed(argspec.args), reversed(argspec.defaults))

        return {k: v for k, v in default_values}

    return {}