Automated development and code repair system with enhanced analysis capabilities
Project description
๐ Devix - Modular Code Analysis Platform
Devix is a comprehensive, modular code analysis platform that provides deep insights into your codebase through multiple specialized analyzers. Built with Python, it offers powerful CLI tools, rich reporting, and intelligent project structure analysis.
โจ Key Features
- ๐ Multi-Analyzer Architecture: 5 specialized analyzers (ProjectScanner, Security, Quality, Test, Performance)
- ๐ Rich Reporting: Enhanced markdown and text reports with project tree visualization
- ๐ซ Smart Filtering:
.devixignoresupport with visual indicators for ignored files - โก Parallel Execution: Concurrent analyzer execution for optimal performance
- ๐ฏ CLI Subcommands: Clean command-line interface with
analyze,config, andinfocommands - ๐ Comprehensive Metrics: File statistics, coverage analysis, and cross-analyzer insights
- ๐ณ Project Structure Visualization: ASCII tree with file sizes and ignore markers
- ๐ง Modular Design: Extensible architecture for adding custom analyzers
๐ ๏ธ Installation
Quick Start
# Clone or navigate to the Devix directory
cd devix
# Install dependencies
pip install -e .
# Run analysis on your project
devix analyze /path/to/your/project
Installation Methods
Method 1: Package Installation
cd devix
pip install -e . # Install in development mode
devix analyze . # Analyze current directory
Method 2: Direct Execution
cd devix
PYTHONPATH=src python -m devix analyze /path/to/project
Method 3: Using Makefile
cd devix
make run # Analyze parent directory
make test # Run tests
make lint # Run linting
๐ฎ Usage
CLI Commands
Main Analysis Command
# Analyze current directory with verbose output
devix analyze . --verbose
# Analyze specific project path
devix analyze /path/to/project
# Select specific analyzers
devix analyze . --analyzers project_scanner,security,quality
# Enable parallel execution (default)
devix analyze . --parallel
# Set custom output directory
devix analyze . --output-dir ./reports
Configuration Management
# Create default configuration
devix config create
# Validate existing configuration
devix config validate
# Show configuration location
devix config validate --config /path/to/config.yaml
Information Commands
# Show version and system info
devix info
# List available analyzers
devix info --analyzers
# Validate system setup
devix info --validate
Makefile Commands
# Development workflow
make dev # Full development workflow
make run # Analyze parent directory
make test # Run tests with coverage
make lint # Run code quality checks
make format # Format code with black/isort
# Publishing and deployment
make build # Build package
make publish # Publish to PyPI
make version # Show version info
# Docker operations
make docker-build # Build Docker image
make docker-run # Run in Docker container
โ๏ธ Configuration
Configuration File (config.yaml)
# Analyzer settings
analyzers:
enabled: ["project_scanner", "security", "quality", "test", "performance"]
parallel_execution: true
max_workers: 4
# Reporting configuration
reporting:
formats: ["markdown", "text"]
output_directory: "."
include_tree_visualization: true
include_file_statistics: true
# File filtering
filtering:
use_gitignore: true
custom_ignore_patterns:
- "*.log"
- "node_modules/"
- ".pytest_cache/"
.devixignore File
Create a .devixignore file to exclude files/directories from analysis:
# Dependencies
node_modules/
__pycache__/
.venv/
# Build artifacts
dist/
build/
*.egg-info/
# IDE and system files
.vscode/
.idea/
.DS_Store
# Logs and temporary files
logs/
*.log
.coverage
๐ Analyzers
Project Scanner
- Purpose: Analyzes project structure, file statistics, and generates tree visualization
- Features:
- Full and filtered project trees
- File type breakdown and statistics
- Code fragment extraction
- Visual ignore markers (๐ซ) for excluded files
Security Analyzer
- Purpose: Identifies security vulnerabilities and risks
- Tools: Bandit, Safety (when available)
- Features:
- Static security analysis
- Dependency vulnerability scanning
- Hardcoded credentials detection
Quality Analyzer
- Purpose: Evaluates code quality and style
- Tools: Pylint, Flake8, Black, isort, mypy (when available)
- Features:
- Code complexity analysis
- Style guide compliance
- Type checking validation
Test Analyzer
- Purpose: Analyzes test coverage and quality
- Tools: pytest, coverage.py (when available)
- Features:
- Test discovery and execution
- Coverage measurement
- Test quality assessment
Performance Analyzer
- Purpose: Identifies performance bottlenecks
- Features:
- Runtime profiling
- Resource usage analysis
- Performance pattern detection
๐ Report Features
Enhanced Reporting
- Multiple Formats: Markdown and text reports with rich formatting
- Project Statistics: Real file counts (analyzed vs skipped)
- Tree Visualization: ASCII project structure with file sizes
- Visual Indicators: ๐ซ markers for ignored files and directories
- Cross-Analyzer Insights: Correlations between different analysis results
Report Contents
- Executive Summary: Health scores and quick metrics
- Detailed Analysis: Per-analyzer results with issues and recommendations
- File Statistics: Comprehensive breakdown by file type and location
- Project Structure: Complete tree view with ignore patterns applied
- Actionable Recommendations: Priority-sorted improvement suggestions
๐จ Troubleshooting
Common Issues
No files found for analysis
- Check your
.devixignorepatterns - Ensure project path is correct
- Verify file permissions
Missing analyzer tools
- Install optional dependencies:
pip install bandit safety pylint - Check tool availability:
devix info --validate
Slow performance
- Use parallel execution:
--parallel(default) - Reduce analyzer scope:
--analyzers project_scanner,quality - Filter large directories in
.devixignore
Import errors
- Ensure proper installation:
pip install -e . - Check PYTHONPATH:
export PYTHONPATH=src:$PYTHONPATH - Verify Python version compatibility (3.8+)
๐ Example Workflows
Basic Analysis
# Quick analysis of current directory
devix analyze . --verbose
# Check reports
ls devix_report_*.md devix_report_*.txt
CI/CD Integration
# In your CI pipeline
devix analyze . --output-dir ./reports
# Check exit code for quality gates
if [ $? -eq 0 ]; then
echo "Analysis passed!"
else
echo "Analysis found issues"
exit 1
fi
Custom Configuration
# Create and customize config
devix config create
# Edit config.yaml as needed
# Run with custom config
devix analyze . --config ./my-config.yaml
๐๏ธ Architecture
Module Structure
devix/
โโโ src/devix/
โ โโโ analysis/ # Analysis modules
โ โ โโโ project_scanner.py
โ โ โโโ security_analyzer.py
โ โ โโโ quality_analyzer.py
โ โ โโโ test_analyzer.py
โ โ โโโ performance_analyzer.py
โ โโโ reporting/ # Report generation
โ โ โโโ enhanced_generator.py
โ โ โโโ markdown_formatter.py
โ โ โโโ text_formatter.py
โ โโโ cli/ # Command-line interface
โ โโโ config/ # Configuration management
โ โโโ core/ # Core orchestration
โโโ tests/ # Test suite
โโโ docs/ # Documentation
Extension Points
- Custom Analyzers: Inherit from
BaseAnalyzer - Custom Formatters: Inherit from
BaseFormatter - Custom Configuration: Extend
ConfigManager
๐ค Contributing
Development Setup
# Clone and setup
git clone <repository>
cd devix
pip install -e ".[dev]"
# Run tests
make test
# Run linting
make lint
# Format code
make format
Adding New Analyzers
- Create new analyzer in
src/devix/analysis/ - Inherit from
BaseAnalyzer - Implement
analyze()method - Register in
DevixOrchestrator - Add tests and documentation
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
Generated by Devix - Modular Code Analysis Platform
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file devix-2.0.0.tar.gz.
File metadata
- Download URL: devix-2.0.0.tar.gz
- Upload date:
- Size: 58.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fcdca62b33ce770b0dfcf731eb22db1fadc9dcdb85526c3c88b97f629b6f5b63
|
|
| MD5 |
17b0a8947895e74e326213c70a834412
|
|
| BLAKE2b-256 |
33c9261001e4974a7796f089d03b181c174c5c04ebd747f40131f97317e9cc96
|
File details
Details for the file devix-2.0.0-py3-none-any.whl.
File metadata
- Download URL: devix-2.0.0-py3-none-any.whl
- Upload date:
- Size: 64.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d42f805b36b403e6ac6b216b56a3280fe00ef58adfca38d00af99826cc700c60
|
|
| MD5 |
3f75be4f6632d5a57446f9614c70cd29
|
|
| BLAKE2b-256 |
84571af73d81e10df58fc21aec575e1ff635f61b5e65415ca30a7bcc6524d9f8
|