Saltar al contenido principal

Menú de comandos

Ve a una página o busca en el catálogo

Herramientas y scripts de IA

Revisión de pyproject de Python

Revisa pyproject.toml y la configuración de uv, Poetry, PDM, Hatch y Pipenv antes de instalar o publicar: índices http, tokens en URL de índices, comprobaciones TLS desactivadas, índices privados mezclados con PyPI, dependencias git de una rama y archivos de bloqueo que faltan.

$5.00

Qué recibes: 1 archivo · 45.34 KB · ZIP

Ver opciones de compra

Descripción del producto

Una sola línea, index-strategy = "unsafe-best-match", junto a un índice privado en pyproject.toml permite que cualquiera que publique en PyPI el nombre de tu paquete privado con una versión superior consiga que su código se instale en tus máquinas y en tu CI (confusión de dependencias). Un token pegado en una URL de índice o de git puede leerlo cualquiera que tenga el repositorio, y un .python-version con 3.9 ya ha llegado al final de su vida útil. Esta skill encuentra esos y los demás errores de configuración de proyectos Python que se indican abajo, y te dice cómo corregir cada uno.

Tu agente ejecuta un escáner sobre pyproject.toml ([project], [dependency-groups], [build-system], [tool.uv], [tool.poetry], [tool.pdm], [tool.hatch]), uv.toml, poetry.toml, pdm.toml, hatch.toml, Pipfile, los archivos de bloqueo uv.lock, poetry.lock, pdm.lock, pylock.toml y Pipfile.lock, y .python-version. Analiza TOML con números de línea y sigue las reglas de índices propias de cada herramienta: la estrategia first-index y los índices explícitos de uv, las prioridades de fuentes y las fuentes fijadas de Poetry, include_packages y respect-source-order de PDM, los índices fijados de Pipenv. Trata los valores ${VAR} y {env:...} como referencias, conoce los mirrors de PyPI y los índices públicos de proveedores como PyTorch, y busca archivos de bloqueo junto a cada pyproject.toml y en un workspace de uv padre. Nunca ejecuta pip, uv, Poetry, PDM ni Hatch, y nunca contacta con un índice. Devuelve BLOCK, REVIEW o NOT FLAGGED, con el archivo, la línea, el motivo y una alternativa más segura. Los secretos nunca se muestran.

Qué comprueba

BLOCK (corrígelo antes de publicar)

  • P01: índices de paquetes, find-links, fuentes, URL de dependencias, variables de entorno de índices y URL de archivos de bloqueo por http:// sin cifrar (un host en esta misma máquina no es problema)
  • P02: contraseñas y tokens en URL de índices, fuentes y git (también un token usado como nombre de usuario de la URL) o bajo claves de credenciales (password de PDM, http-basic y pypi-token de Poetry en poetry.toml, variables de entorno de Hatch con nombre de secreto y env de scripts de PDM)
  • P03: verificación TLS desactivada: allow-insecure-host de uv, verify_ssl = false (PDM, pdm.toml, Pipfile), certificates cert = false de Poetry, PIP_TRUSTED_HOST, UV_INSECURE_HOST
  • P04: un índice que no es PyPI consultado junto con PyPI para paquetes no fijados: unsafe-best-match o unsafe-first-match de uv con un índice que no es explicit, fuentes de PDM sin include_packages, fuentes supplemental o varias fuentes primary de Poetry, PIP_EXTRA_INDEX_URL, install_search_all_sources de Pipenv (fijar unos pocos paquetes no lo resuelve)

REVIEW (revísalo antes del lanzamiento)

  • P11: las mismas configuraciones mezcladas con un índice público de un proveedor (PyTorch, NVIDIA, PyG)
  • P12: dependencias git de una rama o sin ref (branch = "main", @main, @feature-1.2, ref = "main" en Pipfile)
  • P13: proyectos con dependencias gestionadas por uv, Poetry o aplicaciones PDM y entornos Hatch bloqueados sin archivo de bloqueo, o un archivo de bloqueo ignorado por .gitignore (un archivo requirements compilado con uv o pip-compile cuenta como archivo de bloqueo)
  • P14: un .python-version que requires-python no permite
  • P15: un .python-version o un python_version de Pipfile que ha llegado al final de su vida útil (3.9 terminó el 2025-10-31, 3.10 el 2026-10-01)
  • P16: requires-python limitado por debajo de Python 4 en un paquete (<3.13, ==3.11.*, ~3.10 de Poetry)
  • P17: ajustes obsoletos o eliminados: tool.uv.dev-dependencies de uv e index-url / extra-index-url de nivel superior, [tool.poetry.dev-dependencies] de Poetry y las prioridades de fuente default / secondary

Qué incluye

  • El escáner (Python 3.9+, solo biblioteca estándar)
  • Una guía de reglas con el motivo, la alternativa más segura y la fuente oficial para cada regla
  • Un ejemplo arriesgado y otro seguro (un proyecto de API con uv y un worker con Poetry), y el informe real que el escáner genera sobre el arriesgado

Limitaciones

Lee cada archivo tal como está escrito. No lee la configuración a nivel de usuario (~/.config/uv/uv.toml, config.toml y auth.toml de Poetry, pip.conf), las variables de entorno ni los ajustes de CI, y no comprueba requirements.txt, setup.py ni setup.cfg. Una estrategia de índices y los índices a los que se aplica se evalúan dentro de un solo archivo. Si un índice puede contener nombres de paquetes privados se decide por su host: se reconocen PyPI, los mirrors conocidos de PyPI y los índices públicos conocidos de proveedores, y cualquier otro host se considera posiblemente privado, por lo que el propio ejemplo de la documentación de PDM de una fuente privada sin include_packages se notifica a propósito (PDM considera todas las fuentes iguales por defecto). El contenido de los archivos de bloqueo no se compara con pyproject.toml. NOT FLAGGED no es una garantía.

Contenido

Un archivo ZIP con 19 archivos: SKILL.md, el escáner en scripts/ (6 archivos Python), references/rules.md (cada regla con su motivo y su alternativa más segura) y examples/ (10 archivos de ejemplo más report.md, la salida real del escáner sobre el ejemplo arriesgado).

Cómo usarlo: Esto es una skill de agente: una carpeta con un archivo SKILL.md y scripts de Python que un agente de programación con IA como Claude Code, Cursor o Codex CLI puede ejecutar. Descomprímela en la carpeta de skills de tu agente (para Claude Code: ~/.claude/skills/) y pide a tu agente que revise tu proyecto. Los scripts también funcionan por sí solos con Python 3.9 o posterior, sin instalar nada. Solo leen tus archivos: sin acceso a la red y sin enviar nada a ningún sitio.

Qué recibes

1 archivo · 45.34 KB

  • python-pyproject-check-1.0.0.zipZIP · 45.34 KB
LicenciaUso comercial permitido
Revisión del paqueteSuperada

Getly abrió los archivos subidos y no encontró nada que impida abrirlos. No es un análisis antivirus ni una valoración de calidad.

Publicado12 nov 2026
Tamaño del archivo45.34 KB
Formato de archivoZIP
Versiónv1.0

Etiquetas

pythonuvpoetrypyprojectsupply-chainai agent skill
R
RR HH

Preguntas frecuentes

¿Tengo acceso al instante?

Sí. Es un producto digital: puedes descargarlo justo después del pago, directamente desde tu biblioteca.

¿Puedo usarlo en proyectos comerciales?

Sí. Se permite el uso comercial: úsalo en tu propio negocio y en cosas que vendas. No puedes revender ni redistribuir el archivo en sí.

¿Cuál es vuestra política de reembolso?

Puedes pedir un reembolso dentro de 30 días. Si algo no va bien, solicítalo desde tu pedido y el equipo de Getly lo revisa.

¿Qué formatos y tamaños de archivo recibiré?

Descargarás 1 archivo - ZIP - 45.34 KB en total.

¿Recibo actualizaciones gratis?

Sí: cuando el vendedor publica una versión nueva, puedes volver a descargar los archivos más recientes desde tu biblioteca sin coste extra. Mira el registro de cambios para ver las últimas actualizaciones.

Precio

$5.00