Skip to content

Commit 30ccf6a

Browse files
committed
feat: make interrupt models serializable
1 parent a964100 commit 30ccf6a

File tree

2 files changed

+43
-5
lines changed

2 files changed

+43
-5
lines changed

src/uipath/models/__init__.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,13 @@
44
from .connections import Connection, ConnectionToken
55
from .context_grounding import ContextGroundingQueryResponse
66
from .exceptions import IngestionInProgressException
7-
from .interrupt_models import CreateAction, InvokeProcess, WaitAction, WaitJob
7+
from .interrupt_models import (
8+
CreateAction,
9+
InvokeProcess,
10+
Serializable,
11+
WaitAction,
12+
WaitJob,
13+
)
814
from .job import Job
915
from .processes import Process
1016
from .queues import (
@@ -34,4 +40,5 @@
3440
"WaitAction",
3541
"CreateAction",
3642
"IngestionInProgressException",
43+
"Serializable",
3744
]
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)