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
if "return" not in self.function.__annotations__:
            
            return False
        try:
            
            def fake():
                ...
            fake.__annotations__ = {"return": self.function.__annotations__["return"]}
            return_type = typing_extensions.get_type_hints(fake, self.function.__globals__).get("return", Any)
        except NameError as e:
            warnings.warn(
                f"Cannot infer multiple_outputs for TaskFlow function {self.function.__name__!r} with forward"
                f" type references that are not imported. (Error was {e})",
                stacklevel=4,
            )
            return False
        except TypeError:  
            return False
        ttype = getattr(return_type, "__origin__", return_type)
        return ttype == dict or ttype == Dict
    def __attrs_post_init__(self):