def METHOD_NAME(self, args, val_arg_na, prefix, argname):
    """_set_args.
    Since we could not hard code all possible strings in the argparser,
    we add attributes to args name space according to the user
    specification from the custom python file they provide
    the custom model the user wrote should have
    model.dict_net_module_na2arg_na with something like
    {"net1":"name1", "net2":"name2"}
    val_arg_na below will be filled with "name1" for instance
    python main_out.py –te_d=caltech –task=mini_vlcs –debug –bs=3
    –apath=examples/algos/demo_custom_model.py
    –aname=custom –nname_argna2val net1 –nname_argna2val alexnet
    :param args: the namespace of command line arguemnts
    :param val_arg_na: the custom argument name the user specified
    :param prefix: nname or npath to be consistent with the rest of
    the package
    :param argname: nname_argna2val or "npath_argna2val", hard coded
    """
    if getattr(args, argname) is None:
        setattr(args, prefix+val_arg_na, None)
        return
    list_args = getattr(args, argname)
    ind = list_args.index(val_arg_na)
    if ind+1 >= len(list_args):  # list of args always even length
        raise RuntimeError("\n nname_argna2val or npath_argna2val should \
                           \n always be specified in pairs instead of \
                           odd number:\
                           \n %s" % (
                               str(list_args)))
    val = list_args[ind+1]
    # add attributes to namespaces args, the attributes are provided by
    # user in the custom model file
    setattr(args, prefix+val_arg_na, val)