mirror of
https://github.com/vale981/ray
synced 2025-03-05 10:01:43 -05:00
[Ray DAG] Move dag
project folder out of experimental
(#25532)
This commit is contained in:
parent
e111b173e9
commit
f6735f90c7
49 changed files with 164 additions and 108 deletions
|
@ -481,3 +481,15 @@
|
|||
--test_env=PULL_POLICY=IfNotPresent
|
||||
--test_env=KUBECONFIG=/root/.kube/config
|
||||
python/ray/tests/...
|
||||
- label: ":python: Ray DAG Tests"
|
||||
conditions:
|
||||
[
|
||||
"RAY_CI_PYTHON_AFFECTED",
|
||||
]
|
||||
commands:
|
||||
- cleanup() { if [ "${BUILDKITE_PULL_REQUEST}" = "false" ]; then ./ci/build/upload_build_info.sh; fi }; trap cleanup EXIT
|
||||
- pip install -U pydot
|
||||
- sudo apt-get install -y graphviz
|
||||
- bazel test --config=ci $(./scripts/bazel_export_options)
|
||||
--test_tag_filters=ray_dag_tests
|
||||
python/ray/dag/...
|
||||
|
|
|
@ -122,8 +122,7 @@ as args of ``dag_node.execute()``
|
|||
|
||||
# `ray start --head` has been run to launch a local cluster
|
||||
import ray
|
||||
# TODO (jiaodong): Update this once DAG is out of experimental folder.
|
||||
from ray.experimental.dag.input_node import InputNode
|
||||
from ray.dag.input_node import InputNode
|
||||
|
||||
@ray.remote
|
||||
def a(user_input):
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import ray
|
||||
from ray import serve
|
||||
from ray.experimental.dag.input_node import InputNode
|
||||
from ray.dag.input_node import InputNode
|
||||
|
||||
|
||||
ray.init()
|
||||
|
|
|
@ -4,7 +4,7 @@ from pydantic import BaseModel
|
|||
import ray
|
||||
from ray import serve
|
||||
from ray.serve.drivers import DAGDriver
|
||||
from ray.experimental.dag.input_node import InputNode
|
||||
from ray.dag.input_node import InputNode
|
||||
|
||||
|
||||
ray.init()
|
||||
|
|
|
@ -4,7 +4,6 @@ from ray.serve.deployment_graph import InputNode
|
|||
|
||||
|
||||
ray.init()
|
||||
serve.start()
|
||||
|
||||
|
||||
@serve.deployment
|
||||
|
|
|
@ -27,11 +27,11 @@ with InputNode() as user_input:
|
|||
dag = combine.bind(m1_output, m2_output, kwargs_output=user_input[2])
|
||||
|
||||
# Partial DAG visualization
|
||||
graph = ray.experimental.dag.vis_utils.dag_to_dot(m1_output)
|
||||
graph = ray.dag.vis_utils.dag_to_dot(m1_output)
|
||||
to_string = graph.to_string()
|
||||
print(to_string)
|
||||
|
||||
# Entire DAG visualization
|
||||
graph = ray.experimental.dag.vis_utils.dag_to_dot(dag)
|
||||
graph = ray.dag.vis_utils.dag_to_dot(dag)
|
||||
to_string = graph.to_string()
|
||||
print(to_string)
|
||||
|
|
|
@ -85,7 +85,7 @@ For example, the json request adapters parse JSON in HTTP body:
|
|||
```python
|
||||
from ray.serve.drivers import DAGDriver
|
||||
from ray.serve.http_adapters import json_request
|
||||
from ray.experimental.dag.input_node import InputNode
|
||||
from ray.dag.input_node import InputNode
|
||||
|
||||
with InputNode() as input_node:
|
||||
...
|
||||
|
|
|
@ -573,7 +573,7 @@ class ActorClass:
|
|||
For Ray DAG building that creates static graph from decorated
|
||||
class or functions.
|
||||
"""
|
||||
from ray.experimental.dag.class_node import ClassNode
|
||||
from ray.dag.class_node import ClassNode
|
||||
|
||||
return ClassNode(
|
||||
actor_cls.__ray_metadata__.modified_class,
|
||||
|
@ -937,7 +937,7 @@ class ActorClass:
|
|||
For Ray DAG building that creates static graph from decorated
|
||||
class or functions.
|
||||
"""
|
||||
from ray.experimental.dag.class_node import ClassNode
|
||||
from ray.dag.class_node import ClassNode
|
||||
|
||||
return ClassNode(
|
||||
self.__ray_metadata__.modified_class, args, kwargs, self._default_options
|
||||
|
|
45
python/ray/dag/BUILD
Normal file
45
python/ray/dag/BUILD
Normal file
|
@ -0,0 +1,45 @@
|
|||
# This is a dummy test dependency that causes the above tests to be
|
||||
# re-run if any of these files changes.
|
||||
py_library(
|
||||
name = "dag_lib",
|
||||
srcs = glob(["**/*.py"], exclude=["tests/**/*.py"]),
|
||||
visibility = [
|
||||
"//python/ray/dag:__pkg__",
|
||||
"//python/ray/dag:__subpackages__",
|
||||
"//release:__pkg__"
|
||||
],
|
||||
)
|
||||
|
||||
dag_tests_srcs = glob(["tests/**/*.py"])
|
||||
|
||||
py_test(
|
||||
name = "test_function_dag",
|
||||
size = "small",
|
||||
srcs = dag_tests_srcs,
|
||||
tags = ["exclusive", "team:core", "ray_dag_tests"],
|
||||
deps = [":dag_lib"],
|
||||
)
|
||||
|
||||
py_test(
|
||||
name = "test_class_dag",
|
||||
size = "small",
|
||||
srcs = dag_tests_srcs,
|
||||
tags = ["exclusive", "team:core", "ray_dag_tests"],
|
||||
deps = [":dag_lib"],
|
||||
)
|
||||
|
||||
py_test(
|
||||
name = "test_input_node",
|
||||
size = "small",
|
||||
srcs = dag_tests_srcs,
|
||||
tags = ["exclusive", "team:core", "ray_dag_tests"],
|
||||
deps = [":dag_lib"],
|
||||
)
|
||||
|
||||
py_test(
|
||||
name = "test_plot",
|
||||
size = "small",
|
||||
srcs = dag_tests_srcs,
|
||||
tags = ["exclusive", "team:core", "ray_dag_tests"],
|
||||
deps = [":dag_lib"],
|
||||
)
|
|
@ -1,17 +1,17 @@
|
|||
from ray.experimental.dag.dag_node import DAGNode
|
||||
from ray.experimental.dag.function_node import FunctionNode
|
||||
from ray.experimental.dag.class_node import ClassNode, ClassMethodNode
|
||||
from ray.experimental.dag.input_node import (
|
||||
from ray.dag.dag_node import DAGNode
|
||||
from ray.dag.function_node import FunctionNode
|
||||
from ray.dag.class_node import ClassNode, ClassMethodNode
|
||||
from ray.dag.input_node import (
|
||||
InputNode,
|
||||
InputAttributeNode,
|
||||
DAGInputData,
|
||||
)
|
||||
from ray.experimental.dag.constants import (
|
||||
from ray.dag.constants import (
|
||||
PARENT_CLASS_NODE_KEY,
|
||||
PREV_CLASS_METHOD_CALL_KEY,
|
||||
DAGNODE_TYPE_KEY,
|
||||
)
|
||||
from ray.experimental.dag.vis_utils import plot
|
||||
from ray.dag.vis_utils import plot
|
||||
|
||||
__all__ = [
|
||||
"ClassNode",
|
|
@ -1,8 +1,8 @@
|
|||
import ray
|
||||
from ray.experimental.dag.dag_node import DAGNode
|
||||
from ray.experimental.dag.input_node import InputNode
|
||||
from ray.experimental.dag.format_utils import get_dag_node_str
|
||||
from ray.experimental.dag.constants import (
|
||||
from ray.dag.dag_node import DAGNode
|
||||
from ray.dag.input_node import InputNode
|
||||
from ray.dag.format_utils import get_dag_node_str
|
||||
from ray.dag.constants import (
|
||||
PARENT_CLASS_NODE_KEY,
|
||||
PREV_CLASS_METHOD_CALL_KEY,
|
||||
DAGNODE_TYPE_KEY,
|
|
@ -1,5 +1,5 @@
|
|||
import ray
|
||||
from ray.experimental.dag.py_obj_scanner import _PyObjScanner
|
||||
from ray.dag.py_obj_scanner import _PyObjScanner
|
||||
|
||||
from typing import (
|
||||
Optional,
|
|
@ -1,4 +1,4 @@
|
|||
from ray.experimental.dag import DAGNode
|
||||
from ray.dag import DAGNode
|
||||
|
||||
|
||||
def get_indentation(num_spaces=4):
|
|
@ -2,9 +2,9 @@ from typing import Any, Dict, List
|
|||
|
||||
|
||||
import ray
|
||||
from ray.experimental.dag.dag_node import DAGNode
|
||||
from ray.experimental.dag.format_utils import get_dag_node_str
|
||||
from ray.experimental.dag.constants import DAGNODE_TYPE_KEY
|
||||
from ray.dag.dag_node import DAGNode
|
||||
from ray.dag.format_utils import get_dag_node_str
|
||||
from ray.dag.constants import DAGNODE_TYPE_KEY
|
||||
|
||||
|
||||
class FunctionNode(DAGNode):
|
|
@ -1,8 +1,8 @@
|
|||
from typing import Any, Dict, List, Union
|
||||
|
||||
from ray.experimental.dag import DAGNode
|
||||
from ray.experimental.dag.format_utils import get_dag_node_str
|
||||
from ray.experimental.dag.constants import DAGNODE_TYPE_KEY
|
||||
from ray.dag import DAGNode
|
||||
from ray.dag.format_utils import get_dag_node_str
|
||||
from ray.dag.constants import DAGNODE_TYPE_KEY
|
||||
|
||||
IN_CONTEXT_MANAGER = "__in_context_manager__"
|
||||
|
|
@ -16,7 +16,7 @@ else:
|
|||
from typing import List, Dict, Any, TypeVar, TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from ray.experimental.dag.dag_node import DAGNode
|
||||
from ray.dag.dag_node import DAGNode
|
||||
|
||||
T = TypeVar("T")
|
||||
|
||||
|
@ -43,9 +43,9 @@ class _PyObjScanner(ray.cloudpickle.CloudPickler):
|
|||
self._uuid = uuid.uuid4().hex
|
||||
_PyObjScanner._instances[self._uuid] = self
|
||||
# Register pickler override for DAGNode types.
|
||||
from ray.experimental.dag.function_node import FunctionNode
|
||||
from ray.experimental.dag.class_node import ClassNode, ClassMethodNode
|
||||
from ray.experimental.dag.input_node import InputNode, InputAttributeNode
|
||||
from ray.dag.function_node import FunctionNode
|
||||
from ray.dag.class_node import ClassNode, ClassMethodNode
|
||||
from ray.dag.input_node import InputNode, InputAttributeNode
|
||||
from ray.serve.deployment_node import DeploymentNode
|
||||
from ray.serve.deployment_method_node import DeploymentMethodNode
|
||||
from ray.serve.deployment_function_node import DeploymentFunctionNode
|
|
@ -2,7 +2,7 @@ import pytest
|
|||
import pickle
|
||||
|
||||
import ray
|
||||
from ray.experimental.dag import (
|
||||
from ray.dag import (
|
||||
DAGNode,
|
||||
PARENT_CLASS_NODE_KEY,
|
||||
PREV_CLASS_METHOD_CALL_KEY,
|
|
@ -4,7 +4,7 @@ request, for all DAGNode types.
|
|||
"""
|
||||
|
||||
import pytest
|
||||
from ray.experimental.dag.input_node import InputNode
|
||||
from ray.dag.input_node import InputNode
|
||||
from typing import Any, TypeVar
|
||||
|
||||
import ray
|
|
@ -21,10 +21,10 @@ def test_basic_dag_with_names_plot():
|
|||
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
to_file = os.path.join(tmpdir, "tmp.png")
|
||||
ray.experimental.dag.plot(dag, to_file)
|
||||
ray.dag.plot(dag, to_file)
|
||||
assert os.path.isfile(to_file)
|
||||
|
||||
graph = ray.experimental.dag.vis_utils.dag_to_dot(dag)
|
||||
graph = ray.dag.vis_utils.dag_to_dot(dag)
|
||||
to_string = graph.to_string()
|
||||
assert "tmp1 -> tmp3" in to_string
|
||||
assert "tmp2 -> tmp3" in to_string
|
||||
|
@ -49,10 +49,10 @@ def test_basic_dag_without_names_plot():
|
|||
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
to_file = os.path.join(tmpdir, "tmp.png")
|
||||
ray.experimental.dag.plot(dag, to_file)
|
||||
ray.dag.plot(dag, to_file)
|
||||
assert os.path.isfile(to_file)
|
||||
|
||||
graph = ray.experimental.dag.vis_utils.dag_to_dot(dag)
|
||||
graph = ray.dag.vis_utils.dag_to_dot(dag)
|
||||
to_string = graph.to_string()
|
||||
assert "a_5 -> a_4" in to_string
|
||||
assert "a_2 -> a_1" in to_string
|
|
@ -1,6 +1,6 @@
|
|||
from typing import Dict
|
||||
|
||||
from ray.experimental.dag import (
|
||||
from ray.dag import (
|
||||
DAGNode,
|
||||
InputNode,
|
||||
InputAttributeNode,
|
|
@ -1,9 +1,9 @@
|
|||
from ray.experimental.dag import DAGNode
|
||||
from ray.dag import DAGNode
|
||||
|
||||
import os
|
||||
import tempfile
|
||||
|
||||
from ray.experimental.dag.utils import DAGNodeNameGenerator
|
||||
from ray.dag.utils import DAGNodeNameGenerator
|
||||
|
||||
|
||||
def check_pydot_and_graphviz():
|
|
@ -168,7 +168,7 @@ class RemoteFunction:
|
|||
For Ray DAG building that creates static graph from decorated
|
||||
class or functions.
|
||||
"""
|
||||
from ray.experimental.dag.function_node import FunctionNode
|
||||
from ray.dag.function_node import FunctionNode
|
||||
|
||||
return FunctionNode(func_cls._function, args, kwargs, updated_options)
|
||||
|
||||
|
@ -342,6 +342,6 @@ class RemoteFunction:
|
|||
class or functions.
|
||||
"""
|
||||
|
||||
from ray.experimental.dag.function_node import FunctionNode
|
||||
from ray.dag.function_node import FunctionNode
|
||||
|
||||
return FunctionNode(self._function, args, kwargs, self._default_options)
|
||||
|
|
|
@ -18,8 +18,8 @@ from uvicorn.lifespan.on import LifespanOn
|
|||
|
||||
import ray
|
||||
from ray import cloudpickle
|
||||
from ray.dag import DAGNode
|
||||
from ray._private.usage import usage_lib
|
||||
from ray.experimental.dag import DAGNode
|
||||
from ray.util.annotations import PublicAPI
|
||||
|
||||
from ray.serve.application import Application
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
from ray.experimental.dag.input_node import InputNode
|
||||
from ray.dag.input_node import InputNode
|
||||
|
||||
__all__ = [
|
||||
"InputNode",
|
||||
|
|
|
@ -11,8 +11,8 @@ from typing import (
|
|||
)
|
||||
|
||||
from ray.serve.context import get_global_client
|
||||
from ray.experimental.dag.class_node import ClassNode
|
||||
from ray.experimental.dag.function_node import FunctionNode
|
||||
from ray.dag.class_node import ClassNode
|
||||
from ray.dag.function_node import FunctionNode
|
||||
from ray.serve.config import (
|
||||
AutoscalingConfig,
|
||||
DeploymentConfig,
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
from typing import Any, Dict, List
|
||||
|
||||
from ray.experimental.dag import DAGNode
|
||||
from ray.dag import DAGNode
|
||||
from ray.serve.deployment_method_executor_node import DeploymentMethodExecutorNode
|
||||
from ray.experimental.dag.constants import DAGNODE_TYPE_KEY, PARENT_CLASS_NODE_KEY
|
||||
from ray.experimental.dag.format_utils import get_dag_node_str
|
||||
from ray.dag.constants import DAGNODE_TYPE_KEY, PARENT_CLASS_NODE_KEY
|
||||
from ray.dag.format_utils import get_dag_node_str
|
||||
from ray.serve.handle import RayServeHandle
|
||||
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
from typing import Any, Dict, List, Union
|
||||
|
||||
from ray import ObjectRef
|
||||
from ray.experimental.dag import DAGNode
|
||||
from ray.dag import DAGNode
|
||||
from ray.serve.handle import RayServeSyncHandle, RayServeHandle
|
||||
from ray.experimental.dag.constants import DAGNODE_TYPE_KEY
|
||||
from ray.experimental.dag.format_utils import get_dag_node_str
|
||||
from ray.dag.constants import DAGNODE_TYPE_KEY
|
||||
from ray.dag.format_utils import get_dag_node_str
|
||||
|
||||
|
||||
class DeploymentFunctionExecutorNode(DAGNode):
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import inspect
|
||||
from typing import Any, Callable, Dict, List, Union
|
||||
|
||||
from ray.experimental.dag.dag_node import DAGNode
|
||||
from ray.experimental.dag.format_utils import get_dag_node_str
|
||||
from ray.dag.dag_node import DAGNode
|
||||
from ray.dag.format_utils import get_dag_node_str
|
||||
from ray.serve.deployment import Deployment, schema_to_deployment
|
||||
from ray.serve.config import DeploymentConfig
|
||||
from ray.serve.handle import RayServeLazySyncHandle
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
from contextlib import contextmanager
|
||||
import json
|
||||
|
||||
from ray.experimental.dag.class_node import ClassNode # noqa: F401
|
||||
from ray.experimental.dag.function_node import FunctionNode # noqa: F401
|
||||
from ray.experimental.dag.input_node import InputNode # noqa: F401
|
||||
from ray.experimental.dag import DAGNode # noqa: F401
|
||||
from ray.dag.class_node import ClassNode # noqa: F401
|
||||
from ray.dag.function_node import FunctionNode # noqa: F401
|
||||
from ray.dag.input_node import InputNode # noqa: F401
|
||||
from ray.dag import DAGNode # noqa: F401
|
||||
from ray.util.annotations import PublicAPI
|
||||
import ray.serve.client
|
||||
|
||||
|
|
|
@ -12,15 +12,16 @@ from ray.serve.deployment_method_executor_node import DeploymentMethodExecutorNo
|
|||
from ray.serve.deployment_function_executor_node import DeploymentFunctionExecutorNode
|
||||
from ray.serve.json_serde import DAGNodeEncoder
|
||||
|
||||
from ray.experimental.dag import (
|
||||
|
||||
from ray.dag import (
|
||||
DAGNode,
|
||||
ClassNode,
|
||||
ClassMethodNode,
|
||||
PARENT_CLASS_NODE_KEY,
|
||||
)
|
||||
from ray.experimental.dag.function_node import FunctionNode
|
||||
from ray.experimental.dag.input_node import InputNode
|
||||
from ray.experimental.dag.utils import DAGNodeNameGenerator
|
||||
from ray.dag.function_node import FunctionNode
|
||||
from ray.dag.input_node import InputNode
|
||||
from ray.dag.utils import DAGNodeNameGenerator
|
||||
|
||||
|
||||
def build(ray_dag_root_node: DAGNode) -> List[Deployment]:
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
from typing import Any, Dict, List
|
||||
|
||||
from ray import ObjectRef
|
||||
from ray.experimental.dag import DAGNode
|
||||
from ray.experimental.dag.constants import DAGNODE_TYPE_KEY, PARENT_CLASS_NODE_KEY
|
||||
from ray.experimental.dag.format_utils import get_dag_node_str
|
||||
from ray.dag import DAGNode
|
||||
from ray.dag.constants import DAGNODE_TYPE_KEY, PARENT_CLASS_NODE_KEY
|
||||
from ray.dag.format_utils import get_dag_node_str
|
||||
|
||||
|
||||
class DeploymentMethodExecutorNode(DAGNode):
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
from typing import Any, Dict, Optional, Tuple, List
|
||||
|
||||
from ray.experimental.dag import DAGNode
|
||||
from ray.experimental.dag.format_utils import get_dag_node_str
|
||||
from ray.experimental.dag.constants import PARENT_CLASS_NODE_KEY
|
||||
from ray.dag import DAGNode
|
||||
from ray.dag.format_utils import get_dag_node_str
|
||||
from ray.dag.constants import PARENT_CLASS_NODE_KEY
|
||||
from ray.serve.deployment import Deployment
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import inspect
|
||||
from typing import Any, Callable, Dict, Optional, List, Tuple, Union
|
||||
|
||||
from ray.experimental.dag import DAGNode
|
||||
from ray.dag import DAGNode
|
||||
from ray.serve.deployment_executor_node import DeploymentExecutorNode
|
||||
from ray.serve.deployment_function_executor_node import (
|
||||
DeploymentFunctionExecutorNode,
|
||||
|
@ -11,10 +11,10 @@ from ray.serve.deployment_method_executor_node import (
|
|||
)
|
||||
from ray.serve.handle import RayServeLazySyncHandle
|
||||
|
||||
from ray.dag.constants import PARENT_CLASS_NODE_KEY
|
||||
from ray.dag.format_utils import get_dag_node_str
|
||||
from ray.serve.deployment_method_node import DeploymentMethodNode
|
||||
from ray.serve.deployment_function_node import DeploymentFunctionNode
|
||||
from ray.experimental.dag.constants import PARENT_CLASS_NODE_KEY
|
||||
from ray.experimental.dag.format_utils import get_dag_node_str
|
||||
from ray.serve.deployment import Deployment, schema_to_deployment
|
||||
from ray.serve.config import DeploymentConfig
|
||||
from ray.serve.schema import DeploymentSchema
|
||||
|
|
|
@ -3,7 +3,7 @@ from importlib import import_module
|
|||
|
||||
import json
|
||||
|
||||
from ray.experimental.dag import (
|
||||
from ray.dag import (
|
||||
DAGNode,
|
||||
ClassNode,
|
||||
FunctionNode,
|
||||
|
|
|
@ -4,7 +4,7 @@ from ray.serve.tests.resources.test_modules import (
|
|||
combine,
|
||||
NESTED_HANDLE_KEY,
|
||||
)
|
||||
from ray.experimental.dag.input_node import InputNode
|
||||
from ray.dag.input_node import InputNode
|
||||
|
||||
|
||||
def get_simple_func_dag():
|
||||
|
|
|
@ -6,7 +6,7 @@ from python.ray.serve import constants as serve_constants
|
|||
import ray
|
||||
from ray import serve
|
||||
from ray.serve.drivers import DAGDriver
|
||||
from ray.experimental.dag.input_node import InputNode
|
||||
from ray.dag.input_node import InputNode
|
||||
from ray.serve.deployment_state import ReplicaState
|
||||
from ray._private.test_utils import SignalActor, wait_for_condition
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ import pytest
|
|||
|
||||
import ray
|
||||
from ray import serve
|
||||
from ray.experimental.dag import InputNode
|
||||
from ray.dag import InputNode
|
||||
from ray.serve.handle import RayServeLazySyncHandle
|
||||
from ray.serve.deployment_graph_build import (
|
||||
transform_ray_dag_to_serve_dag,
|
||||
|
@ -23,7 +23,7 @@ from ray.serve.tests.resources.test_dags import (
|
|||
get_multi_instantiation_class_nested_deployment_arg_dag,
|
||||
get_simple_func_dag,
|
||||
)
|
||||
from ray.experimental.dag.utils import DAGNodeNameGenerator
|
||||
from ray.dag.utils import DAGNodeNameGenerator
|
||||
|
||||
|
||||
def _validate_consistent_python_output(
|
||||
|
|
|
@ -3,10 +3,10 @@ import json
|
|||
from typing import TypeVar
|
||||
|
||||
import ray
|
||||
from ray.experimental.dag.dag_node import DAGNode
|
||||
from ray.experimental.dag.input_node import InputNode
|
||||
from ray.dag.dag_node import DAGNode
|
||||
from ray.dag.input_node import InputNode
|
||||
from ray import serve
|
||||
from ray.experimental.dag.utils import DAGNodeNameGenerator
|
||||
from ray.dag.utils import DAGNodeNameGenerator
|
||||
from ray.serve.handle import (
|
||||
RayServeSyncHandle,
|
||||
serve_handle_to_json_dict,
|
||||
|
|
|
@ -5,8 +5,8 @@ import tempfile
|
|||
|
||||
import ray
|
||||
from ray import serve
|
||||
from ray.experimental.dag import DAGNode
|
||||
from ray.experimental.dag.utils import DAGNodeNameGenerator
|
||||
from ray.dag import DAGNode
|
||||
from ray.dag.utils import DAGNodeNameGenerator
|
||||
from ray.serve.deployment_graph import RayServeDAGHandle
|
||||
from ray.serve.deployment_graph import InputNode
|
||||
from ray.serve.drivers import DAGDriver
|
||||
|
@ -130,10 +130,10 @@ def test_serve_pipeline_single_func_no_input_plot():
|
|||
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
to_file = os.path.join(tmpdir, "tmp.png")
|
||||
ray.experimental.dag.plot(serve_dag, to_file)
|
||||
ray.dag.plot(serve_dag, to_file)
|
||||
assert os.path.isfile(to_file)
|
||||
|
||||
graph = ray.experimental.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
graph = ray.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
to_string = graph.to_string()
|
||||
assert "fn_hello -> NoargDriver" in to_string
|
||||
|
||||
|
@ -146,10 +146,10 @@ def test_serve_pipeline_single_func_deployment_dag_plot():
|
|||
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
to_file = os.path.join(tmpdir, "tmp.png")
|
||||
ray.experimental.dag.plot(serve_dag, to_file)
|
||||
ray.dag.plot(serve_dag, to_file)
|
||||
assert os.path.isfile(to_file)
|
||||
|
||||
graph = ray.experimental.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
graph = ray.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
to_string = graph.to_string()
|
||||
assert "INPUT_NODE -> INPUT_ATTRIBUTE_NODE" in to_string
|
||||
assert "INPUT_NODE -> INPUT_ATTRIBUTE_NODE_1" in to_string
|
||||
|
@ -175,10 +175,10 @@ def test_serve_pipeline_chained_function_plot():
|
|||
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
to_file = os.path.join(tmpdir, "tmp.png")
|
||||
ray.experimental.dag.plot(serve_dag, to_file)
|
||||
ray.dag.plot(serve_dag, to_file)
|
||||
assert os.path.isfile(to_file)
|
||||
|
||||
graph = ray.experimental.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
graph = ray.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
to_string = graph.to_string()
|
||||
assert "INPUT_NODE -> func_1" in to_string
|
||||
assert "INPUT_NODE -> func_2" in to_string
|
||||
|
@ -195,10 +195,10 @@ def test_serve_pipeline_class_with_class_method_plot():
|
|||
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
to_file = os.path.join(tmpdir, "tmp.png")
|
||||
ray.experimental.dag.plot(serve_dag, to_file)
|
||||
ray.dag.plot(serve_dag, to_file)
|
||||
assert os.path.isfile(to_file)
|
||||
|
||||
graph = ray.experimental.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
graph = ray.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
to_string = graph.to_string()
|
||||
assert "Model -> forward" in to_string
|
||||
assert "INPUT_NODE -> forward" in to_string
|
||||
|
@ -217,10 +217,10 @@ def test_serve_pipeline_func_class_with_class_method_plot():
|
|||
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
to_file = os.path.join(tmpdir, "tmp.png")
|
||||
ray.experimental.dag.plot(serve_dag, to_file)
|
||||
ray.dag.plot(serve_dag, to_file)
|
||||
assert os.path.isfile(to_file)
|
||||
|
||||
graph = ray.experimental.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
graph = ray.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
to_string = graph.to_string()
|
||||
assert "INPUT_NODE -> INPUT_ATTRIBUTE_NODE" in to_string
|
||||
assert "INPUT_NODE -> INPUT_ATTRIBUTE_NODE_1" in to_string
|
||||
|
@ -246,10 +246,10 @@ def test_serve_pipeline_multi_instantiation_class_deployment_in_init_args_plot()
|
|||
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
to_file = os.path.join(tmpdir, "tmp.png")
|
||||
ray.experimental.dag.plot(serve_dag, to_file)
|
||||
ray.dag.plot(serve_dag, to_file)
|
||||
assert os.path.isfile(to_file)
|
||||
|
||||
graph = ray.experimental.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
graph = ray.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
to_string = graph.to_string()
|
||||
assert "Model -> Combine" in to_string
|
||||
assert "Model_1 -> Combine" in to_string
|
||||
|
@ -268,10 +268,10 @@ def test_serve_pipeline_test_shared_deployment_handle_plot():
|
|||
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
to_file = os.path.join(tmpdir, "tmp.png")
|
||||
ray.experimental.dag.plot(serve_dag, to_file)
|
||||
ray.dag.plot(serve_dag, to_file)
|
||||
assert os.path.isfile(to_file)
|
||||
|
||||
graph = ray.experimental.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
graph = ray.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
to_string = graph.to_string()
|
||||
assert "Model -> Combine" in to_string
|
||||
assert "Combine -> __call__" in to_string
|
||||
|
@ -290,10 +290,10 @@ def test_serve_pipeline_multi_instantiation_class_nested_deployment_arg_dag_plot
|
|||
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
to_file = os.path.join(tmpdir, "tmp.png")
|
||||
ray.experimental.dag.plot(serve_dag, to_file)
|
||||
ray.dag.plot(serve_dag, to_file)
|
||||
assert os.path.isfile(to_file)
|
||||
|
||||
graph = ray.experimental.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
graph = ray.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
to_string = graph.to_string()
|
||||
assert "Model -> Combine" in to_string
|
||||
assert "Model_1 -> Combine" in to_string
|
||||
|
@ -311,10 +311,10 @@ def test_serve_pipeline_class_factory_plot():
|
|||
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
to_file = os.path.join(tmpdir, "tmp.png")
|
||||
ray.experimental.dag.plot(serve_dag, to_file)
|
||||
ray.dag.plot(serve_dag, to_file)
|
||||
assert os.path.isfile(to_file)
|
||||
|
||||
graph = ray.experimental.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
graph = ray.dag.vis_utils.dag_to_dot(serve_dag)
|
||||
to_string = graph.to_string()
|
||||
assert "MyInlineClass -> get" in to_string
|
||||
assert "get -> NoargDriver" in to_string
|
||||
|
|
|
@ -3,8 +3,8 @@ from typing import Dict, Set, List, Tuple, Union, Optional, Any
|
|||
import time
|
||||
|
||||
import ray
|
||||
from ray.experimental.dag import DAGNode
|
||||
from ray.experimental.dag.input_node import DAGInputData
|
||||
from ray.dag import DAGNode
|
||||
from ray.dag.input_node import DAGInputData
|
||||
from ray.remote_function import RemoteFunction
|
||||
|
||||
from ray.workflow import execution
|
||||
|
|
|
@ -7,7 +7,7 @@ from ray.remote_function import RemoteFunction
|
|||
from ray.workflow.storage import Storage
|
||||
from ray.workflow.common import WorkflowStatus
|
||||
|
||||
from ray.experimental.dag import DAGNode
|
||||
from ray.dag import DAGNode
|
||||
|
||||
T0 = TypeVar("T0")
|
||||
T1 = TypeVar("T1")
|
||||
|
|
|
@ -2,8 +2,8 @@ from typing import Any
|
|||
|
||||
from ray.workflow.common import WORKFLOW_OPTIONS, WorkflowStepRuntimeOptions, StepType
|
||||
|
||||
from ray.experimental.dag import DAGNode, FunctionNode, InputNode
|
||||
from ray.experimental.dag.input_node import InputAttributeNode, DAGInputData
|
||||
from ray.dag import DAGNode, FunctionNode, InputNode
|
||||
from ray.dag.input_node import InputAttributeNode, DAGInputData
|
||||
|
||||
|
||||
def _make_workflow_step_function(node: FunctionNode):
|
||||
|
|
|
@ -4,7 +4,7 @@ import pytest
|
|||
|
||||
import ray
|
||||
from ray import workflow
|
||||
from ray.experimental.dag import InputNode
|
||||
from ray.dag import InputNode
|
||||
|
||||
|
||||
def test_dag_to_workflow_execution(workflow_start_regular_shared):
|
||||
|
|
|
@ -13,7 +13,7 @@ from typing import Optional
|
|||
|
||||
import ray
|
||||
from ray import serve
|
||||
from ray.experimental.dag import InputNode
|
||||
from ray.dag import InputNode
|
||||
from ray.serve.drivers import DAGDriver
|
||||
from serve_test_cluster_utils import (
|
||||
setup_local_single_node_cluster,
|
||||
|
|
|
@ -19,7 +19,7 @@ from typing import Optional
|
|||
|
||||
import ray
|
||||
from ray import serve
|
||||
from ray.experimental.dag import InputNode
|
||||
from ray.dag import InputNode
|
||||
from ray.serve.drivers import DAGDriver
|
||||
from serve_test_cluster_utils import (
|
||||
setup_local_single_node_cluster,
|
||||
|
|
Loading…
Add table
Reference in a new issue