Skip to content

Commit 0a717b2

Browse files
authored
Chore: Cleanup fields for Pydantic (#12)
* make all fields optional to avoid loud breaking changes; if people have errors they should use new SDK * fmt * readme * fmt * cleanup fields * fix tests
1 parent d66f343 commit 0a717b2

File tree

2 files changed

+25
-19
lines changed

2 files changed

+25
-19
lines changed

browserbase/__init__.py

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import os
22
import time
3-
from enum import Enum
43
from typing import Literal, Optional, Sequence, Union
54

65
import httpx
76
from playwright.sync_api import sync_playwright
8-
from pydantic import BaseModel
7+
from pydantic import BaseModel, Field
98

109
BrowserType = Literal["chrome", "firefox", "edge", "safari"]
1110
DeviceType = Literal["desktop", "mobile"]
@@ -60,23 +59,28 @@ class CreateSessionOptions(BaseModel):
6059
class Session(BaseModel):
6160
id: str
6261
createdAt: str
62+
updatedAt: str
63+
projectId: str
6364
startedAt: str
6465
endedAt: Optional[str] = None
65-
projectId: str
66-
status: Optional[SessionStatus] = None
67-
taskId: Optional[str] = None
68-
proxyBytes: Optional[int] = None
6966
expiresAt: Optional[str] = None
70-
avg_cpu_usage: Optional[float] = None
71-
memory_usage: Optional[int] = None
67+
status: str
68+
proxyBytes: Optional[int] = None
69+
taskId: Optional[str] = None
70+
avg_cpu_usage: Optional[float] = Field(None, alias="avgCpuUsage")
71+
memory_usage: Optional[int] = Field(None, alias="memoryUsage")
72+
keep_alive: Optional[bool] = Field(None, alias="keepAlive")
73+
context_id: Optional[str] = Field(None, alias="contextId")
7274
details: Optional[str] = None
7375
logs: Optional[str] = None
7476

7577

7678
class SessionRecording(BaseModel):
79+
id: Optional[str] = None
7780
type: Optional[str] = None
78-
time: Optional[str] = None
81+
timestamp: Optional[Union[str, int]] = None
7982
data: Optional[dict] = None
83+
session_id: Optional[str] = Field(None, alias="sessionId")
8084

8185

8286
class DebugConnectionURLs(BaseModel):
@@ -86,25 +90,27 @@ class DebugConnectionURLs(BaseModel):
8690

8791

8892
class Request(BaseModel):
89-
timestamp: Optional[str]
90-
params: Optional[dict]
93+
timestamp: Optional[Union[str, int]] = None
94+
params: Optional[dict] = None
9195
rawBody: Optional[str] = None
9296

9397

9498
class Response(BaseModel):
95-
timestamp: Optional[str]
96-
result: Optional[dict]
99+
timestamp: Optional[Union[str, int]] = None
100+
result: Optional[dict] = None
97101
rawBody: Optional[str] = None
98102

99103

100104
class SessionLog(BaseModel):
101105
sessionId: Optional[str] = None
102-
id: str
103-
timestamp: Optional[str]
104-
method: Optional[str]
105-
request: Optional[Request]
106-
response: Optional[Response]
106+
timestamp: Optional[str] = None
107+
method: Optional[str] = None
108+
request: Optional[Request] = None
109+
response: Optional[Response] = None
107110
pageId: Optional[str] = None
111+
eventId: Optional[str] = None
112+
frameId: Optional[str] = None
113+
loaderId: Optional[str] = None
108114

109115

110116
class Browserbase:

tests/lib.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def test_load_urls(self):
3939

4040
def test_screenshot(self):
4141
result = self.browserbase.screenshot("https://example.com")
42-
self.assertEqual(29806, len(result))
42+
self.assertIsNotNone(result)
4343

4444

4545
if __name__ == "__main__":

0 commit comments

Comments
 (0)