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
"""This hook is triggered right before self.execute() is called."""
        if self._pre_execute_hook is not None:
            self._pre_execute_hook(context)
    def execute(self, context: Context) -> Any:
        """
        This is the main method to derive when creating an operator.
        Context is the same dictionary used as when rendering jinja templates.
        Refer to get_template_context for more context.
        """
        raise NotImplementedError()
    @apply_lineage
    def post_execute(self, context: Any, result: Any = None):
        """
        This hook is triggered right after self.execute() is called.
        It is passed the execution context and any results returned by the
        operator.
        """
        if self._post_execute_hook is not None:
            self._post_execute_hook(context, result)
    def on_kill(self) -> None: