API 稳定性#

Ray 为其 Ray 核心和库的公共 API 提供了稳定性保证,这些 API 相应地进行了装饰/标记。

一个API可以被标记为:

  • 公共API,这意味着该API对最终用户开放。公共API有三个子级别(alpha、beta、稳定),如下所述。

  • 开发者API,这意味着该API明确地向*高级* Ray用户和库开发者开放

  • 已弃用,可能在未来的Ray版本中被移除。

Ray 的 PublicAPI 稳定性定义基于 Google 稳定性级别指南,略有不同:

阿尔法#

一个 alpha 组件会经历快速迭代,有一组已知的用户 必须 对变化保持宽容。用户数量 应该 是一个经过筛选、可管理的集合,以便能够个别地与所有用户进行沟通。

在alpha组件中,**必须**允许并预期会有重大变更,用户**必须**不对稳定性有任何期望。

Beta#

一个 beta 组件 必须 被认为是完整的,并且准备好在公开测试后宣布为稳定。

由于测试版组件的用户对变化的容忍度较低,测试版组件 应该 尽可能稳定;然而,测试版组件 必须 允许随时间变化。这些变化 应该 是最小的,但 可能 包括对测试版组件的向后不兼容的更改。

向后不兼容的更改 必须 只能在合理的弃用期之后进行,以便为用户提供迁移代码的机会。

稳定#

一个 稳定 的组件 必须 在整个主要API版本的生命周期内得到完全支持。因为用户期望从标记为稳定的组件中获得这种稳定性,所以在主要版本内对这些组件 必须 没有破坏性的更改(除非在特殊情况下)。

文档字符串#

ray.util.annotations.PublicAPI(*args, **kwargs)[源代码]#

用于记录公共API的注释。

公共API是Ray向最终用户公开的类和方法。

如果 stability="alpha",API 可以被能够容忍并预期重大变更的高级用户使用。

如果 stability="beta",API 仍然是公开的,早期用户可以使用,但可能会发生变化。

如果 stability="stable",API 将在 Ray 的次要版本之间保持向后兼容(例如,Ray 1.4 -> 1.8)。

有关稳定性级别的完整定义,请参阅 Ray API 稳定性定义

参数:
  • stability – {“稳定版”, “测试版”, “内测版”} 之一。

  • api_group – 可选。仅用于文档渲染目的。同一组的API将在API文档页面中分组显示。

示例

>>> from ray.util.annotations import PublicAPI
>>> @PublicAPI
... def func(x):
...     return x
>>> @PublicAPI(stability="beta")
... def func(y):
...     return y
ray.util.annotations.DeveloperAPI(*args, **kwargs)[源代码]#

用于记录开发者API的注释。

开发者API是显式暴露给高级Ray用户和库开发者的低级方法。它们的接口可能会在Ray的次要版本之间发生变化。

示例

>>> from ray.util.annotations import DeveloperAPI
>>> @DeveloperAPI
... def func(x):
...     return x
ray.util.annotations.Deprecated(*args, **kwargs)[源代码]#

用于记录已弃用API的注释。

不推荐使用的API可能在Ray的未来版本中被移除。

参数:

message – 一条帮助用户理解弃用原因并提供迁移路径的消息。

示例

>>> from ray.util.annotations import Deprecated
>>> @Deprecated
... def func(x):
...     return x
>>> @Deprecated(message="g() is deprecated because the API is error "
...   "prone. Please call h() instead.")
... def g(y):
...     return y

未装饰的函数通常可以认为不属于 Ray 公共 API。