ШІ-інструменти та скрипти
Перевірка pyproject для Python
Перевіряйте pyproject.toml і конфігурацію uv, Poetry, PDM, Hatch та Pipenv перед встановленням чи публікацією: індекси через http, токени в URL індексів, вимкнені перевірки TLS, приватні індекси, змішані з PyPI, git-залежності від гілок і відсутні lock-файли.
Що ви отримаєте: 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 і в батьківському робочому просторі 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.toml, змінні середовища Hatch із секретними назвами та env скриптів PDM)
- P03: вимкнена перевірка TLS: allow-insecure-host в uv, verify_ssl = false (PDM, pdm.toml, Pipfile), certificates cert = false у Poetry, PIP_TRUSTED_HOST, UV_INSECURE_HOST
- P04: індекс, що не є PyPI, у якому незакріплені пакети шукаються разом із PyPI: unsafe-best-match або unsafe-first-match в uv з індексом, що не є explicit, джерела PDM без include_packages, supplemental або кілька primary-джерел у Poetry, 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.*, ~3.10 у Poetry)
- P17: застарілі або видалені налаштування: tool.uv.dev-dependencies і index-url / extra-index-url верхнього рівня в uv, [tool.poetry.dev-dependencies] і пріоритети джерел default / secondary у Poetry
Що входить до комплекту
- Сканер (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
ШІ-інструменти та скрипти
Перевірка pyproject для Python
Перевіряйте pyproject.toml і конфігурацію uv, Poetry, PDM, Hatch та Pipenv перед встановленням чи публікацією: індекси через http, токени в URL індексів, вимкнені перевірки TLS, приватні індекси, змішані з PyPI, git-залежності від гілок і відсутні lock-файли.
Getly відкрив завантажені файли й не знайшов нічого, що завадило б їх відкрити. Це не антивірусна перевірка і не оцінка якості.
Теги
Поширені запитання
Чи отримаю я доступ одразу?
Так. Це цифровий товар: ви можете завантажити його одразу після оплати, просто зі своєї бібліотеки.
Чи можна використовувати його в комерційних проєктах?
Так. Комерційне використання дозволено: користуйтеся в особистому бізнесі та в тому, що продаєте. Ви не можете перепродавати чи поширювати сам файл.
Яка у вас політика повернення коштів?
Ви можете запросити повернення коштів протягом 30 дн. Якщо щось не так, подайте запит зі свого замовлення, і команда Getly його розгляне.
Які формати та розміри файлів я отримаю?
Ви завантажите 1 файл - ZIP - загалом 45.34 KB.
Чи отримую я безкоштовні оновлення?
Так: коли продавець випускає нову версію, ви можете повторно завантажити свіжі файли зі своєї бібліотеки безкоштовно. Останні оновлення дивіться в журналі змін.
Ціна
$5.00



