Skip to content

Commit 74804da

Browse files
committed
clean code
1 parent f23246d commit 74804da

File tree

6 files changed

+72
-80
lines changed

6 files changed

+72
-80
lines changed

bindings/ceylon/ceylon/processor/agent.py

+1-32
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,11 @@
22
# Licensed under the Apache License, Version 2.0 (See LICENSE.md or http://www.apache.org/licenses/LICENSE-2.0).
33
#
44

5-
import dataclasses
6-
import uuid
75
from abc import abstractmethod
8-
from dataclasses import dataclass
96
from datetime import datetime
10-
from enum import Enum
11-
from typing import Optional, Any, Dict
127

138
from ceylon import Worker, on
14-
15-
16-
class ProcessState(Enum):
17-
PENDING = "pending"
18-
PROCESSING = "processing"
19-
ERROR = "error"
20-
SUCCESS = "success"
21-
22-
23-
@dataclass
24-
class ProcessRequest:
25-
task_type: str
26-
data: Any
27-
id: str = dataclasses.field(default_factory=lambda: str(uuid.uuid4()))
28-
metadata: Optional[Dict[str, Any]] = None
29-
dependency_data: Optional[Dict[str, Any]] = None
30-
31-
32-
@dataclass
33-
class ProcessResponse:
34-
request_id: str
35-
result: Any
36-
status: ProcessState = ProcessState.PENDING # 'success' or 'error'
37-
id: str = dataclasses.field(default_factory=lambda: str(uuid.uuid4()))
38-
error_message: Optional[str] = None
39-
execution_time: Optional[float] = None
40-
metadata: Optional[Dict[str, Any]] = None
9+
from ceylon.processor.data import ProcessResponse, ProcessRequest, ProcessState
4110

4211

4312
class ProcessWorker(Worker):
+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Copyright 2024-Present, Syigen Ltd. and Syigen Private Limited. All rights reserved.
2+
# Licensed under the Apache License, Version 2.0 (See LICENSE.md or http://www.apache.org/licenses/LICENSE-2.0).
3+
#
4+
import dataclasses
5+
import uuid
6+
from dataclasses import dataclass
7+
from enum import Enum
8+
from typing import Any, Optional, Dict
9+
10+
11+
class ProcessState(Enum):
12+
PENDING = "pending"
13+
PROCESSING = "processing"
14+
ERROR = "error"
15+
SUCCESS = "success"
16+
17+
18+
@dataclass
19+
class ProcessRequest:
20+
task_type: str
21+
data: Any
22+
id: str = dataclasses.field(default_factory=lambda: str(uuid.uuid4()))
23+
metadata: Optional[Dict[str, Any]] = None
24+
dependency_data: Optional[Dict[str, Any]] = None
25+
26+
27+
@dataclass
28+
class ProcessResponse:
29+
request_id: str
30+
result: Any
31+
status: ProcessState = ProcessState.PENDING # 'success' or 'error'
32+
id: str = dataclasses.field(default_factory=lambda: str(uuid.uuid4()))
33+
error_message: Optional[str] = None
34+
execution_time: Optional[float] = None
35+
metadata: Optional[Dict[str, Any]] = None

bindings/ceylon/ceylon/processor/playground.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from ceylon import on
1111
from ceylon.base.playground import BasePlayGround
12-
from ceylon.processor.agent import ProcessResponse, ProcessRequest, ProcessState
12+
from ceylon.processor.data import ProcessResponse, ProcessRequest, ProcessState
1313

1414

1515
class ProcessPlayGround(BasePlayGround):

bindings/ceylon/ceylon/task/data.py

+31-6
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,41 @@
22
# Licensed under the Apache License, Version 2.0 (See LICENSE.md or http://www.apache.org/licenses/LICENSE-2.0).
33
#
44
#
5-
from dataclasses import dataclass
5+
from __future__ import annotations
6+
7+
import uuid
8+
from dataclasses import dataclass, field
69
from enum import Enum
7-
from typing import Any, Dict, Optional
10+
from typing import Any, Dict, Optional, Callable, Coroutine, Set
811

912

1013
class TaskStatus(Enum):
11-
PENDING = "pending"
12-
IN_PROGRESS = "in_progress"
13-
COMPLETED = "completed"
14-
FAILED = "failed"
14+
PENDING = "PENDING"
15+
RUNNING = "RUNNING"
16+
COMPLETED = "COMPLETED"
17+
FAILED = "FAILED"
18+
19+
20+
@dataclass
21+
class TaskResult:
22+
success: bool
23+
output: Any = None
24+
error: str = None
25+
26+
27+
@dataclass
28+
class Task:
29+
name: str
30+
processor: Callable[..., Coroutine] | str = None # Updated to expect a coroutine
31+
input_data: Dict[str, Any] = field(default_factory=dict)
32+
id: str = field(default_factory=lambda: str(uuid.uuid4()))
33+
dependencies: Set[str] = field(default_factory=set)
34+
status: TaskStatus = TaskStatus.PENDING
35+
result: TaskResult = None
36+
37+
def __post_init__(self):
38+
if not self.id:
39+
self.id = str(uuid.uuid4())
1540

1641

1742
@dataclass

bindings/ceylon/ceylon/task/manager.py

+3-41
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,10 @@
11
from __future__ import annotations
22

3-
from typing import Any, Callable, Dict, List, Set, Coroutine
4-
from dataclasses import dataclass, field
5-
from enum import Enum
6-
import uuid
7-
import logging
83
import asyncio
4+
import logging
5+
from typing import Dict, List
96

10-
11-
class TaskStatus(Enum):
12-
PENDING = "PENDING"
13-
RUNNING = "RUNNING"
14-
COMPLETED = "COMPLETED"
15-
FAILED = "FAILED"
16-
17-
18-
@dataclass
19-
class TaskResult:
20-
success: bool
21-
output: Any = None
22-
error: str = None
23-
24-
25-
@dataclass
26-
class Task:
27-
name: str
28-
processor: Callable[..., Coroutine] | str = None # Updated to expect a coroutine
29-
input_data: Dict[str, Any] = field(default_factory=dict)
30-
id: str = field(default_factory=lambda: str(uuid.uuid4()))
31-
dependencies: Set[str] = field(default_factory=set)
32-
status: TaskStatus = TaskStatus.PENDING
33-
result: TaskResult = None
34-
35-
def __post_init__(self):
36-
if not self.id:
37-
self.id = str(uuid.uuid4())
7+
from ceylon.task.data import Task, TaskResult, TaskStatus
388

399

4010
class TaskManager:
@@ -55,14 +25,6 @@ def add_task(
5525
Returns:
5626
str: ID of the created task
5727
"""
58-
# task_id = str(uuid.uuid4())
59-
# task = Task(
60-
# id=task_id,
61-
# name=name,
62-
# processor=process,
63-
# input_data=input_data,
64-
# dependencies=dependencies or set()
65-
# )
6628
self.tasks[task.id] = task
6729
return task.id
6830

bindings/ceylon/ceylon/task/playground.py

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ async def add_and_execute_task(self,
3737
3838
Returns:
3939
TaskResult: Result of the task execution
40+
:param wait_for_completion:
4041
:param task:
4142
"""
4243
if type(task.processor) == str:

0 commit comments

Comments
 (0)