Перейти к основному содержимому

Меню команд

Перейти на страницу или искать в каталоге

ИИ-инструменты и скрипты

Проверка pyproject для Python

Проверяйте pyproject.toml и конфигурацию uv, Poetry, PDM, Hatch и Pipenv перед установкой или публикацией: индексы по http, токены в URL индексов, отключённые проверки TLS, частные индексы вперемешку с PyPI, git-зависимости от веток и отсутствующие lock-файлы.

$5.00

Что вы получите: 1 файл · 45.34 KB · ZIP

Варианты покупки

Описание товара

Одна строка index-strategy = "unsafe-best-match" рядом с частным индексом в pyproject.toml позволяет любому, кто опубликует на PyPI пакет с именем вашего частного пакета и более высокой версией, установить свой код на ваши машины и в CI (dependency confusion). Токен, вставленный в URL индекса или git, может прочитать любой, у кого есть репозиторий, а .python-version со значением 3.9 уже вышел за пределы срока поддержки. Этот навык находит такие и другие ошибки конфигурации Python-проектов, перечисленные ниже, и подсказывает, как исправить каждую из них.

Ваш агент запускает сканер для pyproject.toml ([project], [dependency-groups], [build-system], [tool.uv], [tool.poetry], [tool.pdm], [tool.hatch]), uv.toml, poetry.toml, pdm.toml, hatch.toml, Pipfile, lock-файлов uv.lock, poetry.lock, pdm.lock, pylock.toml и Pipfile.lock, а также .python-version. Он разбирает TOML с номерами строк и следует собственным правилам индексов каждого инструмента: стратегия first-index и явные индексы uv, приоритеты и привязки источников Poetry, include_packages и respect-source-order в PDM, привязки индексов в Pipenv. Значения ${VAR} и {env:...} он считает ссылками, знает зеркала PyPI и публичные индексы вендоров, например PyTorch, и ищет lock-файлы рядом с каждым pyproject.toml и в родительском workspace uv. Он никогда не запускает pip, uv, Poetry, PDM или Hatch и никогда не обращается к индексу. Результат: BLOCK, REVIEW или NOT FLAGGED с указанием файла, строки, причины и более безопасного подхода. Секреты никогда не выводятся.

Что проверяется

BLOCK (исправить до выпуска)

  • P01: индексы пакетов, find-links, источники, URL зависимостей, переменные окружения индексов и URL в lock-файлах по обычному http:// (хост на этой же машине допустим)
  • P02: пароли и токены в URL индексов, источников и git (в том числе токен, использованный как имя пользователя в URL) или под ключами учётных данных (password в PDM, http-basic и pypi-token Poetry в poetry.toml, переменные окружения Hatch с секретными именами и env скриптов PDM)
  • P03: отключённая проверка TLS: allow-insecure-host в uv, verify_ssl = false (PDM, pdm.toml, Pipfile), cert = false в certificates Poetry, PIP_TRUSTED_HOST, UV_INSECURE_HOST
  • P04: индекс, не являющийся PyPI, в котором вместе с PyPI ищутся непривязанные пакеты: unsafe-best-match или unsafe-first-match в uv с неявным индексом, источники PDM без include_packages, источники Poetry supplemental или несколько primary, PIP_EXTRA_INDEX_URL, install_search_all_sources в Pipenv (привязка нескольких пакетов это не устраняет)

REVIEW (проверить перед релизом)

  • P11: те же смешанные схемы с публичным индексом вендора (PyTorch, NVIDIA, PyG)
  • P12: git-зависимости от ветки или без ref (branch = "main", @main, @feature-1.2, ref = "main" в Pipfile)
  • P13: проекты с зависимостями, которыми управляют приложения uv, Poetry или PDM, и заблокированные окружения Hatch без lock-файла, или lock-файл, игнорируемый через .gitignore (файл requirements, скомпилированный uv или pip-compile, считается lock-файлом)
  • P14: .python-version, который не допускает requires-python
  • P15: .python-version или python_version в Pipfile, чей срок поддержки истёк (поддержка 3.9 закончилась 2025-10-31, поддержка 3.10 закончилась 2026-10-01)
  • P16: requires-python в пакете, ограниченный версией ниже Python 4 (<3.13, ==3.11.*, Poetry ~3.10)
  • P17: устаревшие или удалённые настройки: tool.uv.dev-dependencies и index-url / extra-index-url верхнего уровня в uv, [tool.poetry.dev-dependencies] в Poetry и приоритеты источников default / secondary

Что входит в комплект

  • Сканер (Python 3.9+, только стандартная библиотека)
  • Руководство по правилам с причиной, более безопасным подходом и официальным источником для каждого правила
  • Рискованный и безопасный примеры (API-проект на uv и воркер на Poetry), а также реальный отчёт сканера по рискованному примеру

Ограничения

Каждый файл читается в том виде, в каком он написан. Пользовательская конфигурация (~/.config/uv/uv.toml, config.toml и auth.toml Poetry, pip.conf), переменные окружения и настройки CI не читаются, а requirements.txt, setup.py и setup.cfg не проверяются. Стратегия индексов и индексы, к которым она применяется, оцениваются в пределах одного файла. Может ли индекс содержать имена частных пакетов, определяется по его хосту: PyPI, известные зеркала PyPI и известные публичные индексы вендоров распознаются, а любой другой хост считается потенциально частным, поэтому пример частного источника без include_packages из собственной документации PDM сообщается намеренно (по умолчанию PDM считает все источники равноправными). Содержимое lock-файлов не сравнивается с pyproject.toml. NOT FLAGGED не является гарантией.

Состав

Один ZIP-файл с 19 файлами: SKILL.md, сканер в scripts/ (6 файлов Python), references/rules.md (все правила с причиной и более безопасным подходом) и examples/ (10 файлов примеров плюс report.md, реальный вывод сканера для рискованного примера).

Как использовать: Это навык для агента: папка с файлом SKILL.md и скриптами Python, которые может запускать ИИ-агент для программирования, например Claude Code, Cursor или Codex CLI. Распакуйте архив в папку навыков вашего агента (для Claude Code: ~/.claude/skills/), затем попросите агента проверить ваш проект. Скрипты также работают самостоятельно на Python 3.9 или новее, ничего устанавливать не нужно. Они только читают ваши файлы: никакого доступа к сети, ничего никуда не отправляется.

Что вы получите

1 файл · 45.34 KB

  • python-pyproject-check-1.0.0.zipZIP · 45.34 KB
ЛицензияКоммерческое использование разрешено
Проверка пакетаПройдена

Getly открыл загруженные файлы и не нашёл ничего, что помешало бы их открыть. Это не проверка на вирусы и не оценка качества.

Опубликовано12 нояб. 2026 г.
Размер файла45.34 KB
Формат файлаZIP
Версияv1.0

Теги

pythonuvpoetrypyprojectsupply-chainai agent skill
R
RR HH

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

Доступ открывается сразу?

Да. Это цифровой товар - скачать его можно сразу после оплаты, прямо из своей библиотеки.

Можно ли использовать в коммерческих проектах?

Да. Коммерческое использование разрешено: в своём бизнесе и в том, что вы продаёте. Перепродавать и распространять сам файл нельзя.

Какие условия возврата?

Запросить возврат можно в течение 30 дней. Если что-то не так, оформите заявку в своём заказе - её рассмотрит команда Getly.

Какие форматы и размеры файлов я получу?

Вы скачаете 1 файл - ZIP - всего 45.34 KB.

Обновления бесплатны?

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

Цена

$5.00