def METHOD_NAME(self, *args, **kwargs):
    action = kwargs.get("action", "store")
    if action == "store_true":
        action = "store_const"
        const = True
        default = kwargs.get("default", False)
    elif action == "store_false":
        action = "store_const"
        const = False
        default = kwargs.get("default", True)
    elif action == "append":
        const = None
        default = kwargs.get("default", [])
    else:
        const = kwargs.get("const", None)
        default = kwargs.get("default", None)
    if args and args[0].startswith("-"):
        list = self.opt
        dest = kwargs.get("dest")
        if dest is None:
            dest = _dest_from_optnames(args)
    else:
        list = self.pos
        dest = kwargs.get("dest")
        if dest is None:
            dest = args[0]
        if not args:
            args = [dest]
    list.append(
        _Arg(args, dest, action, kwargs.get("nargs", None),
             const, default, kwargs.get("type", str), kwargs.get("help", "")))