跳到正文
cccskills
免费在 GitHub 公开

python-project-creator

Creates Python projects with proper structure, virtual environments, and dependency management. Use when users request to create a new Python project, set up a Python development environment, or initialize a Python application with standard tooling.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(4)

  • SKILL.md5.7 KB
  • assets/example_asset.txt865 B
  • references/api_reference.md973 B
  • scripts/example.py603 B

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Python Project Creator

Critical Corrections

Use 'uv' instead of 'pip'

  • ✗ Don't: pip install, pip freeze
  • ✓ Do: uv pip install, uv pip freeze (uv is faster and more modern)

Always use pytest, never unittest

  • ✗ Don't: unittest framework
  • ✓ Do: pytest for all testing needs

Overview

This skill creates well-structured Python projects with best practices for dependency management, testing, and code organization. It sets up virtual environments, installs dependencies, and configures common development tools.

Project Creation Workflow

1. Understand Requirements

Ask the user about:

  • Project name and purpose
  • Type: CLI tool, web app, library, data science project
  • Dependencies: Required packages
  • Testing: Testing framework preference (pytest, unittest)

2. Create Project Structure

Standard Python project structure:

project-name/
├── src/
│   └── project_name/
│       ├── __init__.py
│       └── main.py
├── tests/
│   ├── __init__.py
│   └── test_main.py
├── .gitignore
├── README.md
├── requirements.txt
└── setup.py (optional, for libraries)

3. Virtual Environment Setup

Create and activate virtual environment:

# Create virtual environment
python3 -m venv venv

# Activate (instructions for user)
# macOS/Linux: source venv/bin/activate
# Windows: venv\Scripts\activate

4. Install Dependencies

Install packages using uv:

uv pip install <package-name>
uv pip freeze > requirements.txt

For development dependencies:

uv pip install pytest black flake8 mypy

5. Initialize Git

git init
git add .
git commit -m "Initial commit: project setup"

Project Types

CLI Application

  • Use argparse or click for command-line arguments
  • Include main.py with proper entry point
  • Add if __name__ == "__main__": guard

Web Application

  • Flask: Lightweight, good for small APIs
  • FastAPI: Modern, async, auto-documentation
  • Django: Full-featured, batteries included

Library/Package

  • Include setup.py for packaging
  • Follow semantic versioning
  • Add comprehensive docstrings

Data Science

  • Include notebooks/ directory for Jupyter notebooks
  • Add data/ directory (with .gitignore)
  • Common packages: pandas, numpy, matplotlib, scikit-learn

Testing Setup

pytest (Required)

Always use pytest for testing:

uv pip install pytest pytest-cov

Example test file:

# tests/test_main.py
import pytest
from src.project_name.main import my_function

def test_my_function():
    assert my_function(2, 3) == 5

Run tests:

pytest
pytest --cov=src  # with coverage

Code Quality Tools

Black (Code Formatter)

uv pip install black
black src/ tests/

Flake8 (Linter)

uv pip install flake8
flake8 src/ tests/

mypy (Type Checker)

uv pip install mypy
mypy src/

Common Patterns

Entry Point Pattern

# src/project_name/main.py

def main():
    """Main application entry point."""
    print("Hello, World!")

if __name__ == "__main__":
    main()

Configuration Pattern

# src/project_name/config.py

import os
from pathlib import Path

# Project root directory
PROJECT_ROOT = Path(__file__).parent.parent.parent

# Load environment variables
DEBUG = os.getenv("DEBUG", "False") == "True"

Error Handling Pattern

class ProjectError(Exception):
    """Base exception for this project."""
    pass

class ConfigError(ProjectError):
    """Configuration-related errors."""
    pass

.gitignore Template

# Virtual environment
venv/
env/
.venv/

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
*.egg-info/
dist/
build/

# IDE
.vscode/
.idea/
*.swp
*.swo

# Environment
.env
.env.local

# Testing
.pytest_cache/
.coverage
htmlcov/

# OS
.DS_Store
Thumbs.db

Best Practices

Dependency Management

  • Pin exact versions in production: package==1.2.3
  • Use ranges for libraries: package>=1.2,<2.0
  • Separate dev dependencies from production
  • Keep requirements.txt minimal

Project Structure

  • Use src/ layout to avoid import issues
  • Keep tests separate from source code
  • One module per file, clear naming
  • Flat is better than nested (within reason)

Documentation

  • Write clear README.md with setup instructions
  • Add docstrings to all public functions/classes
  • Include usage examples in README
  • Document environment variables

Version Control

  • Initialize git from the start
  • Write meaningful commit messages
  • Create .gitignore before first commit
  • Never commit secrets or credentials

Quick Start Examples

Minimal CLI Tool

mkdir my-cli-tool && cd my-cli-tool
python3 -m venv venv
source venv/bin/activate
uv pip install click
# Create main.py, tests, etc.

FastAPI Web Service

mkdir my-api && cd my-api
python3 -m venv venv
source venv/bin/activate
uv pip install fastapi uvicorn
# Create app structure

Data Science Project

mkdir my-analysis && cd my-analysis
python3 -m venv venv
source venv/bin/activate
uv pip install pandas numpy matplotlib jupyter
# Create notebooks/, data/, src/

Resources

This skill includes examples in the bundled directories:

scripts/

  • example.py - Template Python script with best practices

references/

  • api_reference.md - Common library documentation references

assets/

  • Project templates and boilerplate code

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

reflect

免费

Analyzes conversation transcripts to extract user corrections, patterns, and preferences, then proposes skill improvements. Use this skill when users provide corrections, express preferences about code style, or when patterns emerge from successful approaches. Can be triggered manually with /reflect or automatically at session end when enabled.

中文简介正在准备中。当前显示原文说明。

haddock-development/claude-reflect-system3832026年1月17日 更新

查看 haddock-development 的全部技能

报告此技能的问题