Skip to content

Commit 7a0dc36

Browse files
fix: pythonkernel class trying to call non-existent self.post() method attr error
1 parent 9d13bac commit 7a0dc36

File tree

1 file changed

+28
-3
lines changed

1 file changed

+28
-3
lines changed

airtbench/kernel.py

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -403,9 +403,14 @@ async def __aexit__(
403403
try:
404404
logger.debug("Shutting down kernel")
405405
try:
406-
await self._post(f"api/kernels/{self._kernel_id}/shutdown")
406+
async with aiohttp.ClientSession() as session:
407+
async with session.post(
408+
f"{self._base_url}/api/kernels/{self._kernel_id}/shutdown",
409+
params={"token": self._token},
410+
) as response:
411+
response.raise_for_status()
407412
except Exception as e:
408-
logger.warning(f"Failed to gracefully shutdown kernel via API: {e}")
413+
logger.warning(f"Failed to gracefully shutdown kernel via API: {e}")
409414
self._kernel_id = None
410415
except Exception:
411416
logger.exception("Failed to shutdown kernel")
@@ -687,7 +692,7 @@ async def get_kernel_state(self) -> KernelState:
687692
response.raise_for_status()
688693
kernel_info = await response.json()
689694

690-
return t.cast(KernelState, kernel_info["execution_state"])
695+
return t.cast("KernelState", kernel_info["execution_state"])
691696

692697
async def busy(self) -> bool:
693698
"""Check if the kernel is busy executing code."""
@@ -724,3 +729,23 @@ async def restart(self) -> None:
724729
response.raise_for_status()
725730

726731
logger.debug(f"Kernel {self._kernel_id} restarted")
732+
733+
734+
async def cleanup_routine() -> None:
735+
"""Perform cleanup of Docker resources."""
736+
try:
737+
client = aiodocker.Docker()
738+
# Clean up any dangling containers
739+
containers = await client.containers.list(all=True)
740+
for container in containers:
741+
container_info = await container.show()
742+
if container_info.get("State", {}).get("Status") == "exited":
743+
try:
744+
await container.delete(force=True)
745+
logger.debug(f"Cleaned up exited container {container_info['Id'][:12]}")
746+
except Exception as e:
747+
logger.debug(f"Could not clean up container: {e}")
748+
await client.close()
749+
logger.debug("Cleanup routine completed")
750+
except Exception as e:
751+
logger.warning(f"Cleanup routine failed: {e}")

0 commit comments

Comments
 (0)