Ensure that this works:

```python
@setup
def mytask():
    print("I am a setup task")

with dag_maker() as dag:
    mytask.override(task_id='newtask')

assert len(dag.task_group.children) == 1
setup_task = dag.task_group.children["newtask"]
assert setup_task._is_setup
```
and teardown also works
kwargs[arg] = default_args[arg]
            missing_args = non_optional_args - set(kwargs)
            if len(missing_args) == 1:
                raise AirflowException(f"missing keyword argument {missing_args.pop()!r}")
            elif missing_args:
                display = ", ".join(repr(a) for a in sorted(missing_args))
                raise AirflowException(f"missing keyword arguments {display}")
            if merged_params:
                kwargs["params"] = merged_params
            hook = getattr(self, "_hook_apply_defaults", None)
            if hook:
                args, kwargs = hook(**kwargs, default_args=default_args)
                default_args = kwargs.pop("default_args", {})
            if not hasattr(self, "_BaseOperator__init_kwargs"):
                self._BaseOperator__init_kwargs = {}
            self._BaseOperator__from_mapped = instantiated_from_mapped
            result = func(self, **kwargs, default_args=default_args)
            
            self._BaseOperator__init_kwargs.update(kwargs)  
            
            
            if not instantiated_from_mapped and func == self.__init__.__wrapped__:  
                self.set_xcomargs_dependencies()
                
                self._BaseOperator__instantiated = True
            return result
        apply_defaults.__non_optional_args = non_optional_args  
        apply_defaults.__param_names = set(non_variadic_params)  
        return cast(T, apply_defaults)
    def __new__(cls, name, bases, namespace, **kwargs):