def METHOD_NAME(self, node: ast.arguments) -> str:
    defaults: list[ast.expr | None] = list(node.defaults)
    positionals = len(node.args)
    posonlyargs = len(node.posonlyargs)
    positionals += posonlyargs
    for _ in range(len(defaults), positionals):
        defaults.insert(0, None)
    kw_defaults: list[ast.expr | None] = list(node.kw_defaults)
    for _ in range(len(kw_defaults), len(node.kwonlyargs)):
        kw_defaults.insert(0, None)
    args: list[str] = []
    for i, arg in enumerate(node.posonlyargs):
        args.append(self._visit_arg_with_default(arg, defaults[i]))
    if node.posonlyargs:
        args.append('/')
    for i, arg in enumerate(node.args):
        args.append(self._visit_arg_with_default(arg, defaults[i + posonlyargs]))
    if node.vararg:
        args.append("*" + self.visit(node.vararg))
    if node.kwonlyargs and not node.vararg:
        args.append('*')
    for i, arg in enumerate(node.kwonlyargs):
        args.append(self._visit_arg_with_default(arg, kw_defaults[i]))
    if node.kwarg:
        args.append("**" + self.visit(node.kwarg))
    return ", ".join(args)