Aiosetups -

async def cleanup_all(self): for task in self._cleanup_tasks: await task()

def add(self, name: str, init_func, cleanup_func=None): async def _init(): self._resources[name] = await init_func() self._init_tasks.append(_init) if cleanup_func: async def _clean(): await cleanup_func(self._resources[name]) self._cleanup_tasks.insert(0, _clean) # reverse order cleanup aiosetups

await setup.setup_all() print("Resources ready:", setup._resources) async def cleanup_all(self): for task in self