npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

create-python-modern

v1.0.11

Published

Create modern Python projects with comprehensive best practices, type hints, testing, and Claude Code integration

Readme

Create Python Modern

NPM Version License: MIT Node.js Version

Una herramienta CLI para crear proyectos Python modernos con las mejores prácticas, gestión de paquetes con uv, type hints, testing y herramientas de calidad integradas.

Características

  • 🚀 Instalación automática de uv - Gestor de paquetes Python ultrarrápido
  • 🏗️ Estructura moderna - Diseño src/ recomendado por Python Packaging Authority
  • 🔍 Type hints - Tipado estático obligatorio con MyPy
  • 🧪 Testing completo - pytest con cobertura >80%
  • 🎨 Calidad de código - Ruff para linting y formatting
  • 🔒 Seguridad integrada - Bandit para análisis de seguridad
  • 🔄 Pre-commit hooks - Verificación automática antes de commits
  • 🤖 Integración Claude Code - Reglas y configuración optimizada
  • Async/await - Soporte para operaciones asíncronas
  • 📦 Pydantic - Validación de datos y modelos
  • 📝 Logging estructurado - con structlog

Instalación

Global (recomendado)

npm install -g create-python-modern

Local

npm install create-python-modern

Uso

Crear un nuevo proyecto

# Usando el comando global
create-python-modern mi-proyecto

# Usando npx (sin instalación global)
npx create-python-modern mi-proyecto

# Interactivo (se te pedirá el nombre del proyecto)
create-python-modern

Requisitos

  • Node.js >= 16.0.0
  • Python >= 3.8 (se instalará automáticamente con uv si no está presente)

Estructura del Proyecto Creado

mi-proyecto/
├── .claude.md              # Reglas para Claude Code
├── .pre-commit-config.yaml # Hooks de calidad
├── pyproject.toml          # Configuración del proyecto
├── src/mi_proyecto/
│   ├── __init__.py
│   ├── main.py            # Código principal
│   └── py.typed           # Marcador de tipos
└── tests/
    ├── __init__.py
    └── test_main.py       # Tests

Comandos de Desarrollo

Una vez creado el proyecto:

# Ingresar al directorio
cd mi-proyecto

# Ejecutar la aplicación
uv run python -m mi_proyecto.main

# Ejecutar tests con cobertura
uv run pytest --cov=src

# Linting y formatting
uv run ruff check . && uv run ruff format .

# Verificación de tipos
uv run mypy src/

# Instalar dependencias
uv add nombre-paquete
uv add --dev nombre-paquete-dev

# Sincronizar dependencias
uv sync

Herramientas Incluidas

  • uv - Gestor de paquetes Python ultra rápido
  • Ruff - Linter y formatter en Rust
  • MyPy - Verificación de tipos estáticos
  • pytest - Framework de testing
  • pre-commit - Hooks de Git para calidad
  • Bandit - Análisis de seguridad
  • structlog - Logging estructurado
  • Pydantic - Validación de datos

Configuración de Claude Code

El proyecto generado incluye un archivo .claude.md con reglas estrictas de codificación que Claude Code seguirá automáticamente:

  • Type hints obligatorios
  • Docstrings en estilo Google
  • Async/await para operaciones I/O
  • Excepciones específicas
  • Validación de entradas
  • Testing obligatorio

Publicación en npmjs

Para publicar o actualizar este paquete en npmjs, sigue estos pasos:

1. Iniciar sesión en npm

npm login

2. Verificar la configuración del package.json

Asegúrate de que el archivo package.json tenga la versión correcta y todos los metadatos necesarios.

3. Publicar el paquete

# Para publicación pública
npm publish

# Para publicación con tag específico (beta, next, etc.)
npm publish --tag beta

# Para publicación como package scoped
npm publish --access public

4. Verificar la publicación

npm view create-python-modern

5. Actualizar versión y republicar

Cuando realices cambios y quieras publicar una nueva versión:

# Actualizar versión (sigue versionamiento semántico)
npm version patch  # 1.0.0 -> 1.0.1
npm version minor  # 1.0.0 -> 1.1.0
npm version major  # 1.0.0 -> 2.0.0

# Publicar la nueva versión
npm publish

Notas importantes:

  • Asegúrate de haber ejecutado las pruebas antes de publicar
  • Actualiza el CHANGELOG.md con cada nueva versión
  • Si es la primera publicación, verifica que el nombre del paquete esté disponible en npmjs
  • Mantén consistencia en el versionamiento semántico

Contribución

  1. Fork este repositorio
  2. Crea una rama para tu feature (git checkout -b feature/amazing-feature)
  3. Commit tus cambios (git commit -m 'Add some amazing feature')
  4. Push a la rama (git push origin feature/amazing-feature)
  5. Abre un Pull Request

Licencia

Este proyecto está bajo la Licencia MIT - mira el archivo LICENSE para detalles.

Autor

[Tu Nombre] - @jhonma82

Roadmap

  • [ ] Soporte para plantillas personalizadas
  • [ ] Integración con Docker
  • [ ] Generador de documentación automática
  • [ ] Soporte para microservicios
  • [ ] Integración CI/CD

Issues

Si encuentras un bug o quieres sugerir una mejora, por favor abre un issue.

Changelog

v1.0.1

  • Traducción de mensajes al español
  • Mejoras en la configuración de herramientas

v1.0.0

  • Versión inicial
  • Creación de proyectos Python modernos
  • Integración completa de herramientas de calidad