fix: update SDK for v0.2.0 API compatibility #10

Merged
pptx704 merged 4 commits from fix/0.2-compatibility into dev 2026-05-19 11:16:21 +00:00
17 changed files with 1729 additions and 339 deletions
Showing only changes of commit 87cc16e9e2 - Show all commits

View File

@ -1,6 +1,6 @@
[project] [project]
name = "wrenn" name = "wrenn"
version = "0.1.1" version = "0.1.4"
description = "Python SDK for Wrenn" description = "Python SDK for Wrenn"
readme = "README.md" readme = "README.md"
license = "MIT" license = "MIT"

View File

@ -37,7 +37,7 @@ from wrenn.exceptions import (
from wrenn.models import FileEntry from wrenn.models import FileEntry
from wrenn.pty import AsyncPtySession, PtyEvent, PtyEventType, PtySession from wrenn.pty import AsyncPtySession, PtyEvent, PtyEventType, PtySession
__version__ = "0.1.0" __version__ = "0.1.4"
__all__ = [ __all__ = [
"__version__", "__version__",

View File

@ -15,6 +15,17 @@ pytestmark = pytest.mark.integration
_env_loaded = False _env_loaded = False
def _wait_for_pid_dead(capsule: Capsule, pid: int, timeout: float = 5.0) -> bool:
deadline = time.monotonic() + timeout
while time.monotonic() < deadline:
result = capsule.commands.run(f"ps -p {pid} -o stat= 2>/dev/null || true")
state = result.stdout.strip()
if not state or state.startswith("Z"):
return True
time.sleep(0.2)
return False
def _ensure_env() -> None: def _ensure_env() -> None:
global _env_loaded global _env_loaded
if _env_loaded: if _env_loaded:
@ -218,11 +229,7 @@ class TestCommands:
def test_kill_process(self): def test_kill_process(self):
handle = self.capsule.commands.run("sleep 30", background=True) handle = self.capsule.commands.run("sleep 30", background=True)
self.capsule.commands.kill(handle.pid) self.capsule.commands.kill(handle.pid)
time.sleep(0.5) assert _wait_for_pid_dead(self.capsule, handle.pid)
processes = self.capsule.commands.list()
pids = [p.pid for p in processes]
assert handle.pid not in pids
def test_run_duration_ms(self): def test_run_duration_ms(self):
result = self.capsule.commands.run("sleep 1") result = self.capsule.commands.run("sleep 1")

2
uv.lock generated
View File

@ -1121,7 +1121,7 @@ wheels = [
[[package]] [[package]]
name = "wrenn" name = "wrenn"
version = "0.1.1" version = "0.1.4"
source = { editable = "." } source = { editable = "." }
dependencies = [ dependencies = [
{ name = "email-validator" }, { name = "email-validator" },