| 123456789101112131415161718192021222324252627282930313233343536373839 |
- """
- 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)
|