Skip to content

Commit 7c26af7

Browse files
committed
chore: apply ruff-format
1 parent f0798d5 commit 7c26af7

2 files changed

Lines changed: 51 additions & 205 deletions

File tree

codex/protocol/types.py

Lines changed: 18 additions & 198 deletions
Original file line numberDiff line numberDiff line change
@@ -698,30 +698,6 @@ class WebSearchEndEvent(BaseModel):
698698
model_config = ConfigDict(extra="allow")
699699

700700

701-
class AskForApproval_Variant1(BaseModel):
702-
model_config = ConfigDict(extra="allow")
703-
704-
705-
class AskForApproval_Variant2(BaseModel):
706-
model_config = ConfigDict(extra="allow")
707-
708-
709-
class AskForApproval_Variant3(BaseModel):
710-
model_config = ConfigDict(extra="allow")
711-
712-
713-
class AskForApproval_Variant4(BaseModel):
714-
model_config = ConfigDict(extra="allow")
715-
716-
717-
class AuthMode_Variant1(BaseModel):
718-
model_config = ConfigDict(extra="allow")
719-
720-
721-
class AuthMode_Variant2(BaseModel):
722-
model_config = ConfigDict(extra="allow")
723-
724-
725701
class ClientRequest_NewConversation(BaseModel):
726702
method: Literal["newConversation"]
727703
id: RequestId
@@ -1200,14 +1176,6 @@ class EventMsg_ConversationHistory(BaseModel):
12001176
model_config = ConfigDict(extra="allow")
12011177

12021178

1203-
class ExecOutputStream_Variant1(BaseModel):
1204-
model_config = ConfigDict(extra="allow")
1205-
1206-
1207-
class ExecOutputStream_Variant2(BaseModel):
1208-
model_config = ConfigDict(extra="allow")
1209-
1210-
12111179
class FileChange_Variant1(BaseModel):
12121180
add: dict[str, Any]
12131181

@@ -1247,30 +1215,6 @@ class InputItem_LocalImage(BaseModel):
12471215
model_config = ConfigDict(extra="allow")
12481216

12491217

1250-
class InputMessageKind_Variant1(BaseModel):
1251-
model_config = ConfigDict(extra="allow")
1252-
1253-
1254-
class InputMessageKind_Variant2(BaseModel):
1255-
model_config = ConfigDict(extra="allow")
1256-
1257-
1258-
class InputMessageKind_Variant3(BaseModel):
1259-
model_config = ConfigDict(extra="allow")
1260-
1261-
1262-
class LocalShellStatus_Variant1(BaseModel):
1263-
model_config = ConfigDict(extra="allow")
1264-
1265-
1266-
class LocalShellStatus_Variant2(BaseModel):
1267-
model_config = ConfigDict(extra="allow")
1268-
1269-
1270-
class LocalShellStatus_Variant3(BaseModel):
1271-
model_config = ConfigDict(extra="allow")
1272-
1273-
12741218
class ParsedCommand_Read(BaseModel):
12751219
type: Literal["read"]
12761220
cmd: str
@@ -1303,22 +1247,6 @@ class ParsedCommand_Unknown(BaseModel):
13031247
model_config = ConfigDict(extra="allow")
13041248

13051249

1306-
class ReasoningEffort_Variant1(BaseModel):
1307-
model_config = ConfigDict(extra="allow")
1308-
1309-
1310-
class ReasoningEffort_Variant2(BaseModel):
1311-
model_config = ConfigDict(extra="allow")
1312-
1313-
1314-
class ReasoningEffort_Variant3(BaseModel):
1315-
model_config = ConfigDict(extra="allow")
1316-
1317-
1318-
class ReasoningEffort_Variant4(BaseModel):
1319-
model_config = ConfigDict(extra="allow")
1320-
1321-
13221250
class ReasoningItemContent_ReasoningText(BaseModel):
13231251
type: Literal["reasoning_text"]
13241252
text: str
@@ -1333,30 +1261,6 @@ class ReasoningItemContent_Text(BaseModel):
13331261
model_config = ConfigDict(extra="allow")
13341262

13351263

1336-
class ReasoningSummary_Variant1(BaseModel):
1337-
model_config = ConfigDict(extra="allow")
1338-
1339-
1340-
class ReasoningSummary_Variant2(BaseModel):
1341-
model_config = ConfigDict(extra="allow")
1342-
1343-
1344-
class ReasoningSummary_Variant3(BaseModel):
1345-
model_config = ConfigDict(extra="allow")
1346-
1347-
1348-
class ReasoningSummary_Variant4(BaseModel):
1349-
model_config = ConfigDict(extra="allow")
1350-
1351-
1352-
class RequestId_Variant1(BaseModel):
1353-
model_config = ConfigDict(extra="allow")
1354-
1355-
1356-
class RequestId_Variant2(BaseModel):
1357-
model_config = ConfigDict(extra="allow")
1358-
1359-
13601264
class ResponseItem_Message(BaseModel):
13611265
type: Literal["message"]
13621266
id: str | None = None
@@ -1434,42 +1338,6 @@ class ResponseItem_Other(BaseModel):
14341338
model_config = ConfigDict(extra="allow")
14351339

14361340

1437-
class ReviewDecision_Variant1(BaseModel):
1438-
model_config = ConfigDict(extra="allow")
1439-
1440-
1441-
class ReviewDecision_Variant2(BaseModel):
1442-
model_config = ConfigDict(extra="allow")
1443-
1444-
1445-
class ReviewDecision_Variant3(BaseModel):
1446-
model_config = ConfigDict(extra="allow")
1447-
1448-
1449-
class ReviewDecision_Variant4(BaseModel):
1450-
model_config = ConfigDict(extra="allow")
1451-
1452-
1453-
class Role_Variant1(BaseModel):
1454-
model_config = ConfigDict(extra="allow")
1455-
1456-
1457-
class Role_Variant2(BaseModel):
1458-
model_config = ConfigDict(extra="allow")
1459-
1460-
1461-
class SandboxMode_Variant1(BaseModel):
1462-
model_config = ConfigDict(extra="allow")
1463-
1464-
1465-
class SandboxMode_Variant2(BaseModel):
1466-
model_config = ConfigDict(extra="allow")
1467-
1468-
1469-
class SandboxMode_Variant3(BaseModel):
1470-
model_config = ConfigDict(extra="allow")
1471-
1472-
14731341
class SandboxPolicy_Variant1(BaseModel):
14741342
mode: Literal["danger-full-access"]
14751343

@@ -1521,38 +1389,6 @@ class ServerRequest_ExecCommandApproval(BaseModel):
15211389
model_config = ConfigDict(extra="allow")
15221390

15231391

1524-
class StepStatus_Variant1(BaseModel):
1525-
model_config = ConfigDict(extra="allow")
1526-
1527-
1528-
class StepStatus_Variant2(BaseModel):
1529-
model_config = ConfigDict(extra="allow")
1530-
1531-
1532-
class StepStatus_Variant3(BaseModel):
1533-
model_config = ConfigDict(extra="allow")
1534-
1535-
1536-
class TurnAbortReason_Variant1(BaseModel):
1537-
model_config = ConfigDict(extra="allow")
1538-
1539-
1540-
class TurnAbortReason_Variant2(BaseModel):
1541-
model_config = ConfigDict(extra="allow")
1542-
1543-
1544-
class Verbosity_Variant1(BaseModel):
1545-
model_config = ConfigDict(extra="allow")
1546-
1547-
1548-
class Verbosity_Variant2(BaseModel):
1549-
model_config = ConfigDict(extra="allow")
1550-
1551-
1552-
class Verbosity_Variant3(BaseModel):
1553-
model_config = ConfigDict(extra="allow")
1554-
1555-
15561392
class WebSearchAction_Search(BaseModel):
15571393
type: Literal["search"]
15581394
query: str
@@ -1594,13 +1430,6 @@ class SendUserTurnResponse(BaseModel):
15941430
model_config = ConfigDict(extra="allow")
15951431

15961432

1597-
AskForApproval = (
1598-
AskForApproval_Variant1
1599-
| AskForApproval_Variant2
1600-
| AskForApproval_Variant3
1601-
| AskForApproval_Variant4
1602-
)
1603-
AuthMode = AuthMode_Variant1 | AuthMode_Variant2
16041433
ClientRequest = (
16051434
ClientRequest_NewConversation
16061435
| ClientRequest_ListConversations
@@ -1665,28 +1494,12 @@ class SendUserTurnResponse(BaseModel):
16651494
| EventMsg_ShutdownComplete
16661495
| EventMsg_ConversationHistory
16671496
)
1668-
ExecOutputStream = ExecOutputStream_Variant1 | ExecOutputStream_Variant2
16691497
FileChange = FileChange_Variant1 | FileChange_Variant2 | FileChange_Variant3
16701498
InputItem = InputItem_Text | InputItem_Image | InputItem_LocalImage
1671-
InputMessageKind = InputMessageKind_Variant1 | InputMessageKind_Variant2 | InputMessageKind_Variant3
1672-
LocalShellStatus = LocalShellStatus_Variant1 | LocalShellStatus_Variant2 | LocalShellStatus_Variant3
16731499
ParsedCommand = (
16741500
ParsedCommand_Read | ParsedCommand_ListFiles | ParsedCommand_Search | ParsedCommand_Unknown
16751501
)
1676-
ReasoningEffort = (
1677-
ReasoningEffort_Variant1
1678-
| ReasoningEffort_Variant2
1679-
| ReasoningEffort_Variant3
1680-
| ReasoningEffort_Variant4
1681-
)
16821502
ReasoningItemContent = ReasoningItemContent_ReasoningText | ReasoningItemContent_Text
1683-
ReasoningSummary = (
1684-
ReasoningSummary_Variant1
1685-
| ReasoningSummary_Variant2
1686-
| ReasoningSummary_Variant3
1687-
| ReasoningSummary_Variant4
1688-
)
1689-
RequestId = RequestId_Variant1 | RequestId_Variant2
16901503
ResponseItem = (
16911504
ResponseItem_Message
16921505
| ResponseItem_Reasoning
@@ -1698,22 +1511,29 @@ class SendUserTurnResponse(BaseModel):
16981511
| ResponseItem_WebSearchCall
16991512
| ResponseItem_Other
17001513
)
1701-
ReviewDecision = (
1702-
ReviewDecision_Variant1
1703-
| ReviewDecision_Variant2
1704-
| ReviewDecision_Variant3
1705-
| ReviewDecision_Variant4
1706-
)
1707-
Role = Role_Variant1 | Role_Variant2
1708-
SandboxMode = SandboxMode_Variant1 | SandboxMode_Variant2 | SandboxMode_Variant3
17091514
SandboxPolicy = SandboxPolicy_Variant1 | SandboxPolicy_Variant2 | SandboxPolicy_Variant3
17101515
ServerNotification = ServerNotification_AuthStatusChange | ServerNotification_LoginChatGptComplete
17111516
ServerRequest = ServerRequest_ApplyPatchApproval | ServerRequest_ExecCommandApproval
1712-
StepStatus = StepStatus_Variant1 | StepStatus_Variant2 | StepStatus_Variant3
1713-
TurnAbortReason = TurnAbortReason_Variant1 | TurnAbortReason_Variant2
1714-
Verbosity = Verbosity_Variant1 | Verbosity_Variant2 | Verbosity_Variant3
17151517
WebSearchAction = WebSearchAction_Search | WebSearchAction_Other
17161518

1519+
AskForApproval = (
1520+
Literal["never"] | Literal["on-failure"] | Literal["on-request"] | Literal["untrusted"]
1521+
)
1522+
AuthMode = Literal["apikey"] | Literal["chatgpt"]
1523+
ExecOutputStream = Literal["stderr"] | Literal["stdout"]
1524+
InputMessageKind = Literal["environment_context"] | Literal["plain"] | Literal["user_instructions"]
1525+
LocalShellStatus = Literal["completed"] | Literal["in_progress"] | Literal["incomplete"]
1526+
ReasoningEffort = Literal["high"] | Literal["low"] | Literal["medium"] | Literal["minimal"]
1527+
ReasoningSummary = Literal["auto"] | Literal["concise"] | Literal["detailed"] | Literal["none"]
1528+
RequestId = int | str
1529+
ReviewDecision = (
1530+
Literal["abort"] | Literal["approved"] | Literal["approved_for_session"] | Literal["denied"]
1531+
)
1532+
Role = Literal["assistant"] | Literal["user"]
1533+
SandboxMode = Literal["danger-full-access"] | Literal["read-only"] | Literal["workspace-write"]
1534+
StepStatus = Literal["completed"] | Literal["in_progress"] | Literal["pending"]
1535+
TurnAbortReason = Literal["interrupted"] | Literal["replaced"]
1536+
Verbosity = Literal["high"] | Literal["low"] | Literal["medium"]
17171537
ConversationId = str
17181538
GitSha = str
17191539
JsonValue = Any

scripts/generate_protocol_py.py

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class TypedDictDef:
5252
from __future__ import annotations
5353
5454
from typing import Any, Literal
55-
from pydantic import BaseModel, Field
55+
from pydantic import BaseModel
5656
from pydantic.config import ConfigDict
5757
5858
@@ -241,19 +241,40 @@ def generate_from_ts(ts_dir: Path) -> str:
241241
if uname == "JsonValue":
242242
# We'll map this to Any later
243243
continue
244-
parts = split_top_level_union(rhs)
245-
variant_names: list[str] = []
244+
parts = [p.strip() for p in split_top_level_union(rhs)]
245+
246+
# Classify union parts
247+
object_like_parts: list[str] = [] # object literals or refs to object aliases/interfaces
248+
non_object_parts: list[str] = [] # primitives, literals, and other aliases
246249
for p in parts:
247-
p = p.strip()
248-
# Split intersections at top level
250+
if p.startswith("{"):
251+
object_like_parts.append(p)
252+
continue
253+
# Referenced type name
254+
ref = re.match(r"^[A-Za-z_][A-Za-z0-9_]*$", p)
255+
if ref and p in objects:
256+
object_like_parts.append(p)
257+
else:
258+
non_object_parts.append(p)
259+
260+
# If the union is purely primitives/literals -> generate a simple alias
261+
if not object_like_parts:
262+
py_parts = [ts_type_to_py(p) for p in parts]
263+
# Deduplicate while preserving deterministic order
264+
alias_rhs = " | ".join(sorted(set(py_parts)))
265+
aliases.append(TypeAlias(uname, alias_rhs))
266+
continue
267+
268+
# Otherwise, generate classes for object-like variants
269+
variant_names: list[str] = []
270+
for p in object_like_parts:
249271
inters = split_top_level_intersection(p)
250272
merged_fields: list[Field] = []
251273
for comp in inters:
252274
comp = comp.strip()
253275
if comp.startswith("{"):
254276
merged_fields.extend(parse_object_fields(comp))
255277
else:
256-
# Referenced type name
257278
ref = re.match(r"^[A-Za-z_][A-Za-z0-9_]*$", comp)
258279
if ref and comp in objects:
259280
merged_fields.extend(objects[comp])
@@ -274,7 +295,12 @@ def generate_from_ts(ts_dir: Path) -> str:
274295
cls_name = f"{uname}_Variant{len(variant_names) + 1}"
275296
tdicts.append(TypedDictDef(cls_name, merged_fields))
276297
variant_names.append(cls_name)
277-
union_aliases.append(TypeAlias(uname, " | ".join(variant_names)))
298+
299+
# Build the union alias combining class variants with any non-object primitives/literals
300+
rhs_parts: list[str] = variant_names[:]
301+
if non_object_parts:
302+
rhs_parts.extend(sorted(set(ts_type_to_py(p) for p in non_object_parts)))
303+
union_aliases.append(TypeAlias(uname, " | ".join(rhs_parts)))
278304

279305
# Emit simple aliases
280306
for aname, rhs in sorted(simple_aliases_source.items()):

0 commit comments

Comments
 (0)