# 🔍 SOLID Checker - Smart SOLID Analysis Tool
[](https://www.python.org/downloads/)
[](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[](https://www.python.org/downloads/)\r\n[](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"
}