Python 3.17 中待移除的項目
**************************

* "collections.abc"：

  * "collections.abc.ByteString" 預計在 Python 3.17 中移除。

    使用 "isinstance(obj, collections.abc.Buffer)" 來測試 "obj" 是否在
    runtime 實作了緩衝區協定。在型別註解的使用中，請用 "Buffer" 或明確
    指定你的程式碼所支援型別的聯集（例如 "bytes | bytearray |
    memoryview"）。

    "ByteString" 最初被設計為一個抽象類別，以作為 "bytes" 和
    "bytearray" 的超型別 (supertype)。然而由於 ABC 從未擁有任何方法，
    知道一個物件是 "ByteString" 的實例從未真正告訴你任何關於該物件的有
    用資訊。其他常見的緩衝區型別如 "memoryview" 也從未被理解為
    "ByteString" 的子型別（無論是在 runtime 還是由靜態型別檢查器）。

    更多細節請見 **PEP 688**。（由 Shantanu Jain 於 gh-91896 貢獻。）

* "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" 是否在
    runtime 實作了緩衝區協定。在型別註解的使用中，請用 "Buffer" 或明確
    指定你的程式碼所支援型別的聯集（例如 "bytes | bytearray |
    memoryview"）。

    "ByteString" 最初被設計為一個抽象類別，以作為 "bytes" 和
    "bytearray" 的超型別 (supertype)。然而由於 ABC 從未擁有任何方法，
    知道一個物件是 "ByteString" 的實例從未真正告訴你任何關於該物件的有
    用資訊。其他常見的緩衝區型別如 "memoryview" 也從未被理解為
    "ByteString" 的子型別（無論是在 runtime 還是由靜態型別檢查器）。

    更多細節請見 **PEP 688**。（由 Shantanu Jain 於 gh-91896 貢獻。）
