> **Источник:** https://python-all.ru/3.15/deprecations/pending-removal-in-3.17.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# Запланировано к удалению в Python 3.17

- [`datetime`](https://python-all.ru/3.15/library/datetime.html#module-datetime):

  - [`strptime()`](https://python-all.ru/3.15/library/datetime.html#datetime.datetime.strptime) вызовы со строкой формата, содержащей `%e` (день месяца) без указания года. Это объявлено устаревшим начиная с Python 3.15. (Автор: Stan Ulbrych в [gh-70647](https://python-all.ru/3.15/deprecations/pending-removal-in-3.17.html).)
- [`collections.abc`](https://python-all.ru/3.15/library/collections.abc.html#module-collections.abc):

  - [`collections.abc.ByteString`](https://python-all.ru/3.15/library/collections.abc.html#collections.abc.ByteString) запланирован к удалению в Python 3.17.

    Используйте `isinstance(obj, collections.abc.Buffer)` для проверки, реализует ли `obj` [протокол буфера](https://python-all.ru/3.15/c-api/buffer.html#bufferobjects) во время выполнения. Для использования в аннотациях типов используйте [`Buffer`](https://python-all.ru/3.15/library/collections.abc.html#collections.abc.Buffer) или объединение, которое явно указывает типы, поддерживаемые вашим кодом (например, `bytes | bytearray | memoryview`).

    `ByteString` изначально задумывался как абстрактный класс, который должен был служить супертипом как для [`bytes`](https://python-all.ru/3.15/library/stdtypes.html#bytes), так и для [`bytearray`](https://python-all.ru/3.15/library/stdtypes.html#bytearray). Однако, поскольку у ABC никогда не было методов, знание того, что объект является экземпляром `ByteString`, никогда не давало полезной информации об объекте. Другие распространённые типы буферов, такие как [`memoryview`](https://python-all.ru/3.15/library/stdtypes.html#memoryview), также никогда не рассматривались как подтипы `ByteString` (ни во время выполнения, ни статическими проверками типов).

    См. [**PEP 688**](https://python-all.ru/3.15/deprecations/pending-removal-in-3.17.html) для получения подробностей. (Автор: Shantanu Jain в [gh-91896](https://python-all.ru/3.15/deprecations/pending-removal-in-3.17.html).)
- [`encodings`](https://python-all.ru/3.15/library/codecs.html#module-encodings):

  - Передача *кодировок*, не являющихся ASCII, в [`encodings.normalize_encoding()`](https://python-all.ru/3.15/library/codecs.html#encodings.normalize_encoding) объявлена устаревшей и запланирована к удалению в Python 3.17. (Автор: Stan Ulbrych в [gh-136702](https://python-all.ru/3.15/deprecations/pending-removal-in-3.17.html).)
- [`webbrowser`](https://python-all.ru/3.15/library/webbrowser.html#module-webbrowser):

  - `webbrowser.MacOSXOSAScript` объявлен устаревшим в пользу `webbrowser.MacOS`. ([gh-137586](https://python-all.ru/3.15/deprecations/pending-removal-in-3.17.html))
- [`typing`](https://python-all.ru/3.15/library/typing.html#module-typing):

  - До Python 3.14 старые объединения реализовывались с помощью приватного класса `typing._UnionGenericAlias`. Этот класс больше не нужен для реализации, но он сохранён для обратной совместимости, его удаление запланировано на Python 3.17. Пользователям следует использовать документированные вспомогательные средства интроспекции, такие как [`typing.get_origin()`](https://python-all.ru/3.15/library/typing.html#typing.get_origin) и [`typing.get_args()`](https://python-all.ru/3.15/library/typing.html#typing.get_args), вместо того чтобы полагаться на детали приватной реализации.
  - [`typing.ByteString`](https://python-all.ru/3.15/library/typing.html#typing.ByteString), устаревший с Python 3.9, запланирован к удалению в Python 3.17.

    Используйте `isinstance(obj, collections.abc.Buffer)` для проверки, реализует ли `obj` [протокол буфера](https://python-all.ru/3.15/c-api/buffer.html#bufferobjects) во время выполнения. Для использования в аннотациях типов используйте [`Buffer`](https://python-all.ru/3.15/library/collections.abc.html#collections.abc.Buffer) или объединение, которое явно указывает типы, поддерживаемые вашим кодом (например, `bytes | bytearray | memoryview`).

    `ByteString` изначально задумывался как абстрактный класс, который должен был служить супертипом как для [`bytes`](https://python-all.ru/3.15/library/stdtypes.html#bytes), так и для [`bytearray`](https://python-all.ru/3.15/library/stdtypes.html#bytearray). Однако, поскольку у ABC никогда не было методов, знание того, что объект является экземпляром `ByteString`, никогда не давало полезной информации об объекте. Другие распространённые типы буферов, такие как [`memoryview`](https://python-all.ru/3.15/library/stdtypes.html#memoryview), также никогда не рассматривались как подтипы `ByteString` (ни во время выполнения, ни статическими проверками типов).

    См. [**PEP 688**](https://python-all.ru/3.15/deprecations/pending-removal-in-3.17.html) для получения подробностей. (Автор: Shantanu Jain в [gh-91896](https://python-all.ru/3.15/deprecations/pending-removal-in-3.17.html).)
- [`tkinter`](https://python-all.ru/3.15/library/tkinter.html#module-tkinter):

  - Методы `tkinter.Variable`: `trace_variable()`, `trace()` (псевдоним `trace_variable()`), `trace_vdelete()` и `trace_vinfo()`, устаревшие с Python 3.14, запланированы к удалению в Python 3.17. Используйте `trace_add()`, `trace_remove()` и `trace_info()` вместо них. (Автор: Serhiy Storchaka в [gh-120220](https://python-all.ru/3.15/deprecations/pending-removal-in-3.17.html).)
