计划在 Python 3.17 中移除
*************************

* "datetime":

  * 使用不带年份的包含 "%e" (月份日期序号) 的格式字符串的 "strptime()"
    调用自 Python 3.15 起已被弃用。 （由 Stan Ulbrych 在 gh-70647 中贡
    献。）

* "collections.abc":

  * "collections.abc.ByteString" 计划在 Python 3.17 中移除。

    使用 "isinstance(obj, collections.abc.Buffer)" 来在运行时测试
    "obj" 是否实现了 缓冲区协议。要用于类型标注，则使用 "Buffer" 或者
    显式指明你的代码所支持的类型的并集 (例如 "bytes | bytearray |
    memoryview")。

    "ByteString" 原本是想作为 "bytes" 和 "bytearray" 的超类型的抽象基
    类提供。 不过，由于该 ABC 从未有过任何方法，知道一个对象是
    "ByteString" 的实例并不能真正告诉你有关该对象的任何有用信息。 其他
    常见缓冲区类型如 "memoryview" 同样不能被当作是 "ByteString" 的子类
    型（无论是在运行时还是对于静态类型检查器）。

    请参阅 **PEP 688** 了解详情。 （由 Shantanu Jain 在 gh-91896 中贡
    献。）

* "encodings":

  * 将非 ascii *encoding* 名称传给 "encodings.normalize_encoding()" 的
    做法已被弃用并计划在 Python 3.17 中移除。 （由 Stan Ulbrych 在
    gh-136702 中贡献。）

* "webbrowser":

  * "webbrowser.MacOSXOSAScript" 已被弃用并改用 "webbrowser.MacOS"。
    (gh-137586)

* "typing":

  * 在 Python 3.14 之前，旧式的联合是通过私有类
    "typing._UnionGenericAlias" 实现的。 实现已不再需要该类，但为向后
    兼容性保留了该类，并计划在 Python 3.17 中删除。用户应使用已写入文
    档的内省助手函数，如 "typing.get_origin()" 和 "typing.get_args()"
    ，而不是依赖于私有的实现细节。

  * "typing.ByteString" 自 Python 3.9 起已被弃用，计划在 Python 3.17
    中移除。

    使用 "isinstance(obj, collections.abc.Buffer)" 来在运行时测试
    "obj" 是否实现了 缓冲区协议。要用于类型标注，则使用 "Buffer" 或者
    显式指明你的代码所支持的类型的并集 (例如 "bytes | bytearray |
    memoryview")。

    "ByteString" 原本是想作为 "bytes" 和 "bytearray" 的超类型的抽象基
    类提供。 不过，由于该 ABC 从未有过任何方法，知道一个对象是
    "ByteString" 的实例并不能真正告诉你有关该对象的任何有用信息。 其他
    常见缓冲区类型如 "memoryview" 同样不能被当作是 "ByteString" 的子类
    型（无论是在运行时还是对于静态类型检查器）。

    请参阅 **PEP 688** 了解详情。 （由 Shantanu Jain 在 gh-91896 中贡
    献。）
