Skip to content

Commit 3186b8f

Browse files
committed
feat: make interrupt models serializable
1 parent a964100 commit 3186b8f

File tree

1 file changed

+35
-4
lines changed

1 file changed

+35
-4
lines changed
Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from abc import ABC, abstractmethod
12
from typing import Any, Dict, Optional
23

34
from pydantic import BaseModel
@@ -6,23 +7,53 @@
67
from .job import Job
78

89

9-
class InvokeProcess(BaseModel):
10+
class Serializable(ABC):
11+
@abstractmethod
12+
def serialize(self) -> str:
13+
pass
14+
15+
16+
class InvokeProcess(BaseModel, Serializable):
1017
name: str
1118
input_arguments: Optional[Dict[str, Any]]
1219

20+
def serialize(self) -> str:
21+
try:
22+
return self.model_dump_json()
23+
except ValueError:
24+
return str(self)
25+
1326

14-
class WaitJob(BaseModel):
27+
class WaitJob(BaseModel, Serializable):
1528
job: Job
1629

30+
def serialize(self) -> str:
31+
try:
32+
return self.model_dump_json()
33+
except ValueError:
34+
return str(self)
1735

18-
class CreateAction(BaseModel):
36+
37+
class CreateAction(BaseModel, Serializable):
1938
name: Optional[str] = None
2039
key: Optional[str] = None
2140
title: str
2241
data: Optional[Dict[str, Any]] = None
2342
app_version: Optional[int] = 1
2443
assignee: Optional[str] = ""
2544

45+
def serialize(self) -> str:
46+
try:
47+
return self.model_dump_json()
48+
except ValueError:
49+
return str(self)
50+
2651

27-
class WaitAction(BaseModel):
52+
class WaitAction(BaseModel, Serializable):
2853
action: Action
54+
55+
def serialize(self) -> str:
56+
try:
57+
return self.model_dump_json()
58+
except ValueError:
59+
return str(self)

0 commit comments

Comments
 (0)