Skip to content

Commit b8ee0ec

Browse files
vaishdho1elliot-barn
authored andcommitted
[core] Migrate serialization from _private to _common (#56590)
Moved `ray/_private/serialization.py` into `ray/_common`. Moved `test_serialization.py` from file `ray/tests` into `ray/_common/tests`. #53478 Signed-off-by: Vaishnavi Panchavati <[email protected]> Signed-off-by: elliot-barn <[email protected]>
1 parent 5c80b9f commit b8ee0ec

File tree

8 files changed

+40
-186
lines changed

8 files changed

+40
-186
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import io
2+
import logging
3+
from typing import TYPE_CHECKING, Any
4+
5+
if TYPE_CHECKING:
6+
pass
7+
8+
9+
import ray._private.utils
10+
import ray.cloudpickle as pickle
11+
import ray.exceptions
12+
from ray._private import ray_constants
13+
from ray.util import inspect_serializability
14+
15+
logger = logging.getLogger(__name__)
16+
ALLOW_OUT_OF_BAND_OBJECT_REF_SERIALIZATION = ray_constants.env_bool(
17+
"RAY_allow_out_of_band_object_ref_serialization", True
18+
)
19+
20+
21+
def pickle_dumps(obj: Any, error_msg: str):
22+
"""Wrap cloudpickle.dumps to provide better error message
23+
when the object is not serializable.
24+
"""
25+
try:
26+
return pickle.dumps(obj)
27+
except (TypeError, ray.exceptions.OufOfBandObjectRefSerializationException) as e:
28+
sio = io.StringIO()
29+
inspect_serializability(obj, print_file=sio)
30+
msg = f"{error_msg}:\n{sio.getvalue()}"
31+
if isinstance(e, TypeError):
32+
raise TypeError(msg) from e
33+
else:
34+
raise ray.exceptions.OufOfBandObjectRefSerializationException(msg)

python/ray/_private/function_manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
import ray
1616
import ray._private.profiling as profiling
1717
from ray import cloudpickle as pickle
18+
from ray._common.serialization import pickle_dumps
1819
from ray._private import ray_constants
1920
from ray._private.inspect_util import (
2021
is_class_method,
2122
is_function_or_method,
2223
is_static_method,
2324
)
2425
from ray._private.ray_constants import KV_NAMESPACE_FUNCTION_TABLE
25-
from ray._private.serialization import pickle_dumps
2626
from ray._private.utils import (
2727
check_oversized_function,
2828
ensure_str,

python/ray/_private/serialization.py

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import io
21
import logging
32
import threading
43
import traceback
@@ -54,7 +53,7 @@
5453
WorkerCrashedError,
5554
)
5655
from ray.experimental.compiled_dag_ref import CompiledDAGRef
57-
from ray.util import inspect_serializability, serialization_addons
56+
from ray.util import serialization_addons
5857

5958
logger = logging.getLogger(__name__)
6059
ALLOW_OUT_OF_BAND_OBJECT_REF_SERIALIZATION = ray_constants.env_bool(
@@ -66,22 +65,6 @@ class DeserializationError(Exception):
6665
pass
6766

6867

69-
def pickle_dumps(obj: Any, error_msg: str):
70-
"""Wrap cloudpickle.dumps to provide better error message
71-
when the object is not serializable.
72-
"""
73-
try:
74-
return pickle.dumps(obj)
75-
except (TypeError, ray.exceptions.OufOfBandObjectRefSerializationException) as e:
76-
sio = io.StringIO()
77-
inspect_serializability(obj, print_file=sio)
78-
msg = f"{error_msg}:\n{sio.getvalue()}"
79-
if isinstance(e, TypeError):
80-
raise TypeError(msg) from e
81-
else:
82-
raise ray.exceptions.OufOfBandObjectRefSerializationException(msg)
83-
84-
8568
def _object_ref_deserializer(
8669
binary, call_site, owner_address, object_status, tensor_transport_val
8770
):

python/ray/air/util/object_extensions/arrow.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
from packaging.version import parse as parse_version
77

88
import ray.air.util.object_extensions.pandas
9+
from ray._common.serialization import pickle_dumps
910
from ray._private.arrow_utils import get_pyarrow_version
10-
from ray._private.serialization import pickle_dumps
1111
from ray.util.annotations import PublicAPI
1212

1313
MIN_PYARROW_VERSION_SCALAR_SUBCLASS = parse_version("9.0.0")

python/ray/remote_function.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010
from ray import Language, cross_language
1111
from ray._common import ray_option_utils
1212
from ray._common.ray_option_utils import _warn_if_using_deprecated_placement_group
13+
from ray._common.serialization import pickle_dumps
1314
from ray._private.auto_init_hook import wrap_auto_init
1415
from ray._private.client_mode_hook import (
1516
client_mode_convert_function,
1617
client_mode_should_convert,
1718
)
18-
from ray._private.serialization import pickle_dumps
1919
from ray._private.utils import get_runtime_env_info, parse_runtime_env_for_task_or_actor
2020
from ray._raylet import (
2121
STREAMING_GENERATOR_RETURN,

python/ray/serve/_private/benchmarks/serialization/serialization_benchmark.py

Lines changed: 0 additions & 163 deletions
This file was deleted.

python/ray/serve/_private/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
PositiveInt,
1717
validator,
1818
)
19+
from ray._common.serialization import pickle_dumps
1920
from ray._common.utils import resources_from_ray_options
20-
from ray._private.serialization import pickle_dumps
2121
from ray.serve._private.constants import (
2222
DEFAULT_GRACEFUL_SHUTDOWN_TIMEOUT_S,
2323
DEFAULT_GRACEFUL_SHUTDOWN_WAIT_LOOP_S,

python/ray/serve/api.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
import ray
1212
from ray import cloudpickle
13-
from ray._private.serialization import pickle_dumps
13+
from ray._common.serialization import pickle_dumps
1414
from ray.serve._private.build_app import build_app
1515
from ray.serve._private.config import (
1616
DeploymentConfig,

0 commit comments

Comments
 (0)