solid-checker


Namesolid-checker JSON
Version 1.0.2 PyPI version JSON
download
home_pageNone
SummarySmart SOLID principles analyzer with context-aware scoring and adaptive recommendations
upload_time2025-09-16 19:30:28
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords solid principles code-analysis static-analysis architecture clean-code
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 🔍 SOLID Checker - Smart SOLID Analysis Tool

[![Python 3.13+](https://img.shields.io/badge/python-3.13+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

A comprehensive, intelligent Python tool for analyzing code compliance with SOLID principles, featuring **adaptive contextual analysis** that adjusts evaluation criteria based on project type and complexity.

## 🌟 Key Features

### 🧠 Smart Contextual Analysis
- **Automatic Project Type Detection**: Identifies whether your code is a simple script, utility module, library, or large application
- **Adaptive Scoring**: Adjusts SOLID principle weights based on project characteristics
- **Context-Aware Thresholds**: Different quality expectations for different project types
- **Intelligent Recommendations**: Tailored advice that prevents over-engineering simple code while demanding excellence from libraries

### 📊 Comprehensive SOLID Analysis
- **SRP (Single Responsibility Principle)**: Analyzes class responsibilities and method focus
- **OCP (Open/Closed Principle)**: Detects extensibility violations and type checking patterns
- **LSP (Liskov Substitution Principle)**: Validates inheritance hierarchies and contracts
- **ISP (Interface Segregation Principle)**: Identifies interface bloat and segregation issues
- **DIP (Dependency Inversion Principle)**: Finds tight coupling and dependency issues

### 🎯 Advanced Scoring System
- **Weighted Scoring**: Different emphasis on principles based on project needs
- **Complexity Analysis**: Evaluates project size, class count, and architectural complexity
- **Color-Coded Results**: Visual indicators with adaptive thresholds
- **Detailed Violation Reports**: Specific issues with actionable insights

### 📈 Multiple Output Formats
- **Interactive Reports**: Rich console output with emoji indicators and detailed breakdowns
- **JSON Export**: Machine-readable format for CI/CD integration and further analysis
- **Detailed Analysis**: In-depth violation analysis with specific recommendations

## 🚀 Quick Start

### Installation

```bash
# Basic installation (recommended for end users)
pip install solid-checker

# Installation with development tools (for contributors)
pip install solid-checker[dev]
```

**Note:** The `[dev]` option includes additional tools like `ruff` (linting/formatting) and `mypy` (type checking) that are useful for development but not required for using the tool.

### Basic Usage

```bash
# Smart analysis (default) - automatically adapts to your project type
python solid-checker your_file.py

# Detailed report with violation breakdown
python solid-checker --report your_file.py

# JSON output for integration with other tools
python solid-checker --json your_file.py > analysis.json

# Legacy analysis (classic SOLID scoring without adaptation)
python solid-checker --legacy your_file.py
```

## 🧠 Smart Analysis in Action

The tool automatically adapts its analysis based on your project characteristics:

### Simple Scripts (< 100 lines, 1-2 classes)
```
🧠 Smart Analysis:
   📋 Project Type: Simple Script
   📊 Complexity Score: 0.0/1.00
   
⚖️ Adaptive Weights:
   📋 SRP: 40.0% | 🔓 OCP: 10.0% | 🔄 LSP: 10.0%
   🎯 ISP: 10.0% | 🔄 DIP: 30.0%
```
**Focus**: Simplicity and single purpose. Lenient thresholds to avoid over-engineering.

### Libraries/Frameworks
```
🧠 Smart Analysis:
   📋 Project Type: Library Framework
   📊 Complexity Score: 0.7/1.00
   
⚖️ Adaptive Weights:
   📋 SRP: 20.0% | 🔓 OCP: 30.0% | 🔄 LSP: 20.0%
   🎯 ISP: 25.0% | 🔄 DIP: 5.0%
```
**Focus**: Extensibility (OCP) and clean interfaces (ISP). Strict thresholds for public APIs.

### Large Applications
```
🧠 Smart Analysis:
   📋 Project Type: Large Application
   📊 Complexity Score: 0.8/1.00
   
⚖️ Adaptive Weights:
   📋 SRP: 30.0% | 🔓 OCP: 25.0% | 🔄 LSP: 20.0%
   🎯 ISP: 15.0% | 🔄 DIP: 10.0%
```
**Focus**: Maintainability (SRP) and extensibility (OCP). Strict compliance for long-term success.

## 📋 CLI Options

| Option | Description |
|--------|-------------|
| `file` | Python file to analyze |
| `--report` | Show detailed violation analysis |
| `--json` | Output results in JSON format |
| `--verbose` | Enable verbose error output |
| `--smart` | Use smart contextual analysis (default) |
| `--legacy` | Use classic analysis without adaptation |
| `--no-smart-info` | Hide smart analysis information in report |

## 📊 Understanding the Output

### Smart Analysis Section
```
🧠 Smart Analysis:
   📋 Project Type: Small App
   📊 Complexity Score: 0.30/1.00
   📈 Lines of Code: 589
   🏗️ Classes: 8

⚖️ Adaptive Weights (for this project type):
   📋 SRP: 25.0% | 🔓 OCP: 20.0% | 🔄 LSP: 20.0%
   🎯 ISP: 15.0% | 🔄 DIP: 20.0%
```

### SOLID Scores
```
📊 SOLID Scores (with context-aware thresholds):
   📋 SRP: 0.62/1.00 🟡
   🔓 OCP: 0.50/1.00 🔴
   🔄 LSP: 1.00/1.00 🟢
   🎯 ISP: 1.00/1.00 🟢
   🔄 DIP: 0.57/1.00 🔴
```

**Color Indicators**:
- 🟢 **Green**: Excellent compliance (above "good" threshold)
- 🟡 **Yellow**: Acceptable compliance (above "acceptable" threshold)  
- 🔴 **Red**: Needs improvement (below "acceptable" threshold)

*Note: Thresholds adapt based on project type*

## 🎯 Project Types & Adaptive Behavior

### 1. Simple Script
- **Characteristics**: < 100 lines, 1-2 classes
- **Focus**: Single purpose, avoid over-engineering
- **Thresholds**: Lenient (Good: 0.6, Acceptable: 0.4)
- **Weight Emphasis**: SRP (40%), DIP (30%)

### 2. Utility Module  
- **Characteristics**: 100-500 lines, few classes
- **Focus**: Balance simplicity with reusability
- **Thresholds**: Standard (Good: 0.8, Acceptable: 0.6)
- **Weight Emphasis**: Balanced approach

### 3. Small Application
- **Characteristics**: 500-1500 lines, moderate complexity
- **Focus**: Standard SOLID compliance
- **Thresholds**: Standard (Good: 0.8, Acceptable: 0.6)
- **Weight Emphasis**: Equal weighting

### 4. Large Application
- **Characteristics**: 1500+ lines, many classes
- **Focus**: Maintainability and structure
- **Thresholds**: Standard (Good: 0.8, Acceptable: 0.6)
- **Weight Emphasis**: SRP (30%), OCP (25%)

### 5. Library/Framework
- **Characteristics**: Public APIs, reusable components
- **Focus**: Extensibility and interface design
- **Thresholds**: Strict (Good: 0.9, Acceptable: 0.7)
- **Weight Emphasis**: OCP (30%), ISP (25%)

## 🛠️ Architecture

The tool follows a clean, modular architecture adhering to SOLID principles:

```
solid-checker/
├── __main__.py               # Main entry point
├── solid_scorer.py           # Main smart analysis engine
├── srp/                      # Single Responsibility Principle analyzer
│   ├── __init__.py
│   ├── core.py              # Core SRP analysis logic
│   ├── facade.py            # Simple API facade
│   └── protocols.py         # Type protocols and interfaces
├── ocp/                      # Open/Closed Principle analyzer
├── lsp/                      # Liskov Substitution Principle analyzer  
├── isp/                      # Interface Segregation Principle analyzer
├── dip/                      # Dependency Inversion Principle analyzer
└── README.md                # This documentation
```

### Key Components

#### ProjectComplexityAnalyzer
Analyzes project characteristics to determine appropriate SOLID standards:
- Lines of code counting
- Class and method analysis
- Inheritance depth calculation
- External dependency tracking

#### AdaptiveWeightCalculator
Calculates context-aware weights and thresholds:
- Project type-based weight adjustment
- Quality threshold adaptation
- Complex project stricter requirements

#### ContextualRecommendationGenerator
Generates smart, targeted recommendations:
- Project type-specific advice
- Context-appropriate violation analysis
- Prevents over-engineering warnings

#### SOLIDScorer
Enhanced scorer with adaptive capabilities:
- Smart recommendation generation
- Contextual summary creation
- Weighted scoring with project awareness

## 📈 Example Analyses

### Simple Python Script
```python
#!/usr/bin/env python3
def main():
    name = input("Enter your name: ")
    print(f"Hello, {name}!")

if __name__ == "__main__":
    main()
```

**Analysis Result**:
```
🧠 Smart Analysis:
   📋 Project Type: Simple Script
   📊 Complexity Score: 0.0/1.00

🎯 Overall SOLID Score: 1.00/1.00
📋 Summary: Perfect script organization! 🎯

💡 Smart Recommendations:
   ✅ Excellent! Your script follows good practices while staying simple
   💡 Insight: This level of organization is perfect for scripts
```

## 🔧 Integration & CI/CD

### JSON Output for Automation
```bash
python __main__.py --json my_code.py
```

Sample JSON output:
```json
{
  "file_path": "my_code.py",
  "scores": {
    "srp_score": 0.85,
    "ocp_score": 0.75,
    "lsp_score": 1.0,
    "isp_score": 0.9,
    "dip_score": 0.65,
    "overall_score": 0.83
  },
  "summary": "Great SOLID architecture! 🌟",
  "smart_analysis": {
    "project_type": "small_app",
    "complexity_score": 0.4,
    "lines_of_code": 350,
    "class_count": 5,
    "adaptive_weights": {
      "srp": 0.25,
      "ocp": 0.2,
      "lsp": 0.2,
      "isp": 0.15,
      "dip": 0.2
    }
  }
}
```

### GitHub Actions Integration
```yaml
name: SOLID Analysis
on: [push, pull_request]
jobs:
  solid-check:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Setup Python
      uses: actions/setup-python@v2
      with:
        python-version: 3.13
    - name: Run SOLID Analysis
      run: |
        python __main__.py --json src/main.py > solid_report.json
        # Add custom logic to parse results and set exit codes
```

## 🎓 Educational Value

This tool serves as both a practical analysis instrument and an educational resource:

1. **Learn SOLID Principles**: Understand how each principle applies in real code
2. **Contextual Understanding**: See how requirements change based on project type
3. **Practical Application**: Get actionable advice rather than abstract theory
4. **Progressive Improvement**: Track improvements over time with consistent metrics

## 🏆 Why This Tool is Different

Unlike traditional static analysis tools that apply rigid rules uniformly, SOLID Checker understands that **context matters**:

- **No More Over-Engineering Warnings** for simple scripts that don't need complex architecture
- **Stricter Standards** for libraries and frameworks where quality is paramount  
- **Balanced Approach** for typical applications with practical recommendations
- **Educational Feedback** that helps developers understand *why* certain principles matter more in different contexts

**Result**: More practical, actionable, and contextually appropriate SOLID analysis that helps you write better code without unnecessary complexity.

## 🤝 Contributing

Contributions are welcome! Areas for enhancement:

- **New Project Type Detection**: Additional heuristics for specialized domains
- **Language Support**: Extend analysis to other programming languages  
- **Custom Rules**: User-defined weighting and threshold configurations
- **IDE Integration**: Plugins for popular development environments
- **Continuous Monitoring**: Integration with code quality dashboards

## 📜 License

MIT License - feel free to use, modify, and distribute.

---

*Built with ❤️ for developers who care about code quality and practical software architecture.*

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "solid-checker",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "solid, principles, code-analysis, static-analysis, architecture, clean-code",
    "author": null,
    "author_email": "DaymaNKinG990 <xellaopromaster@yandex.ru>",
    "download_url": "https://files.pythonhosted.org/packages/68/17/8b0ef4e4f3a1fbe5d70a8722d21620ef439f31a9f6f848333e0deafe26db/solid_checker-1.0.2.tar.gz",
    "platform": null,
    "description": "# \ud83d\udd0d SOLID Checker - Smart SOLID Analysis Tool\r\n\r\n[![Python 3.13+](https://img.shields.io/badge/python-3.13+-blue.svg)](https://www.python.org/downloads/)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n\r\nA comprehensive, intelligent Python tool for analyzing code compliance with SOLID principles, featuring **adaptive contextual analysis** that adjusts evaluation criteria based on project type and complexity.\r\n\r\n## \ud83c\udf1f Key Features\r\n\r\n### \ud83e\udde0 Smart Contextual Analysis\r\n- **Automatic Project Type Detection**: Identifies whether your code is a simple script, utility module, library, or large application\r\n- **Adaptive Scoring**: Adjusts SOLID principle weights based on project characteristics\r\n- **Context-Aware Thresholds**: Different quality expectations for different project types\r\n- **Intelligent Recommendations**: Tailored advice that prevents over-engineering simple code while demanding excellence from libraries\r\n\r\n### \ud83d\udcca Comprehensive SOLID Analysis\r\n- **SRP (Single Responsibility Principle)**: Analyzes class responsibilities and method focus\r\n- **OCP (Open/Closed Principle)**: Detects extensibility violations and type checking patterns\r\n- **LSP (Liskov Substitution Principle)**: Validates inheritance hierarchies and contracts\r\n- **ISP (Interface Segregation Principle)**: Identifies interface bloat and segregation issues\r\n- **DIP (Dependency Inversion Principle)**: Finds tight coupling and dependency issues\r\n\r\n### \ud83c\udfaf Advanced Scoring System\r\n- **Weighted Scoring**: Different emphasis on principles based on project needs\r\n- **Complexity Analysis**: Evaluates project size, class count, and architectural complexity\r\n- **Color-Coded Results**: Visual indicators with adaptive thresholds\r\n- **Detailed Violation Reports**: Specific issues with actionable insights\r\n\r\n### \ud83d\udcc8 Multiple Output Formats\r\n- **Interactive Reports**: Rich console output with emoji indicators and detailed breakdowns\r\n- **JSON Export**: Machine-readable format for CI/CD integration and further analysis\r\n- **Detailed Analysis**: In-depth violation analysis with specific recommendations\r\n\r\n## \ud83d\ude80 Quick Start\r\n\r\n### Installation\r\n\r\n```bash\r\n# Basic installation (recommended for end users)\r\npip install solid-checker\r\n\r\n# Installation with development tools (for contributors)\r\npip install solid-checker[dev]\r\n```\r\n\r\n**Note:** The `[dev]` option includes additional tools like `ruff` (linting/formatting) and `mypy` (type checking) that are useful for development but not required for using the tool.\r\n\r\n### Basic Usage\r\n\r\n```bash\r\n# Smart analysis (default) - automatically adapts to your project type\r\npython solid-checker your_file.py\r\n\r\n# Detailed report with violation breakdown\r\npython solid-checker --report your_file.py\r\n\r\n# JSON output for integration with other tools\r\npython solid-checker --json your_file.py > analysis.json\r\n\r\n# Legacy analysis (classic SOLID scoring without adaptation)\r\npython solid-checker --legacy your_file.py\r\n```\r\n\r\n## \ud83e\udde0 Smart Analysis in Action\r\n\r\nThe tool automatically adapts its analysis based on your project characteristics:\r\n\r\n### Simple Scripts (< 100 lines, 1-2 classes)\r\n```\r\n\ud83e\udde0 Smart Analysis:\r\n   \ud83d\udccb Project Type: Simple Script\r\n   \ud83d\udcca Complexity Score: 0.0/1.00\r\n   \r\n\u2696\ufe0f Adaptive Weights:\r\n   \ud83d\udccb SRP: 40.0% | \ud83d\udd13 OCP: 10.0% | \ud83d\udd04 LSP: 10.0%\r\n   \ud83c\udfaf ISP: 10.0% | \ud83d\udd04 DIP: 30.0%\r\n```\r\n**Focus**: Simplicity and single purpose. Lenient thresholds to avoid over-engineering.\r\n\r\n### Libraries/Frameworks\r\n```\r\n\ud83e\udde0 Smart Analysis:\r\n   \ud83d\udccb Project Type: Library Framework\r\n   \ud83d\udcca Complexity Score: 0.7/1.00\r\n   \r\n\u2696\ufe0f Adaptive Weights:\r\n   \ud83d\udccb SRP: 20.0% | \ud83d\udd13 OCP: 30.0% | \ud83d\udd04 LSP: 20.0%\r\n   \ud83c\udfaf ISP: 25.0% | \ud83d\udd04 DIP: 5.0%\r\n```\r\n**Focus**: Extensibility (OCP) and clean interfaces (ISP). Strict thresholds for public APIs.\r\n\r\n### Large Applications\r\n```\r\n\ud83e\udde0 Smart Analysis:\r\n   \ud83d\udccb Project Type: Large Application\r\n   \ud83d\udcca Complexity Score: 0.8/1.00\r\n   \r\n\u2696\ufe0f Adaptive Weights:\r\n   \ud83d\udccb SRP: 30.0% | \ud83d\udd13 OCP: 25.0% | \ud83d\udd04 LSP: 20.0%\r\n   \ud83c\udfaf ISP: 15.0% | \ud83d\udd04 DIP: 10.0%\r\n```\r\n**Focus**: Maintainability (SRP) and extensibility (OCP). Strict compliance for long-term success.\r\n\r\n## \ud83d\udccb CLI Options\r\n\r\n| Option | Description |\r\n|--------|-------------|\r\n| `file` | Python file to analyze |\r\n| `--report` | Show detailed violation analysis |\r\n| `--json` | Output results in JSON format |\r\n| `--verbose` | Enable verbose error output |\r\n| `--smart` | Use smart contextual analysis (default) |\r\n| `--legacy` | Use classic analysis without adaptation |\r\n| `--no-smart-info` | Hide smart analysis information in report |\r\n\r\n## \ud83d\udcca Understanding the Output\r\n\r\n### Smart Analysis Section\r\n```\r\n\ud83e\udde0 Smart Analysis:\r\n   \ud83d\udccb Project Type: Small App\r\n   \ud83d\udcca Complexity Score: 0.30/1.00\r\n   \ud83d\udcc8 Lines of Code: 589\r\n   \ud83c\udfd7\ufe0f Classes: 8\r\n\r\n\u2696\ufe0f Adaptive Weights (for this project type):\r\n   \ud83d\udccb SRP: 25.0% | \ud83d\udd13 OCP: 20.0% | \ud83d\udd04 LSP: 20.0%\r\n   \ud83c\udfaf ISP: 15.0% | \ud83d\udd04 DIP: 20.0%\r\n```\r\n\r\n### SOLID Scores\r\n```\r\n\ud83d\udcca SOLID Scores (with context-aware thresholds):\r\n   \ud83d\udccb SRP: 0.62/1.00 \ud83d\udfe1\r\n   \ud83d\udd13 OCP: 0.50/1.00 \ud83d\udd34\r\n   \ud83d\udd04 LSP: 1.00/1.00 \ud83d\udfe2\r\n   \ud83c\udfaf ISP: 1.00/1.00 \ud83d\udfe2\r\n   \ud83d\udd04 DIP: 0.57/1.00 \ud83d\udd34\r\n```\r\n\r\n**Color Indicators**:\r\n- \ud83d\udfe2 **Green**: Excellent compliance (above \"good\" threshold)\r\n- \ud83d\udfe1 **Yellow**: Acceptable compliance (above \"acceptable\" threshold)  \r\n- \ud83d\udd34 **Red**: Needs improvement (below \"acceptable\" threshold)\r\n\r\n*Note: Thresholds adapt based on project type*\r\n\r\n## \ud83c\udfaf Project Types & Adaptive Behavior\r\n\r\n### 1. Simple Script\r\n- **Characteristics**: < 100 lines, 1-2 classes\r\n- **Focus**: Single purpose, avoid over-engineering\r\n- **Thresholds**: Lenient (Good: 0.6, Acceptable: 0.4)\r\n- **Weight Emphasis**: SRP (40%), DIP (30%)\r\n\r\n### 2. Utility Module  \r\n- **Characteristics**: 100-500 lines, few classes\r\n- **Focus**: Balance simplicity with reusability\r\n- **Thresholds**: Standard (Good: 0.8, Acceptable: 0.6)\r\n- **Weight Emphasis**: Balanced approach\r\n\r\n### 3. Small Application\r\n- **Characteristics**: 500-1500 lines, moderate complexity\r\n- **Focus**: Standard SOLID compliance\r\n- **Thresholds**: Standard (Good: 0.8, Acceptable: 0.6)\r\n- **Weight Emphasis**: Equal weighting\r\n\r\n### 4. Large Application\r\n- **Characteristics**: 1500+ lines, many classes\r\n- **Focus**: Maintainability and structure\r\n- **Thresholds**: Standard (Good: 0.8, Acceptable: 0.6)\r\n- **Weight Emphasis**: SRP (30%), OCP (25%)\r\n\r\n### 5. Library/Framework\r\n- **Characteristics**: Public APIs, reusable components\r\n- **Focus**: Extensibility and interface design\r\n- **Thresholds**: Strict (Good: 0.9, Acceptable: 0.7)\r\n- **Weight Emphasis**: OCP (30%), ISP (25%)\r\n\r\n## \ud83d\udee0\ufe0f Architecture\r\n\r\nThe tool follows a clean, modular architecture adhering to SOLID principles:\r\n\r\n```\r\nsolid-checker/\r\n\u251c\u2500\u2500 __main__.py               # Main entry point\r\n\u251c\u2500\u2500 solid_scorer.py           # Main smart analysis engine\r\n\u251c\u2500\u2500 srp/                      # Single Responsibility Principle analyzer\r\n\u2502   \u251c\u2500\u2500 __init__.py\r\n\u2502   \u251c\u2500\u2500 core.py              # Core SRP analysis logic\r\n\u2502   \u251c\u2500\u2500 facade.py            # Simple API facade\r\n\u2502   \u2514\u2500\u2500 protocols.py         # Type protocols and interfaces\r\n\u251c\u2500\u2500 ocp/                      # Open/Closed Principle analyzer\r\n\u251c\u2500\u2500 lsp/                      # Liskov Substitution Principle analyzer  \r\n\u251c\u2500\u2500 isp/                      # Interface Segregation Principle analyzer\r\n\u251c\u2500\u2500 dip/                      # Dependency Inversion Principle analyzer\r\n\u2514\u2500\u2500 README.md                # This documentation\r\n```\r\n\r\n### Key Components\r\n\r\n#### ProjectComplexityAnalyzer\r\nAnalyzes project characteristics to determine appropriate SOLID standards:\r\n- Lines of code counting\r\n- Class and method analysis\r\n- Inheritance depth calculation\r\n- External dependency tracking\r\n\r\n#### AdaptiveWeightCalculator\r\nCalculates context-aware weights and thresholds:\r\n- Project type-based weight adjustment\r\n- Quality threshold adaptation\r\n- Complex project stricter requirements\r\n\r\n#### ContextualRecommendationGenerator\r\nGenerates smart, targeted recommendations:\r\n- Project type-specific advice\r\n- Context-appropriate violation analysis\r\n- Prevents over-engineering warnings\r\n\r\n#### SOLIDScorer\r\nEnhanced scorer with adaptive capabilities:\r\n- Smart recommendation generation\r\n- Contextual summary creation\r\n- Weighted scoring with project awareness\r\n\r\n## \ud83d\udcc8 Example Analyses\r\n\r\n### Simple Python Script\r\n```python\r\n#!/usr/bin/env python3\r\ndef main():\r\n    name = input(\"Enter your name: \")\r\n    print(f\"Hello, {name}!\")\r\n\r\nif __name__ == \"__main__\":\r\n    main()\r\n```\r\n\r\n**Analysis Result**:\r\n```\r\n\ud83e\udde0 Smart Analysis:\r\n   \ud83d\udccb Project Type: Simple Script\r\n   \ud83d\udcca Complexity Score: 0.0/1.00\r\n\r\n\ud83c\udfaf Overall SOLID Score: 1.00/1.00\r\n\ud83d\udccb Summary: Perfect script organization! \ud83c\udfaf\r\n\r\n\ud83d\udca1 Smart Recommendations:\r\n   \u2705 Excellent! Your script follows good practices while staying simple\r\n   \ud83d\udca1 Insight: This level of organization is perfect for scripts\r\n```\r\n\r\n## \ud83d\udd27 Integration & CI/CD\r\n\r\n### JSON Output for Automation\r\n```bash\r\npython __main__.py --json my_code.py\r\n```\r\n\r\nSample JSON output:\r\n```json\r\n{\r\n  \"file_path\": \"my_code.py\",\r\n  \"scores\": {\r\n    \"srp_score\": 0.85,\r\n    \"ocp_score\": 0.75,\r\n    \"lsp_score\": 1.0,\r\n    \"isp_score\": 0.9,\r\n    \"dip_score\": 0.65,\r\n    \"overall_score\": 0.83\r\n  },\r\n  \"summary\": \"Great SOLID architecture! \ud83c\udf1f\",\r\n  \"smart_analysis\": {\r\n    \"project_type\": \"small_app\",\r\n    \"complexity_score\": 0.4,\r\n    \"lines_of_code\": 350,\r\n    \"class_count\": 5,\r\n    \"adaptive_weights\": {\r\n      \"srp\": 0.25,\r\n      \"ocp\": 0.2,\r\n      \"lsp\": 0.2,\r\n      \"isp\": 0.15,\r\n      \"dip\": 0.2\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n### GitHub Actions Integration\r\n```yaml\r\nname: SOLID Analysis\r\non: [push, pull_request]\r\njobs:\r\n  solid-check:\r\n    runs-on: ubuntu-latest\r\n    steps:\r\n    - uses: actions/checkout@v2\r\n    - name: Setup Python\r\n      uses: actions/setup-python@v2\r\n      with:\r\n        python-version: 3.13\r\n    - name: Run SOLID Analysis\r\n      run: |\r\n        python __main__.py --json src/main.py > solid_report.json\r\n        # Add custom logic to parse results and set exit codes\r\n```\r\n\r\n## \ud83c\udf93 Educational Value\r\n\r\nThis tool serves as both a practical analysis instrument and an educational resource:\r\n\r\n1. **Learn SOLID Principles**: Understand how each principle applies in real code\r\n2. **Contextual Understanding**: See how requirements change based on project type\r\n3. **Practical Application**: Get actionable advice rather than abstract theory\r\n4. **Progressive Improvement**: Track improvements over time with consistent metrics\r\n\r\n## \ud83c\udfc6 Why This Tool is Different\r\n\r\nUnlike traditional static analysis tools that apply rigid rules uniformly, SOLID Checker understands that **context matters**:\r\n\r\n- **No More Over-Engineering Warnings** for simple scripts that don't need complex architecture\r\n- **Stricter Standards** for libraries and frameworks where quality is paramount  \r\n- **Balanced Approach** for typical applications with practical recommendations\r\n- **Educational Feedback** that helps developers understand *why* certain principles matter more in different contexts\r\n\r\n**Result**: More practical, actionable, and contextually appropriate SOLID analysis that helps you write better code without unnecessary complexity.\r\n\r\n## \ud83e\udd1d Contributing\r\n\r\nContributions are welcome! Areas for enhancement:\r\n\r\n- **New Project Type Detection**: Additional heuristics for specialized domains\r\n- **Language Support**: Extend analysis to other programming languages  \r\n- **Custom Rules**: User-defined weighting and threshold configurations\r\n- **IDE Integration**: Plugins for popular development environments\r\n- **Continuous Monitoring**: Integration with code quality dashboards\r\n\r\n## \ud83d\udcdc License\r\n\r\nMIT License - feel free to use, modify, and distribute.\r\n\r\n---\r\n\r\n*Built with \u2764\ufe0f for developers who care about code quality and practical software architecture.*\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Smart SOLID principles analyzer with context-aware scoring and adaptive recommendations",
    "version": "1.0.2",
    "project_urls": {
        "Documentation": "https://github.com/DaymaNKinG990/solid-checker#readme",
        "Homepage": "https://github.com/DaymaNKinG990/solid-checker",
        "Issues": "https://github.com/DaymaNKinG990/solid-checker/issues",
        "Repository": "https://github.com/DaymaNKinG990/solid-checker.git"
    },
    "split_keywords": [
        "solid",
        " principles",
        " code-analysis",
        " static-analysis",
        " architecture",
        " clean-code"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "43cc4026762cacbc0151fe56a1f38e190baba9050ca0441417273038c5a63f4f",
                "md5": "5f13a23068783d2fb49b31d0ceea25b1",
                "sha256": "911963135c5e1299b3abba73805df874d22b3599790e88a2a3db68143b0c83dd"
            },
            "downloads": -1,
            "filename": "solid_checker-1.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5f13a23068783d2fb49b31d0ceea25b1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 55346,
            "upload_time": "2025-09-16T19:30:26",
            "upload_time_iso_8601": "2025-09-16T19:30:26.703245Z",
            "url": "https://files.pythonhosted.org/packages/43/cc/4026762cacbc0151fe56a1f38e190baba9050ca0441417273038c5a63f4f/solid_checker-1.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "68178b0ef4e4f3a1fbe5d70a8722d21620ef439f31a9f6f848333e0deafe26db",
                "md5": "9f07739a5a9a7c4d2ebf5f7ea69d062d",
                "sha256": "ddf69818fe1f3313ad8cc433e060a6455b9045687f8be970f670e3629e99cd22"
            },
            "downloads": -1,
            "filename": "solid_checker-1.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "9f07739a5a9a7c4d2ebf5f7ea69d062d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 50373,
            "upload_time": "2025-09-16T19:30:28",
            "upload_time_iso_8601": "2025-09-16T19:30:28.032049Z",
            "url": "https://files.pythonhosted.org/packages/68/17/8b0ef4e4f3a1fbe5d70a8722d21620ef439f31a9f6f848333e0deafe26db/solid_checker-1.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-16 19:30:28",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "DaymaNKinG990",
    "github_project": "solid-checker#readme",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "solid-checker"
}
        
Elapsed time: 1.35137s