project-diagnose 0.1.9__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- project_diagnose/__init__.py +1 -0
- project_diagnose/analyzer.py +438 -0
- project_diagnose/cli.py +55 -0
- project_diagnose/config_schema.py +34 -0
- project_diagnose/rendering.py +18 -0
- project_diagnose/static/script.js +76 -0
- project_diagnose/static/style.css +144 -0
- project_diagnose/templates/index.html +65 -0
- project_diagnose/templates/settings.html +293 -0
- project_diagnose/web.py +125 -0
- project_diagnose-0.1.9.dist-info/METADATA +157 -0
- project_diagnose-0.1.9.dist-info/RECORD +16 -0
- project_diagnose-0.1.9.dist-info/WHEEL +5 -0
- project_diagnose-0.1.9.dist-info/entry_points.txt +2 -0
- project_diagnose-0.1.9.dist-info/licenses/LICENSE +5 -0
- project_diagnose-0.1.9.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: project-diagnose
|
|
3
|
+
Version: 0.1.9
|
|
4
|
+
Summary: AI-анализатор хаоса проекта и web-интерфейс для просмотра отчётов.
|
|
5
|
+
Home-page: https://github.com/yourname/project-diagnose
|
|
6
|
+
Author: Razmakh
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Classifier: Environment :: Console
|
|
11
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
12
|
+
Requires-Python: >=3.8
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
License-File: LICENSE
|
|
15
|
+
Requires-Dist: flask
|
|
16
|
+
Requires-Dist: pydantic>=2.0
|
|
17
|
+
Dynamic: author
|
|
18
|
+
Dynamic: classifier
|
|
19
|
+
Dynamic: description
|
|
20
|
+
Dynamic: description-content-type
|
|
21
|
+
Dynamic: home-page
|
|
22
|
+
Dynamic: license-file
|
|
23
|
+
Dynamic: requires-dist
|
|
24
|
+
Dynamic: requires-python
|
|
25
|
+
Dynamic: summary
|
|
26
|
+
|
|
27
|
+
# 🧠 project-diagnose
|
|
28
|
+
**AI-анализатор состояния проекта: хаос-индекс, техническая карма, прогноз страданий и web-интерфейс.**
|
|
29
|
+
|
|
30
|
+
`project-diagnose` — это утилита, которая смотрит на ваш проект так, как на кафедре смотрят на историю болезни: внимательно, придирчиво и с долей профессиональной боли.
|
|
31
|
+
|
|
32
|
+
Инструмент предназначен для разработчиков, которые хотят:
|
|
33
|
+
|
|
34
|
+
- понимать состояние своего проекта в любой момент времени
|
|
35
|
+
- отслеживать рост технического долга
|
|
36
|
+
- получать честные AI-вердикты
|
|
37
|
+
- иметь web-панель для просмотра структуры и отчётов
|
|
38
|
+
- подключить диагностику в git-hooks, CI или PyPI-workflow
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 🚀 Установка
|
|
43
|
+
|
|
44
|
+
После публикации на PyPI:
|
|
45
|
+
|
|
46
|
+
pip install project-diagnose
|
|
47
|
+
|
|
48
|
+
Либо локально из репозитория:
|
|
49
|
+
|
|
50
|
+
pip install -e .
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 🧩 Возможности
|
|
56
|
+
|
|
57
|
+
### 📊 Аналитика проекта
|
|
58
|
+
Полный анализ вашего репозитория:
|
|
59
|
+
|
|
60
|
+
- суммарный вес файлов
|
|
61
|
+
- количество строк по расширениям
|
|
62
|
+
- топ тяжёлых файлов
|
|
63
|
+
- топ длинных файлов
|
|
64
|
+
- подозрительно маленькие файлы
|
|
65
|
+
- структура проекта с датами, размерами и количеством строк
|
|
66
|
+
|
|
67
|
+
### 🤖 AI-оценка структуры
|
|
68
|
+
Инструмент вычисляет:
|
|
69
|
+
|
|
70
|
+
- **Chaos Index** — индекс хаоса
|
|
71
|
+
- **Technical Karma** — карма технического долга
|
|
72
|
+
- **AI Verdict** — честное мнение алгоритма
|
|
73
|
+
- **Suspicious Files Score** — уровень бесполезности мелких файлов
|
|
74
|
+
- ASCII-диаграммы, визуализация и выводы
|
|
75
|
+
|
|
76
|
+
### 🔮 Прогноз страданий разработчика
|
|
77
|
+
Метрика FRI (Future Regret Index):
|
|
78
|
+
|
|
79
|
+
- предсказывает, насколько больно будет работать с проектом через 6 месяцев
|
|
80
|
+
- анализирует разброс строк, мелкие файлы, длину кода
|
|
81
|
+
|
|
82
|
+
Плюс:
|
|
83
|
+
|
|
84
|
+
- граф зависимостей мусорных файлов
|
|
85
|
+
- выявление токсичных импортов
|
|
86
|
+
|
|
87
|
+
### 🌐 Web-интерфейс
|
|
88
|
+
|
|
89
|
+
Команда:
|
|
90
|
+
|
|
91
|
+
project-diagnose web
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
Даёт вам локальный сайт:
|
|
95
|
+
|
|
96
|
+
- красивый тёмный/светлый режим
|
|
97
|
+
- панель инструментов
|
|
98
|
+
- текстовый отчёт
|
|
99
|
+
- структура проекта
|
|
100
|
+
- поиск «депрессивного» кода (`todo`, `fixme`, `temp`, `hack`…)
|
|
101
|
+
- кнопка «рефакторинг» (которая говорит правду)
|
|
102
|
+
- скачивание отчёта
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## ⚙️ Команды
|
|
107
|
+
|
|
108
|
+
| Команда | Описание |
|
|
109
|
+
|--------|----------|
|
|
110
|
+
| `project-diagnose analyze` | Быстрый анализ проекта |
|
|
111
|
+
| `project-diagnose report` | Полный текстовый отчёт |
|
|
112
|
+
| `project-diagnose report --html` | HTML-версия отчёта |
|
|
113
|
+
| `project-diagnose tree` | Структура проекта |
|
|
114
|
+
| `project-diagnose full` | Полный вывод (структура + отчёт) |
|
|
115
|
+
| `project-diagnose web` | Запуск web-интерфейса |
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## 🛠 Интеграция с Git
|
|
120
|
+
|
|
121
|
+
Вы можете подключить DIAGNOSE в:
|
|
122
|
+
|
|
123
|
+
- `pre-commit` (блокировка коммитов при высоком хаосе)
|
|
124
|
+
- `post-commit` (автоматическая генерация отчёта)
|
|
125
|
+
- Telegram-уведомления
|
|
126
|
+
- CI/CD pipelines
|
|
127
|
+
|
|
128
|
+
Пример pre-commit:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
report=$(project-diagnose report | grep "Индекс хаоса")
|
|
132
|
+
chaos=$(echo "$report" | grep -oE '[0-9]+\.[0-9]+')
|
|
133
|
+
if (( $(echo "$chaos > 35" | bc -l) )); then
|
|
134
|
+
echo "Коммит запрещён. Хаос выше нормы."
|
|
135
|
+
exit 1
|
|
136
|
+
fi
|
|
137
|
+
```
|
|
138
|
+
📦 Структура проекта
|
|
139
|
+
project_diagnose/
|
|
140
|
+
cli.py
|
|
141
|
+
analyzer.py
|
|
142
|
+
rendering.py
|
|
143
|
+
web.py
|
|
144
|
+
__init__.py
|
|
145
|
+
|
|
146
|
+
📝 Лицензия
|
|
147
|
+
MIT License — делайте, что хотите, только сохраняйте уважение к автору.
|
|
148
|
+
|
|
149
|
+
🌟 Автор
|
|
150
|
+
|
|
151
|
+
Разработка: Razmakh
|
|
152
|
+
Вдохновение: проекты, которые плачут о помощи.
|
|
153
|
+
|
|
154
|
+
💬 Обратная связь
|
|
155
|
+
|
|
156
|
+
Если вам понравился инструмент — ставьте ⭐ на GitHub.
|
|
157
|
+
Если не понравился — значит, индекс хаоса был слишком высоким.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
project_diagnose/__init__.py,sha256=248SFgOW8tTzDpyY6euJ1BwIHMa4uimdKSyc2FGEEZE,21
|
|
2
|
+
project_diagnose/analyzer.py,sha256=GqoiJv8H2TvvdyZll2l05xzUHNCBUXX9FX6_UxOIidM,14850
|
|
3
|
+
project_diagnose/cli.py,sha256=12LwodMnIshAs5L47ygOlRcNpuJ3Y3OI49kxTTk-5aY,1365
|
|
4
|
+
project_diagnose/config_schema.py,sha256=qh9RtAo0o4u7KHf_IBfboq4Ey40pUMZdGNSRaPD_GfM,1493
|
|
5
|
+
project_diagnose/rendering.py,sha256=_8lU6D5p51Xwk3UshnoR0bPn5G3ha3fViJ6qBN2tDsk,479
|
|
6
|
+
project_diagnose/web.py,sha256=AdkjHdWkEZf0FsG8LjQ5u3ljKEKAr-w9iXX4hrwmQqw,3591
|
|
7
|
+
project_diagnose/static/script.js,sha256=LPbeVJVolcw7qaaa14JKQEBiCUFObt64ziao5iWa4ic,2721
|
|
8
|
+
project_diagnose/static/style.css,sha256=RRJZuFxKczilH4LA0y6uOpgR01siHh4TiXiMiROKCe4,2380
|
|
9
|
+
project_diagnose/templates/index.html,sha256=AFqu9MGK4f3otLy9ijBNcnDZwcUnmBPw2X3MZUIKgb4,2234
|
|
10
|
+
project_diagnose/templates/settings.html,sha256=Q7mWleYwWMEcjwRGEhvvqo2FXNINNS1fXZYvsOEst0M,9074
|
|
11
|
+
project_diagnose-0.1.9.dist-info/licenses/LICENSE,sha256=xYJhngCKGEvG6Y4j1WMg4fO6TD81YWgeBZmpryRrz_g,69
|
|
12
|
+
project_diagnose-0.1.9.dist-info/METADATA,sha256=o_c2qer1X2zyYoUtvutQd4BJqE5iZjfmxjpWRtPH6j4,5953
|
|
13
|
+
project_diagnose-0.1.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
14
|
+
project_diagnose-0.1.9.dist-info/entry_points.txt,sha256=0tjtDzFNubfi5ArDub41pMi1_bCXyCmKwG2UwdNuP5c,63
|
|
15
|
+
project_diagnose-0.1.9.dist-info/top_level.txt,sha256=2YcGi30cZwph0o21hTTPrZ2zjdX_ofndhpYglcFHvsU,17
|
|
16
|
+
project_diagnose-0.1.9.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
project_diagnose
|