pyDeprecate — плагин
Плагин вводит устаревание Python-API с переадресацией вызовов и убирает обертки, срок которых истек к нужному релизу.
- 64 ★ репозитория
- Последний коммит
- Apache-2.0
Расширенный доступ
Почему такой уровень
- Агент импортирует модули проекта и выполняет их код верхнего уровня.
- Навыки правят исходники и подгружают руководство с внешнего сайта.
Установка
- Работает в
В терминале, через 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-код и предлагает точечные улучшения с кодами правил, пояснениями и учетом целевой версии языка.
Плагин учит агента чистить комментарии в коде по синтаксическому дереву и проверять теги TODO на ключ задачи.
Плагин готовит проект к работе с Claude Code: инструкции, тесты, ревью, TDD, рефакторинг и повторяемый цикл исправлений
Маркетплейс из 23 плагинов для Claude Code: Git и PR, ревью кода, TDD, спецификации и делегирование другим моделям
Транспайлер Python в Rust с MCP-сервером: агент оценивает объем миграции, переводит модули и сверяет поведение результата.
Плагины для git, Python и доступности в одном месте: более 400 скиллов, субагенты и хуки против опасных команд.
Коротко о README
README библиотеки подает pyDeprecate как способ объявить устаревание одним декоратором: предупреждение, пересылка вызова, переименование аргументов и метаданные для проверки в CI. Раздел про агентов описывает плагин как отдельную раннюю часть репозитория и отсылает к рецептам на сайте проекта.