Python Project Setup

by curator

Python project scaffolding and GitHub setup. CI/CD, pre-commit hooks, pyproject.toml, and repository best practices.

{ "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"
}

}