PluginBench
Rule

python github setup

via PatrickJS/awesome-cursorrules

Python development with GitHub integration, enforcing style, testing, security, and CI/CD standards.

What is python github setup?

Establishes coding standards for Python projects using GitHub Flow and GitHub Actions. Covers style (Black, Pylint, PEP 8), testing (pytest, 80% coverage), documentation (Google docstrings), security (input validation, environment variables), and code review practices. Use this rule to maintain consistency across Python codebases with automated CI/CD pipelines.

  • Enforces Python style rules: 4-space indentation, 120-char line length, snake_case variables/functions, PascalCase classes
  • Requires 80% test coverage with unit and integration tests using pytest
  • Mandates security practices: input validation, HTTPS, environment variables for secrets, input sanitization
  • Configures GitHub Actions CI/CD with Black formatting and Pylint linting against PEP 8
  • Enforces Google-style docstrings and code review via GitHub Pull Requests
  • Applies Conventional Commits for version control and GitHub Flow branching strategy

Applies to

File patterns this rule matches.

**/*
Rule definition (reference)

Source of truth, from the repository.

{ "general": { "coding_style": { "language": "Python", "use_strict": true, "indentation": "4 spaces", "max_line_length": 120, "comments": { "style": "# for single-line, ''' for multi-line", "require_comments": true } },

    "naming_conventions": {
        "variables": "snake_case",
        "functions": "snake_case",
        "classes": "PascalCase",
        "interfaces": "PascalCase",
        "files": "snake_case"
    },
    
    "error_handling": {
        "prefer_try_catch": true,
        "log_errors": true
    },
    
    "testing": {
        "require_tests": true,
        "test_coverage": "80%",
        "test_types": ["unit", "integration"]
    },
    
    "documentation": {
        "require_docs": true,
        "doc_tool": "docstrings",
        "style_guide": "Google Python Style Guide"
    },
    
    "security": {
        "require_https": true,
        "sanitize_inputs": true,
        "validate_inputs": true,
        "use_env_vars": true
    },
    
    "configuration_management": {
        "config_files": [".env"],
        "env_management": "python-dotenv",
        "secrets_management": "environment variables"
    },
    
    "code_review": {
        "require_reviews": true,
        "review_tool": "GitHub Pull Requests",
        "review_criteria": ["functionality", "code quality", "security"]
    },
    
    "version_control": {
        "system": "Git",
        "branching_strategy": "GitHub Flow",
        "commit_message_format": "Conventional Commits"
    },
    
    "logging": {
        "logging_tool": "Python logging module",
        "log_levels": ["debug", "info", "warn", "error"],
        "log_retention_policy": "7 days"
    },
    
    "monitoring": {
        "monitoring_tool": "Not specified",
        "metrics": ["file processing time", "classification accuracy", "error rate"]
    },
    
    "dependency_management": {
        "package_manager": "pip",
        "versioning_strategy": "Semantic Versioning"
    },
    
    "accessibility": {
        "standards": ["Not applicable"],
        "testing_tools": ["Not applicable"]
    },
    
    "internationalization": {
        "i18n_tool": "Not applicable",
        "supported_languages": ["English"],
        "default_language": "English"
    },
    
    "ci_cd": {
        "ci_tool": "GitHub Actions",
        "cd_tool": "Not specified",
        "pipeline_configuration": ".github/workflows/main.yml"
    },
    
    "code_formatting": {
        "formatter": "Black",
        "linting_tool": "Pylint",
        "rules": ["PEP 8", "project-specific rules"]
    },
    
    "architecture": {
        "patterns": ["Modular design"],
        "principles": ["Single Responsibility", "DRY"]
    }
},

"project_specific": {
    "use_framework": "None",
    "styling": "Not applicable",
    "testing_framework": "pytest",
    "build_tool": "setuptools",
    
    "deployment": {
        "environment": "Local machine",
        "automation": "Not specified",
        "strategy": "Manual deployment"
    },
    
    "performance": {
        "benchmarking_tool": "Not specified",
        "performance_goals": {
            "response_time": "< 5 seconds per file",
            "throughput": "Not specified",
            "error_rate": "< 1%"
        }
    }
},

"context": {
    "codebase_overview": "Python-based file organization tool using AI for content analysis and classification",
    "libraries": [
        "watchdog", "spacy", "PyPDF2", "python-docx", "pandas", "beautifulsoup4", 
        "transformers", "scikit-learn", "joblib", "python-dotenv", "torch", "pytest", 
        "shutil", "logging", "pytest-mock"
    ],
    
    "coding_practices": {
        "modularity": true,
        "DRY_principle": true,
        "performance_optimization": true
    }
},

"behavior": {
    "verbosity": {
        "level": 2,
        "range": [0, 3]
    },
    "handle_incomplete_tasks": "Provide partial solution and explain limitations",
    "ask_for_clarification": true,
    "communication_tone": "Professional and concise"
}

}

Related rules

Senior full-stack TypeScript, React, Node.js guidance with clean architecture, testing, and WHY-oriented reasoning.

**/*
41k
via PatrickJS/awesome-cursorrules

Quantitative factor research skills for designing, evaluating, and mining alpha factors in equities markets.

**/*
41k
via PatrickJS/awesome-cursorrules

Android development with Jetpack Compose, clean architecture, and Material Design 3.

**/*
41k
via PatrickJS/awesome-cursorrules

Angular development with Novo Elements UI library using standalone components.

**/*
41k
via PatrickJS/awesome-cursorrules

Expert Angular 18 + TypeScript development with Jest, emphasizing clean code and performance.

**/*
41k
via PatrickJS/awesome-cursorrules

Manage Kubernetes clusters, add-ons, stacks, and credentials via the Ankra CLI platform.

**/*.sh +5
41k
via PatrickJS/awesome-cursorrules