This is an automated email from the ASF dual-hosted git repository.

xtsong pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-agents.git

commit 3d28c238ead9487eb910006c0d3834586f83e237
Author: WenjinXie <wenjin...@gmail.com>
AuthorDate: Tue Aug 5 10:09:53 2025 +0800

    [hotfix] Move event and action to separate module.
---
 .../python_java_utils.py => api/events/__init__.py}    | 18 ------------------
 python/flink_agents/api/{ => events}/event.py          |  7 ++++---
 python/flink_agents/api/runner_context.py              |  2 +-
 python/flink_agents/api/tests/test_decorators.py       |  2 +-
 python/flink_agents/api/tests/test_event.py            |  2 +-
 python/flink_agents/examples/agent_example.py          |  2 +-
 python/flink_agents/examples/my_agent.py               |  2 +-
 .../python_java_utils.py => plan/actions/__init__.py}  | 18 ------------------
 python/flink_agents/plan/{ => actions}/action.py       |  2 +-
 .../python_agent_plan_compatibility_test_agent.py      |  2 +-
 python/flink_agents/plan/tests/resources/action.json   |  2 +-
 python/flink_agents/plan/tests/test_action.py          |  6 +++---
 python/flink_agents/plan/tests/test_function.py        |  2 +-
 python/flink_agents/runtime/flink_runner_context.py    |  2 +-
 python/flink_agents/runtime/local_runner.py            |  2 +-
 python/flink_agents/runtime/python_java_utils.py       |  2 +-
 .../runtime/tests/test_local_execution_environment.py  |  2 +-
 17 files changed, 20 insertions(+), 55 deletions(-)

diff --git a/python/flink_agents/runtime/python_java_utils.py 
b/python/flink_agents/api/events/__init__.py
similarity index 60%
copy from python/flink_agents/runtime/python_java_utils.py
copy to python/flink_agents/api/events/__init__.py
index a4bf1b8..e154fad 100644
--- a/python/flink_agents/runtime/python_java_utils.py
+++ b/python/flink_agents/api/events/__init__.py
@@ -15,21 +15,3 @@
 #  See the License for the specific language governing permissions and
 # limitations under the License.
 
#################################################################################
-from typing import Any
-
-import cloudpickle
-
-from flink_agents.api.event import InputEvent
-
-
-def convert_to_python_object(bytesObject: bytes) -> Any:
-    """Used for deserializing Python objects."""
-    return cloudpickle.loads(bytesObject)
-
-def wrap_to_input_event(bytesObject: bytes) -> bytes:
-    """Wrap data to python input event and serialize."""
-    return cloudpickle.dumps(InputEvent(input=cloudpickle.loads(bytesObject)))
-
-def get_output_from_output_event(bytesObject: bytes) -> Any:
-    """Get output data from OutputEvent and serialize."""
-    return cloudpickle.dumps(convert_to_python_object(bytesObject).output)
diff --git a/python/flink_agents/api/event.py 
b/python/flink_agents/api/events/event.py
similarity index 94%
rename from python/flink_agents/api/event.py
rename to python/flink_agents/api/events/event.py
index 4f85648..600de78 100644
--- a/python/flink_agents/api/event.py
+++ b/python/flink_agents/api/events/event.py
@@ -32,12 +32,13 @@ class Event(BaseModel, ABC, extra="allow"):
     id : UUID
         Unique identifier for the event, automatically generated using uuid4.
     """
+
     id: UUID = Field(default_factory=uuid4)
 
-    @model_validator(mode='after')
-    def validate_extra(self) -> 'Event':
+    @model_validator(mode="after")
+    def validate_extra(self) -> "Event":
         """Ensure init fields is serializable."""
-        #TODO: support Event contains Row field be json serializable
+        # TODO: support Event contains Row field be json serializable
         for value in self.model_dump().values():
             if isinstance(value, Row):
                 return self
diff --git a/python/flink_agents/api/runner_context.py 
b/python/flink_agents/api/runner_context.py
index f06d27d..9833fe4 100644
--- a/python/flink_agents/api/runner_context.py
+++ b/python/flink_agents/api/runner_context.py
@@ -18,7 +18,7 @@
 from abc import ABC, abstractmethod
 from typing import Any, Callable, Tuple, Dict
 
-from flink_agents.api.event import Event
+from flink_agents.api.events.event import Event
 from flink_agents.api.memory_object import MemoryObject
 from flink_agents.api.metric_group import MetricGroup
 from flink_agents.api.resource import Resource, ResourceType
diff --git a/python/flink_agents/api/tests/test_decorators.py 
b/python/flink_agents/api/tests/test_decorators.py
index 7d20127..3ad5b54 100644
--- a/python/flink_agents/api/tests/test_decorators.py
+++ b/python/flink_agents/api/tests/test_decorators.py
@@ -20,7 +20,7 @@ from typing import List
 import pytest
 
 from flink_agents.api.decorators import action
-from flink_agents.api.event import Event, InputEvent, OutputEvent
+from flink_agents.api.events.event import Event, InputEvent, OutputEvent
 from flink_agents.api.runner_context import RunnerContext
 
 
diff --git a/python/flink_agents/api/tests/test_event.py 
b/python/flink_agents/api/tests/test_event.py
index eeed674..754bade 100644
--- a/python/flink_agents/api/tests/test_event.py
+++ b/python/flink_agents/api/tests/test_event.py
@@ -22,7 +22,7 @@ from pydantic import ValidationError
 from pydantic_core import PydanticSerializationError
 from pyflink.common import Row
 
-from flink_agents.api.event import Event, InputEvent, OutputEvent
+from flink_agents.api.events.event import Event, InputEvent, OutputEvent
 
 
 def test_event_init_serializable() -> None: #noqa D103
diff --git a/python/flink_agents/examples/agent_example.py 
b/python/flink_agents/examples/agent_example.py
index f9e008d..56487cb 100644
--- a/python/flink_agents/examples/agent_example.py
+++ b/python/flink_agents/examples/agent_example.py
@@ -19,7 +19,7 @@ from typing import Any
 
 from flink_agents.api.agent import Agent
 from flink_agents.api.decorators import action
-from flink_agents.api.event import Event, InputEvent, OutputEvent
+from flink_agents.api.events.event import Event, InputEvent, OutputEvent
 from flink_agents.api.execution_environment import AgentsExecutionEnvironment
 from flink_agents.api.runner_context import RunnerContext
 
diff --git a/python/flink_agents/examples/my_agent.py 
b/python/flink_agents/examples/my_agent.py
index b810d64..cb119d8 100644
--- a/python/flink_agents/examples/my_agent.py
+++ b/python/flink_agents/examples/my_agent.py
@@ -24,7 +24,7 @@ from pydantic import BaseModel
 
 from flink_agents.api.agent import Agent
 from flink_agents.api.decorators import action
-from flink_agents.api.event import Event, InputEvent, OutputEvent
+from flink_agents.api.events.event import Event, InputEvent, OutputEvent
 from flink_agents.api.runner_context import RunnerContext
 
 
diff --git a/python/flink_agents/runtime/python_java_utils.py 
b/python/flink_agents/plan/actions/__init__.py
similarity index 60%
copy from python/flink_agents/runtime/python_java_utils.py
copy to python/flink_agents/plan/actions/__init__.py
index a4bf1b8..e154fad 100644
--- a/python/flink_agents/runtime/python_java_utils.py
+++ b/python/flink_agents/plan/actions/__init__.py
@@ -15,21 +15,3 @@
 #  See the License for the specific language governing permissions and
 # limitations under the License.
 
#################################################################################
-from typing import Any
-
-import cloudpickle
-
-from flink_agents.api.event import InputEvent
-
-
-def convert_to_python_object(bytesObject: bytes) -> Any:
-    """Used for deserializing Python objects."""
-    return cloudpickle.loads(bytesObject)
-
-def wrap_to_input_event(bytesObject: bytes) -> bytes:
-    """Wrap data to python input event and serialize."""
-    return cloudpickle.dumps(InputEvent(input=cloudpickle.loads(bytesObject)))
-
-def get_output_from_output_event(bytesObject: bytes) -> Any:
-    """Get output data from OutputEvent and serialize."""
-    return cloudpickle.dumps(convert_to_python_object(bytesObject).output)
diff --git a/python/flink_agents/plan/action.py 
b/python/flink_agents/plan/actions/action.py
similarity index 98%
rename from python/flink_agents/plan/action.py
rename to python/flink_agents/plan/actions/action.py
index eb94e55..5e9a9f6 100644
--- a/python/flink_agents/plan/action.py
+++ b/python/flink_agents/plan/actions/action.py
@@ -19,7 +19,7 @@ from typing import List
 
 from pydantic import BaseModel, field_serializer, model_validator
 
-from flink_agents.api.event import Event
+from flink_agents.api.events.event import Event
 from flink_agents.api.runner_context import RunnerContext
 from flink_agents.plan.function import Function, JavaFunction, PythonFunction
 
diff --git 
a/python/flink_agents/plan/tests/compatibility/python_agent_plan_compatibility_test_agent.py
 
b/python/flink_agents/plan/tests/compatibility/python_agent_plan_compatibility_test_agent.py
index 30e1b82..f0d440d 100644
--- 
a/python/flink_agents/plan/tests/compatibility/python_agent_plan_compatibility_test_agent.py
+++ 
b/python/flink_agents/plan/tests/compatibility/python_agent_plan_compatibility_test_agent.py
@@ -17,7 +17,7 @@
 
#################################################################################
 from flink_agents.api.agent import Agent
 from flink_agents.api.decorators import action
-from flink_agents.api.event import Event, InputEvent
+from flink_agents.api.events.event import Event, InputEvent
 from flink_agents.api.runner_context import RunnerContext
 
 
diff --git a/python/flink_agents/plan/tests/resources/action.json 
b/python/flink_agents/plan/tests/resources/action.json
index ae2b1d4..da2cf91 100644
--- a/python/flink_agents/plan/tests/resources/action.json
+++ b/python/flink_agents/plan/tests/resources/action.json
@@ -6,6 +6,6 @@
         "func_type": "PythonFunction"
     },
     "listen_event_types": [
-        "flink_agents.api.event.InputEvent"
+        "flink_agents.api.events.event.InputEvent"
     ]
 }
\ No newline at end of file
diff --git a/python/flink_agents/plan/tests/test_action.py 
b/python/flink_agents/plan/tests/test_action.py
index 79ed2e7..053053d 100644
--- a/python/flink_agents/plan/tests/test_action.py
+++ b/python/flink_agents/plan/tests/test_action.py
@@ -20,9 +20,9 @@ from pathlib import Path
 
 import pytest
 
-from flink_agents.api.event import InputEvent
+from flink_agents.api.events.event import InputEvent
 from flink_agents.api.runner_context import RunnerContext
-from flink_agents.plan.action import Action
+from flink_agents.plan.actions.action import Action
 from flink_agents.plan.function import PythonFunction
 
 
@@ -71,7 +71,7 @@ def test_action_deserialize(action: Action) -> None: # noqa: 
D103
         expected_json = f.read()
     action = Action.model_validate_json(expected_json)
     assert action.name == 'legal'
-    assert action.listen_event_types == ['flink_agents.api.event.InputEvent']
+    assert action.listen_event_types == 
['flink_agents.api.events.event.InputEvent']
     func = action.exec
     assert func.module == 'flink_agents.plan.tests.test_action'
     assert func.qualname == 'legal_signature'
diff --git a/python/flink_agents/plan/tests/test_function.py 
b/python/flink_agents/plan/tests/test_function.py
index f79e7bb..c11ee3b 100644
--- a/python/flink_agents/plan/tests/test_function.py
+++ b/python/flink_agents/plan/tests/test_function.py
@@ -23,7 +23,7 @@ from typing import TYPE_CHECKING, Any, Callable, Dict, 
Generator, Tuple
 
 import pytest
 
-from flink_agents.api.event import Event, InputEvent, OutputEvent
+from flink_agents.api.events.event import Event, InputEvent, OutputEvent
 from flink_agents.plan.function import (
     PythonFunction,
     _is_function_cacheable,
diff --git a/python/flink_agents/runtime/flink_runner_context.py 
b/python/flink_agents/runtime/flink_runner_context.py
index 5f3bb90..16a3014 100644
--- a/python/flink_agents/runtime/flink_runner_context.py
+++ b/python/flink_agents/runtime/flink_runner_context.py
@@ -20,7 +20,7 @@ from typing import Any, Callable, Tuple, Dict
 import cloudpickle
 from typing_extensions import override
 
-from flink_agents.api.event import Event
+from flink_agents.api.events.event import Event
 from flink_agents.api.resource import Resource, ResourceType
 from flink_agents.api.runner_context import RunnerContext
 from flink_agents.plan.agent_plan import AgentPlan
diff --git a/python/flink_agents/runtime/local_runner.py 
b/python/flink_agents/runtime/local_runner.py
index b4bd7c4..392e00e 100644
--- a/python/flink_agents/runtime/local_runner.py
+++ b/python/flink_agents/runtime/local_runner.py
@@ -23,7 +23,7 @@ from typing import Any, Dict, List, Callable, Tuple, Generator
 from typing_extensions import override
 
 from flink_agents.api.agent import Agent
-from flink_agents.api.event import Event, InputEvent, OutputEvent
+from flink_agents.api.events.event import Event, InputEvent, OutputEvent
 from flink_agents.api.memory_object import MemoryObject
 from flink_agents.api.metric_group import MetricGroup
 from flink_agents.api.resource import Resource, ResourceType
diff --git a/python/flink_agents/runtime/python_java_utils.py 
b/python/flink_agents/runtime/python_java_utils.py
index a4bf1b8..9f96a62 100644
--- a/python/flink_agents/runtime/python_java_utils.py
+++ b/python/flink_agents/runtime/python_java_utils.py
@@ -19,7 +19,7 @@ from typing import Any
 
 import cloudpickle
 
-from flink_agents.api.event import InputEvent
+from flink_agents.api.events.event import InputEvent
 
 
 def convert_to_python_object(bytesObject: bytes) -> Any:
diff --git 
a/python/flink_agents/runtime/tests/test_local_execution_environment.py 
b/python/flink_agents/runtime/tests/test_local_execution_environment.py
index 322f9c5..9be22ce 100644
--- a/python/flink_agents/runtime/tests/test_local_execution_environment.py
+++ b/python/flink_agents/runtime/tests/test_local_execution_environment.py
@@ -21,7 +21,7 @@ import pytest
 
 from flink_agents.api.agent import Agent
 from flink_agents.api.decorators import action
-from flink_agents.api.event import Event, InputEvent, OutputEvent
+from flink_agents.api.events.event import Event, InputEvent, OutputEvent
 from flink_agents.api.execution_environment import AgentsExecutionEnvironment
 from flink_agents.api.runner_context import RunnerContext
 

Reply via email to