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
"""A descriptor that guards against ``.partial`` being called on Task objects."""
    class_method: ClassMethodDescriptorType | None = None
    def __get__(
        self, obj: BaseOperator, cls: type[BaseOperator] | None = None
    ) -> Callable[..., OperatorPartial]:
        
        def partial(**kwargs):
            raise TypeError("partial can only be called on Operator classes, not Tasks themselves")
        if obj is not None:
            return partial
        return self.class_method.__get__(cls, cls)
def partial(
    operator_class: type[BaseOperator],
    *,