| |
| from ray._private import log |
| import logging |
| import os |
| import sys |
|
|
| log.generate_logging_config() |
| logger = logging.getLogger(__name__) |
|
|
|
|
| def _configure_system(): |
| import os |
| import platform |
| import sys |
|
|
| """Wraps system configuration to avoid 'leaking' variables into ray.""" |
|
|
| |
| if "pickle5" in sys.modules: |
| if sys.version_info >= (3, 8): |
| logger.warning( |
| "Package pickle5 becomes unnecessary in Python 3.8 and above. " |
| "Its presence may confuse libraries including Ray. " |
| "Please uninstall the package." |
| ) |
|
|
| import importlib.metadata |
|
|
| try: |
| version_str = importlib.metadata.version("pickle5") |
| version = tuple(int(n) for n in version_str.split(".")) |
| if version < (0, 0, 10): |
| logger.warning( |
| "Although not used by Ray, a version of pickle5 that leaks memory " |
| "is found in the environment. Please run 'pip install pickle5 -U' " |
| "to upgrade." |
| ) |
| except importlib.metadata.PackageNotFoundError: |
| logger.warning( |
| "You are using the 'pickle5' module, but " |
| "the exact version is unknown (possibly carried as " |
| "an internal component by another module). Please " |
| "make sure you are using pickle5 >= 0.0.10 because " |
| "previous versions may leak memory." |
| ) |
|
|
| |
| |
| thirdparty_files = os.path.join( |
| os.path.abspath(os.path.dirname(__file__)), "thirdparty_files" |
| ) |
| sys.path.insert(0, thirdparty_files) |
|
|
| if ( |
| platform.system() == "Linux" |
| and "Microsoft".lower() in platform.release().lower() |
| ): |
| from ray._private import compat |
|
|
| compat.patch_psutil() |
|
|
| |
| |
| python_shared_lib_suffix = ".so" if sys.platform != "win32" else ".pyd" |
| so_path = os.path.join( |
| os.path.dirname(__file__), "_raylet" + python_shared_lib_suffix |
| ) |
| if os.path.exists(so_path): |
| import ctypes |
| from ctypes import CDLL |
|
|
| CDLL(so_path, ctypes.RTLD_GLOBAL) |
|
|
|
|
| _configure_system() |
| |
| del _configure_system |
|
|
| from ray import _version |
|
|
| __commit__ = _version.commit |
| __version__ = _version.version |
|
|
| import ray._raylet |
|
|
| from ray._raylet import ( |
| ActorClassID, |
| ActorID, |
| NodeID, |
| Config as _Config, |
| JobID, |
| WorkerID, |
| FunctionID, |
| ObjectID, |
| ObjectRef, |
| ObjectRefGenerator, |
| DynamicObjectRefGenerator, |
| TaskID, |
| UniqueID, |
| Language, |
| PlacementGroupID, |
| ClusterID, |
| ) |
|
|
| _config = _Config() |
|
|
| from ray._private.state import ( |
| nodes, |
| timeline, |
| cluster_resources, |
| available_resources, |
| ) |
| from ray._private.worker import ( |
| LOCAL_MODE, |
| SCRIPT_MODE, |
| WORKER_MODE, |
| RESTORE_WORKER_MODE, |
| SPILL_WORKER_MODE, |
| cancel, |
| get, |
| get_actor, |
| get_gpu_ids, |
| init, |
| is_initialized, |
| put, |
| kill, |
| remote, |
| shutdown, |
| wait, |
| ) |
|
|
| from ray._private.ray_logging.logging_config import LoggingConfig |
|
|
| |
| |
| import ray.actor |
| from ray.actor import method |
|
|
| |
| from ray.cross_language import java_function, java_actor_class |
| from ray.runtime_context import get_runtime_context |
| from ray import internal |
| from ray import util |
| from ray import _private |
|
|
| |
| from ray.client_builder import client, ClientBuilder |
|
|
|
|
| class _DeprecationWrapper: |
| def __init__(self, name, real_worker): |
| self._name = name |
| self._real_worker = real_worker |
| self._warned = set() |
|
|
| def __getattr__(self, attr): |
| value = getattr(self._real_worker, attr) |
| if attr not in self._warned: |
| self._warned.add(attr) |
| logger.warning( |
| f"DeprecationWarning: `ray.{self._name}.{attr}` is a private " |
| "attribute and access will be removed in a future Ray version." |
| ) |
| return value |
|
|
|
|
| |
| worker = _DeprecationWrapper("worker", ray._private.worker) |
| ray_constants = _DeprecationWrapper("ray_constants", ray._private.ray_constants) |
| serialization = _DeprecationWrapper("serialization", ray._private.serialization) |
| state = _DeprecationWrapper("state", ray._private.state) |
|
|
|
|
| |
| __all__ = [ |
| "__version__", |
| "_config", |
| "get_runtime_context", |
| "autoscaler", |
| "available_resources", |
| "cancel", |
| "client", |
| "ClientBuilder", |
| "cluster_resources", |
| "get", |
| "get_actor", |
| "get_gpu_ids", |
| "init", |
| "is_initialized", |
| "java_actor_class", |
| "java_function", |
| "cpp_function", |
| "kill", |
| "Language", |
| "method", |
| "nodes", |
| "put", |
| "remote", |
| "shutdown", |
| "show_in_dashboard", |
| "timeline", |
| "wait", |
| "LOCAL_MODE", |
| "SCRIPT_MODE", |
| "WORKER_MODE", |
| "LoggingConfig", |
| ] |
|
|
| |
| AUTO_INIT_APIS = { |
| "cancel", |
| "get", |
| "get_actor", |
| "get_gpu_ids", |
| "kill", |
| "put", |
| "wait", |
| "get_runtime_context", |
| } |
|
|
| |
| NON_AUTO_INIT_APIS = { |
| "ClientBuilder", |
| "LOCAL_MODE", |
| "Language", |
| "SCRIPT_MODE", |
| "WORKER_MODE", |
| "__version__", |
| "_config", |
| "autoscaler", |
| "available_resources", |
| "client", |
| "cluster_resources", |
| "cpp_function", |
| "init", |
| "is_initialized", |
| "java_actor_class", |
| "java_function", |
| "method", |
| "nodes", |
| "remote", |
| "show_in_dashboard", |
| "shutdown", |
| "timeline", |
| "LoggingConfig", |
| } |
|
|
| assert set(__all__) == AUTO_INIT_APIS | NON_AUTO_INIT_APIS |
| from ray._private.auto_init_hook import wrap_auto_init_for_all_apis |
|
|
| wrap_auto_init_for_all_apis(AUTO_INIT_APIS) |
| del wrap_auto_init_for_all_apis |
|
|
| |
| __all__ += [ |
| "actor", |
| "autoscaler", |
| "data", |
| "internal", |
| "util", |
| "widgets", |
| "workflow", |
| ] |
|
|
| |
| __all__ += [ |
| "ActorClassID", |
| "ActorID", |
| "NodeID", |
| "JobID", |
| "WorkerID", |
| "FunctionID", |
| "ObjectID", |
| "ObjectRef", |
| "ObjectRefGenerator", |
| "DynamicObjectRefGenerator", |
| "TaskID", |
| "UniqueID", |
| "PlacementGroupID", |
| ] |
|
|
|
|
| |
| def __getattr__(name: str): |
| import importlib |
|
|
| if name in ["data", "workflow", "autoscaler"]: |
| return importlib.import_module("." + name, __name__) |
| raise AttributeError(f"module {__name__!r} has no attribute {name!r}") |
|
|
|
|
| del os |
| del logging |
| del sys |
|
|