pyDeprecate — плагин

Плагин вводит устаревание Python-API с переадресацией вызовов и убирает обертки, срок которых истек к нужному релизу.

  • 64 ★ репозитория
  • Последний коммит
  • Apache-2.0
Плагин

Расширенный доступ

Почему такой уровень

  • Агент импортирует модули проекта и выполняет их код верхнего уровня.
  • Навыки правят исходники и подгружают руководство с внешнего сайта.
Все причины и проверки

borda/pydeprecate

Установка

Работает в

В терминале, через SkillFoxx CLI

npx skillfoxx add plugins/pydeprecate

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Агент импортирует модули проекта и выполняет их код верхнего уровня.
  • Навыки правят исходники и подгружают руководство с внешнего сайта.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Плагин `pydeprecate` добавляет в Claude Code и Codex два навыка для библиотеки pyDeprecate. `sunset` сканирует Python-проект на самописные предупреждения (`warnings.warn`, `DeprecationWarning`, алиасы, обертки с переименованием аргументов) и рекомендует перевести их на декораторы pyDeprecate либо вводит новое устаревание с явными версиями `deprecated_in` и `remove_in`. `prune` находит обертки, срок которых истек к заданной версии пакета, и убирает их вместе с лишними экспортами и устаревшими проверками. Оба навыка сначала показывают список правок и ждут подтверждения. Версии для `sunset` берутся из таблицы `[tool.pydeprecate.policy]` в `pyproject.toml`, если она есть. Для `prune` нужна явная целевая версия: агент не подставляет сегодняшнюю дату и не берет версию из установленного пакета.

Для кого. Мейнтейнерам Python-библиотек, которые переименовывают функции и классы и хотят сохранить совместимость для пользователей.

Подходит, если

  • В библиотеке переименовали функцию, а старое имя должно работать еще несколько релизов.
  • Аргумент меняет название, и вызовы со старым именем надо пересылать в новую сигнатуру.
  • В проекте накопились самописные `warnings.warn` и алиасы, и их пора привести к единому виду.
  • Выходит релиз, на который назначен срок удаления устаревшего API, и обертки пора убрать.

Не подходит, если

  • Пакет написан не на Python: плагин работает только с декораторами pyDeprecate.
  • Нужно только обновить зависимость, а собственного API это не касается.
  • Модули проекта нельзя импортировать без побочных эффектов: навыки выполняют их код верхнего уровня.

Пример запроса к агенту

Найди в проекте самописные предупреждения об устаревании и покажи таблицей, какие из них стоит перевести на pyDeprecate.

Ограничения

Плагин ранний, до версии 1.0, и ставится отдельно от библиотеки: `pip` его не устанавливает. Он рассчитан на pyDeprecate `>=0.12`, а часть команд, например `python -m deprecate status` и проверка политики, требует расширений `pyDeprecate[audit,cli]`. Чтобы найти обертки, агент импортирует модули проекта и выполняет их код верхнего уровня, поэтому запускать навыки лучше в обычном тестовом окружении. Руководство для агентов навыки подгружают с сайта мейнтейнера и считают его справочником без права давать команды: приоритет у исходников установленного пакета. Ручные предупреждения и другие библиотеки устаревания агент разбирает отдельно и не включает в удаление сам.

Как отключить. Отключите или удалите плагин `pydeprecate` в менеджере плагинов Claude Code или Codex. Библиотека pyDeprecate в зависимостях проекта остается, ее убирают отдельно.

Частые вопросы

Как поставить плагин pyDeprecate в Claude Code?

Выполните `claude plugin marketplace add Borda/pyDeprecate`, затем `claude plugin install pydeprecate@pydeprecate`. Навыки вызываются как `/pydeprecate:sunset` и `/pydeprecate:prune`.

Чем `sunset` отличается от `prune`?

`sunset` вводит устаревание или готовит его план: сканирует проект и добавляет декораторы с версиями. `prune` работает в конце срока и удаляет совместимость, которая истекает к указанной версии релиза.

Ставит ли плагин саму библиотеку pyDeprecate?

Нет. Плагин отдельный артефакт, `pip` его не устанавливает. Если библиотеки в проекте нет, сканирование только сообщает, что ее внедрение добавит зависимость.

Меняют ли навыки код без подтверждения?

Нет. Оба навыка показывают список кандидатов или правок и останавливаются до первой правки. Просьба о просмотре или оценке права на изменения не дает.

Откуда берутся версии для устаревания?

Их называет пользователь, либо агент берет значения из таблицы `[tool.pydeprecate.policy]` в `pyproject.toml`. Без таблицы действуют `min-grace = "0.3"` и `message-required = true`. Если выбор остается открытым, агент спрашивает.

Обсуждение

Вопросов и отзывов пока нет.

Плагины

Refurb анализирует Python-код и предлагает точечные улучшения с кодами правил, пояснениями и учетом целевой версии языка.

CLIРасширенный доступ2,5 тыс.Звезды репозитория

Плагин учит агента чистить комментарии в коде по синтаксическому дереву и проверять теги TODO на ключ задачи.

ПлагинРасширенный доступ141Звезды репозитория

Плагин готовит проект к работе с Claude Code: инструкции, тесты, ревью, TDD, рефакторинг и повторяемый цикл исправлений

ПлагинШирокий доступ75Звезды репозитория

Маркетплейс из 23 плагинов для Claude Code: Git и PR, ревью кода, TDD, спецификации и делегирование другим моделям

ПлагинШирокий доступ350Звезды репозитория

Транспайлер Python в Rust с MCP-сервером: агент оценивает объем миграции, переводит модули и сверяет поведение результата.

MCP-серверРасширенный доступ368Звезды репозитория

Плагины для git, Python и доступности в одном месте: более 400 скиллов, субагенты и хуки против опасных команд.

ПлагинРасширенный доступ60Звезды репозитория

Коротко о README

README библиотеки подает pyDeprecate как способ объявить устаревание одним декоратором: предупреждение, пересылка вызова, переименование аргументов и метаданные для проверки в CI. Раздел про агентов описывает плагин как отдельную раннюю часть репозитория и отсылает к рецептам на сайте проекта.

Бейдж для README

Сообщить о проблеме