134 lines
5.0 KiB
Markdown
134 lines
5.0 KiB
Markdown
# PyUCC - Python Unified Code Counter
|
|
|
|
**PyUCC** is a robust, Python-based static analysis tool designed to count SLOC (Source Lines of Code), calculate complexity metrics, and track code evolution through advanced baseline comparison.
|
|
|
|
Built with strict engineering principles (PEP8, Separation of Concerns), PyUCC offers a responsive GUI to help developers and managers maintain code quality over time.
|
|
|
|
---
|
|
|
|
## 🇬🇧 English Documentation
|
|
|
|
### Key Features
|
|
|
|
* **🔍 Multi-Language Scanning:** Automatically detects and scans source files for C++, Python, Java, JavaScript, and many other languages.
|
|
* **🔢 SLOC Counting:** Detailed breakdown of Physical lines, Code lines, Comments, and Blank lines.
|
|
* **📊 Advanced Metrics:**
|
|
* **Cyclomatic Complexity (CC):** Identify complex and error-prone logic.
|
|
* **Maintainability Index (MI):** quantitative score of how maintainable the code is.
|
|
* **🔀 Differing & Baselines:**
|
|
* Create snapshots (Baselines) of your project.
|
|
* Compare current code against previous baselines using smart matching algorithms (Gale-Shapley + Levenshtein).
|
|
* Visualize Added, Deleted, and Modified files with delta metrics.
|
|
* **👁️ Visual Diff Viewer:** Integrated side-by-side viewer with syntax highlighting and minimap to inspect changes.
|
|
* **⚙️ Custom Profiles:** Save configurations for different projects (filters, ignore patterns, languages).
|
|
|
|
### Installation
|
|
|
|
PyUCC requires **Python 3.8+**.
|
|
|
|
1. **Clone the repository:**
|
|
```bash
|
|
git clone https://github.com/yourusername/pyucc.git
|
|
cd pyucc
|
|
```
|
|
|
|
2. **Install dependencies:**
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
### Usage
|
|
|
|
**Launch the GUI:**
|
|
Run the module from the repository root:
|
|
|
|
```bash
|
|
python -m pyucc
|
|
```
|
|
|
|
**First Steps:**
|
|
1. Click **Manage** to create a new Profile (select your source folder and languages).
|
|
2. Click **Scan** to verify file detection.
|
|
3. Click **Differing** to create your first **Baseline**.
|
|
|
|
### Documentation
|
|
|
|
For a deep dive into usage, workflows, and configuration, please refer to the **User Manual**:
|
|
|
|
👉 **[Read the User Manual](docs/MANUAL.md)**
|
|
|
|
### Technical Philosophy
|
|
* **Separation of Concerns:** Core logic is strictly separated from the GUI layer.
|
|
* **Non-Blocking UI:** Heavy tasks run in background threads using a custom `WorkerManager`.
|
|
* **Clean Code:** Strictly adheres to PEP8 standards.
|
|
|
|
---
|
|
|
|
<br>
|
|
<br>
|
|
|
|
## 🇮🇹 Documentazione in Italiano
|
|
|
|
### Panoramica
|
|
|
|
**PyUCC** è uno strumento di analisi statica scritto in Python, progettato per contare le righe di codice (SLOC), calcolare metriche di complessità e tracciare l'evoluzione del software tramite il confronto tra versioni (Baseline).
|
|
|
|
Sviluppato seguendo rigorosi principi di ingegneria del software, PyUCC offre un'interfaccia grafica reattiva per aiutare sviluppatori e manager a mantenere alta la qualità del codice.
|
|
|
|
### Funzionalità Principali
|
|
|
|
* **🔍 Scansione Multi-Linguaggio:** Rileva e scansiona automaticamente C++, Python, Java, JavaScript e molti altri.
|
|
* **🔢 Conteggio SLOC:** Dettaglio di righe Fisiche, Codice effettivo, Commenti e Righe vuote.
|
|
* **📊 Metriche Avanzate:**
|
|
* **Complessità Ciclomatica (CC):** Identifica la logica complessa e soggetta a errori.
|
|
* **Maintainability Index (MI):** Punteggio quantitativo sulla manutenibilità del codice.
|
|
* **🔀 Differing e Baseline:**
|
|
* Crea istantanee (Baseline) del tuo progetto.
|
|
* Confronta il codice attuale con le baseline precedenti usando algoritmi di matching intelligenti.
|
|
* Visualizza file Aggiunti, Rimossi e Modificati con i delta delle metriche.
|
|
* **👁️ Visual Diff Viewer:** Visualizzatore integrato fianco a fianco con evidenziazione sintassi e minimappa per ispezionare le modifiche.
|
|
* **⚙️ Profili Personalizzati:** Salva configurazioni per progetti diversi (filtri, pattern di esclusione, linguaggi).
|
|
|
|
### Installazione
|
|
|
|
PyUCC richiede **Python 3.8+**.
|
|
|
|
1. **Clona il repository:**
|
|
```bash
|
|
git clone https://github.com/tuousername/pyucc.git
|
|
cd pyucc
|
|
```
|
|
|
|
2. **Installa le dipendenze:**
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
### Utilizzo
|
|
|
|
**Avviare l'interfaccia grafica:**
|
|
Esegui il modulo dalla root del repository:
|
|
|
|
```bash
|
|
python -m pyucc
|
|
```
|
|
|
|
**Primi Passi:**
|
|
1. Clicca su **Manage** per creare un nuovo Profilo (seleziona la cartella sorgente e i linguaggi).
|
|
2. Clicca su **Scan** per verificare che i file vengano rilevati.
|
|
3. Clicca su **Differing** per creare la tua prima **Baseline**.
|
|
|
|
### Documentazione
|
|
|
|
Per una guida approfondita sull'utilizzo, i flussi di lavoro e la configurazione, consulta il **Manuale Utente**:
|
|
|
|
👉 **[Leggi il Manuale Utente](docs/MANUAL.md)**
|
|
|
|
### Filosofia Tecnica
|
|
* **Separazione delle Responsabilità:** La logica Core è separata dallo strato GUI.
|
|
* **UI Non Bloccante:** Le operazioni pesanti girano in thread separati grazie a un `WorkerManager` dedicato.
|
|
* **Clean Code:** Il codice rispetta rigorosamente gli standard PEP8.
|
|
|
|
---
|
|
|
|
*2025 - Developed with Python.* |