Files
ray-project--ray/python/ray/util/serialization_addons.py
T
2026-07-13 13:17:40 +08:00

40 lines
1.1 KiB
Python

"""
This module is intended for implementing internal serializers for some
site packages.
"""
import sys
from ray.util.annotations import DeveloperAPI
@DeveloperAPI
def register_starlette_serializer(serialization_context):
try:
import starlette.datastructures
except ImportError:
return
# Starlette's app.state object is not serializable
# because it overrides __getattr__
serialization_context._register_cloudpickle_serializer(
starlette.datastructures.State,
custom_serializer=lambda s: s._state,
custom_deserializer=lambda s: starlette.datastructures.State(s),
)
@DeveloperAPI
def apply(serialization_context):
from ray._common.pydantic_compat import register_pydantic_serializers
register_pydantic_serializers(serialization_context)
register_starlette_serializer(serialization_context)
if sys.platform != "win32":
from ray._private.arrow_serialization import (
_register_custom_datasets_serializers,
)
_register_custom_datasets_serializers(serialization_context)