ai-docs-gen 0.1.4__tar.gz

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.
@@ -0,0 +1,197 @@
1
+ Metadata-Version: 2.4
2
+ Name: ai-docs-gen
3
+ Version: 0.1.4
4
+ Summary: CLI-инструмент для генерации технической документации по коду и конфигурациям
5
+ Requires-Python: >=3.8
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: requests
8
+ Requires-Dist: tiktoken
9
+ Requires-Dist: pyyaml
10
+ Requires-Dist: pathspec
11
+ Requires-Dist: tomli
12
+ Requires-Dist: python-dotenv
13
+ Requires-Dist: mkdocs
14
+ Requires-Dist: mkdocs-mermaid2-plugin
15
+ Requires-Dist: pymdown-extensions
16
+
17
+ # ai_docs — генератор технической документации
18
+
19
+ ## Обзор
20
+ `ai_docs` — CLI‑инструмент для генерации технической документации по коду и конфигурациям.
21
+ Поддерживает локальные папки, локальные git‑проекты и удалённые git‑репозитории.
22
+ Генерирует `README.md` и MkDocs‑сайт (с автоматической сборкой).
23
+
24
+ Ключевые возможности:
25
+ - Автоопределение доменов инфраструктуры (Kubernetes, Helm, Terraform, Ansible, Docker, CI/CD, Observability, Service Mesh / Ingress, Data / Storage)
26
+ - Инкрементальная генерация и кэширование
27
+ - Учет `.gitignore` и фильтрация файлов
28
+ - Параллельная LLM‑суммаризация (`--threads` / `AI_DOCS_THREADS`)
29
+ - Отчёт об изменениях в `docs/changes.md`
30
+
31
+ ## Быстрый старт
32
+
33
+ 1) Установка зависимостей:
34
+ ```bash
35
+ python3 -m venv .venv
36
+ . .venv/bin/activate
37
+ pip install -r requirements.txt
38
+ ```
39
+
40
+ Альтернатива (установка как пакет):
41
+ ```bash
42
+ python3 -m venv .venv
43
+ . .venv/bin/activate
44
+ pip install ai-docs-gen
45
+ ```
46
+
47
+ Локальная установка в editable‑режиме:
48
+ ```bash
49
+ python3 -m venv .venv
50
+ . .venv/bin/activate
51
+ pip install -e .
52
+ ```
53
+
54
+ 2) Настройка `.env` (пример — `.env.example`):
55
+ ```env
56
+ OPENAI_API_KEY=your_api_key_here
57
+ OPENAI_BASE_URL=https://api.openai.com/v1
58
+ OPENAI_MODEL=gpt-4o-mini
59
+ OPENAI_MAX_TOKENS=1200
60
+ OPENAI_CONTEXT_TOKENS=8192
61
+ OPENAI_TEMPERATURE=0.2
62
+ AI_DOCS_THREADS=1
63
+ AI_DOCS_LOCAL_SITE=false
64
+ ```
65
+
66
+ 3) Генерация README и MkDocs:
67
+ ```bash
68
+ python -m ai_docs --source .
69
+ ```
70
+
71
+ Альтернативно:
72
+ ```bash
73
+ python ai_docs --source .
74
+ ```
75
+
76
+ Если установлен как пакет:
77
+ ```bash
78
+ ai-docs --source .
79
+ ```
80
+
81
+ ## Примеры использования
82
+
83
+ Локальная папка:
84
+ ```bash
85
+ python -m ai_docs --source /path/to/project
86
+ ```
87
+
88
+ Локальный git‑проект:
89
+ ```bash
90
+ python -m ai_docs --source ~/projects/my-repo
91
+ ```
92
+
93
+ Удалённый репозиторий:
94
+ ```bash
95
+ python -m ai_docs --source https://github.com/org/repo.git
96
+ ```
97
+
98
+ Только README:
99
+ ```bash
100
+ python -m ai_docs --source . --readme
101
+ ```
102
+
103
+ Только MkDocs:
104
+ ```bash
105
+ python -m ai_docs --source . --mkdocs
106
+ ```
107
+
108
+ Локальный режим для MkDocs:
109
+ ```bash
110
+ python -m ai_docs --source . --mkdocs --local-site
111
+ ```
112
+
113
+ ## Что генерируется
114
+ - `README.md` — краткое описание проекта
115
+ - `.ai-docs/` — страницы документации
116
+ - `.ai-docs/changes.md` — изменения с последней генерации
117
+ - `.ai-docs/modules/` — детальная документация модулей (страница на модуль, Doxygen‑подобное описание функций/классов/параметров)
118
+ - `.ai-docs/configs/` — документация конфигов проекта (обзор + страницы конфигов в универсальном стиле)
119
+ - `.ai-docs/_index.json` — навигационный индекс документации (правила маршрутизации, список секций и модулей)
120
+ - `mkdocs.yml` — конфиг MkDocs
121
+ - `ai_docs_site/` — собранный сайт MkDocs
122
+ - `.ai_docs_cache/` — кэш и промежуточные summary‑файлы
123
+
124
+ ## Поддерживаемые языки и расширения
125
+ Поддержка основана на расширениях кода в `ai_docs/domain.py`:
126
+ `.py`, `.pyi`, `.pyx`, `.js`, `.jsx`, `.ts`, `.tsx`, `.go`, `.java`, `.c`, `.cc`, `.cpp`, `.h`, `.hpp`, `.rs`, `.rb`, `.php`, `.cs`, `.kt`, `.kts`, `.swift`, `.m`, `.mm`, `.vb`, `.bas`, `.sql`, `.pas`, `.dpr`, `.pp`, `.r`, `.pl`, `.pm`, `.f`, `.for`, `.f90`, `.f95`, `.f03`, `.f08`, `.sb3`, `.adb`, `.ads`, `.asm`, `.s`, `.ino`, `.htm`, `.html`, `.css`.
127
+
128
+ ## Индекс документации
129
+ Файл `.ai-docs/_index.json` строится автоматически при генерации и содержит:
130
+ - список секций и модулей (пути и краткие описания);
131
+ - правила маршрутизации: приоритет `modules/index.md → modules/* → index.md/architecture.md/conventions.md`;
132
+ - принцип ранжирования: частота ключевых совпадений + приоритет файла.
133
+
134
+ ## .ai-docs.yaml (расширения)
135
+ Если в проекте есть файл `.ai-docs.yaml`, он задаёт приоритетный список расширений для сканирования.
136
+ Если файла нет, он создаётся автоматически на основе текущих `*_EXTENSIONS`.
137
+
138
+ Формат (поддерживаются map и list для расширений):
139
+ ```yaml
140
+ code_extensions:
141
+ .py: Python
142
+ .ts: TypeScript
143
+ doc_extensions:
144
+ .md: Markdown
145
+ .rst: reStructuredText
146
+ config_extensions:
147
+ .yml: YAML
148
+ .json: JSON
149
+ exclude:
150
+ - "temp/*"
151
+ - "*.log"
152
+ ```
153
+
154
+ ## CLI‑параметры
155
+ - `--source <path|url>` — источник
156
+ - `--output <path>` — выходная директория (по умолчанию: source для локальных путей, `./output/<repo>` для URL)
157
+
158
+ ## Тестирование
159
+ Тесты находятся в каталоге `tests/`:
160
+ - `test_cache.py`
161
+ - `test_changes.py`
162
+ - `test_scanner.py`
163
+
164
+ Запуск (из корня проекта):
165
+ ```bash
166
+ python -m pytest
167
+ ```
168
+ - `--readme` — генерировать только README
169
+ - `--mkdocs` — генерировать только MkDocs
170
+ - `--language ru|en` — язык документации
171
+ - `--include/--exclude` — фильтры
172
+ - `--max-size` — максимальный размер файла
173
+ - `--threads` — число потоков LLM
174
+ - `--cache-dir` — директория кэша (по умолчанию `.ai_docs_cache`)
175
+ - `--no-cache` — отключить LLM‑кэш
176
+ - `--local-site` — добавить `site_url` и `use_directory_urls` в `mkdocs.yml`
177
+ - `--force` — перезаписать `README.md`, если он уже существует
178
+
179
+ Поведение по умолчанию: если не указаны `--readme` и `--mkdocs`, генерируются оба артефакта.
180
+
181
+ ## MkDocs
182
+ Сборка выполняется автоматически в конце генерации:
183
+ ```
184
+ mkdocs build -f mkdocs.yml
185
+ ```
186
+
187
+ ## Исключения
188
+ Сканер учитывает `.gitignore`, `.build_ignore` и дефолтные исключения:
189
+ `.venv`, `node_modules`, `ai_docs_site`, `.ai-docs`, `.ai_docs_cache`, `dist`, `build`, т.д.
190
+
191
+ ## Разработка и вклад
192
+ - Установите зависимости (см. «Быстрый старт»)
193
+ - Запускайте через `python -m ai_docs ...` для отладки
194
+ - PR и предложения приветствуются
195
+
196
+ ## Лицензия
197
+ MIT
@@ -0,0 +1,181 @@
1
+ # ai_docs — генератор технической документации
2
+
3
+ ## Обзор
4
+ `ai_docs` — CLI‑инструмент для генерации технической документации по коду и конфигурациям.
5
+ Поддерживает локальные папки, локальные git‑проекты и удалённые git‑репозитории.
6
+ Генерирует `README.md` и MkDocs‑сайт (с автоматической сборкой).
7
+
8
+ Ключевые возможности:
9
+ - Автоопределение доменов инфраструктуры (Kubernetes, Helm, Terraform, Ansible, Docker, CI/CD, Observability, Service Mesh / Ingress, Data / Storage)
10
+ - Инкрементальная генерация и кэширование
11
+ - Учет `.gitignore` и фильтрация файлов
12
+ - Параллельная LLM‑суммаризация (`--threads` / `AI_DOCS_THREADS`)
13
+ - Отчёт об изменениях в `docs/changes.md`
14
+
15
+ ## Быстрый старт
16
+
17
+ 1) Установка зависимостей:
18
+ ```bash
19
+ python3 -m venv .venv
20
+ . .venv/bin/activate
21
+ pip install -r requirements.txt
22
+ ```
23
+
24
+ Альтернатива (установка как пакет):
25
+ ```bash
26
+ python3 -m venv .venv
27
+ . .venv/bin/activate
28
+ pip install ai-docs-gen
29
+ ```
30
+
31
+ Локальная установка в editable‑режиме:
32
+ ```bash
33
+ python3 -m venv .venv
34
+ . .venv/bin/activate
35
+ pip install -e .
36
+ ```
37
+
38
+ 2) Настройка `.env` (пример — `.env.example`):
39
+ ```env
40
+ OPENAI_API_KEY=your_api_key_here
41
+ OPENAI_BASE_URL=https://api.openai.com/v1
42
+ OPENAI_MODEL=gpt-4o-mini
43
+ OPENAI_MAX_TOKENS=1200
44
+ OPENAI_CONTEXT_TOKENS=8192
45
+ OPENAI_TEMPERATURE=0.2
46
+ AI_DOCS_THREADS=1
47
+ AI_DOCS_LOCAL_SITE=false
48
+ ```
49
+
50
+ 3) Генерация README и MkDocs:
51
+ ```bash
52
+ python -m ai_docs --source .
53
+ ```
54
+
55
+ Альтернативно:
56
+ ```bash
57
+ python ai_docs --source .
58
+ ```
59
+
60
+ Если установлен как пакет:
61
+ ```bash
62
+ ai-docs --source .
63
+ ```
64
+
65
+ ## Примеры использования
66
+
67
+ Локальная папка:
68
+ ```bash
69
+ python -m ai_docs --source /path/to/project
70
+ ```
71
+
72
+ Локальный git‑проект:
73
+ ```bash
74
+ python -m ai_docs --source ~/projects/my-repo
75
+ ```
76
+
77
+ Удалённый репозиторий:
78
+ ```bash
79
+ python -m ai_docs --source https://github.com/org/repo.git
80
+ ```
81
+
82
+ Только README:
83
+ ```bash
84
+ python -m ai_docs --source . --readme
85
+ ```
86
+
87
+ Только MkDocs:
88
+ ```bash
89
+ python -m ai_docs --source . --mkdocs
90
+ ```
91
+
92
+ Локальный режим для MkDocs:
93
+ ```bash
94
+ python -m ai_docs --source . --mkdocs --local-site
95
+ ```
96
+
97
+ ## Что генерируется
98
+ - `README.md` — краткое описание проекта
99
+ - `.ai-docs/` — страницы документации
100
+ - `.ai-docs/changes.md` — изменения с последней генерации
101
+ - `.ai-docs/modules/` — детальная документация модулей (страница на модуль, Doxygen‑подобное описание функций/классов/параметров)
102
+ - `.ai-docs/configs/` — документация конфигов проекта (обзор + страницы конфигов в универсальном стиле)
103
+ - `.ai-docs/_index.json` — навигационный индекс документации (правила маршрутизации, список секций и модулей)
104
+ - `mkdocs.yml` — конфиг MkDocs
105
+ - `ai_docs_site/` — собранный сайт MkDocs
106
+ - `.ai_docs_cache/` — кэш и промежуточные summary‑файлы
107
+
108
+ ## Поддерживаемые языки и расширения
109
+ Поддержка основана на расширениях кода в `ai_docs/domain.py`:
110
+ `.py`, `.pyi`, `.pyx`, `.js`, `.jsx`, `.ts`, `.tsx`, `.go`, `.java`, `.c`, `.cc`, `.cpp`, `.h`, `.hpp`, `.rs`, `.rb`, `.php`, `.cs`, `.kt`, `.kts`, `.swift`, `.m`, `.mm`, `.vb`, `.bas`, `.sql`, `.pas`, `.dpr`, `.pp`, `.r`, `.pl`, `.pm`, `.f`, `.for`, `.f90`, `.f95`, `.f03`, `.f08`, `.sb3`, `.adb`, `.ads`, `.asm`, `.s`, `.ino`, `.htm`, `.html`, `.css`.
111
+
112
+ ## Индекс документации
113
+ Файл `.ai-docs/_index.json` строится автоматически при генерации и содержит:
114
+ - список секций и модулей (пути и краткие описания);
115
+ - правила маршрутизации: приоритет `modules/index.md → modules/* → index.md/architecture.md/conventions.md`;
116
+ - принцип ранжирования: частота ключевых совпадений + приоритет файла.
117
+
118
+ ## .ai-docs.yaml (расширения)
119
+ Если в проекте есть файл `.ai-docs.yaml`, он задаёт приоритетный список расширений для сканирования.
120
+ Если файла нет, он создаётся автоматически на основе текущих `*_EXTENSIONS`.
121
+
122
+ Формат (поддерживаются map и list для расширений):
123
+ ```yaml
124
+ code_extensions:
125
+ .py: Python
126
+ .ts: TypeScript
127
+ doc_extensions:
128
+ .md: Markdown
129
+ .rst: reStructuredText
130
+ config_extensions:
131
+ .yml: YAML
132
+ .json: JSON
133
+ exclude:
134
+ - "temp/*"
135
+ - "*.log"
136
+ ```
137
+
138
+ ## CLI‑параметры
139
+ - `--source <path|url>` — источник
140
+ - `--output <path>` — выходная директория (по умолчанию: source для локальных путей, `./output/<repo>` для URL)
141
+
142
+ ## Тестирование
143
+ Тесты находятся в каталоге `tests/`:
144
+ - `test_cache.py`
145
+ - `test_changes.py`
146
+ - `test_scanner.py`
147
+
148
+ Запуск (из корня проекта):
149
+ ```bash
150
+ python -m pytest
151
+ ```
152
+ - `--readme` — генерировать только README
153
+ - `--mkdocs` — генерировать только MkDocs
154
+ - `--language ru|en` — язык документации
155
+ - `--include/--exclude` — фильтры
156
+ - `--max-size` — максимальный размер файла
157
+ - `--threads` — число потоков LLM
158
+ - `--cache-dir` — директория кэша (по умолчанию `.ai_docs_cache`)
159
+ - `--no-cache` — отключить LLM‑кэш
160
+ - `--local-site` — добавить `site_url` и `use_directory_urls` в `mkdocs.yml`
161
+ - `--force` — перезаписать `README.md`, если он уже существует
162
+
163
+ Поведение по умолчанию: если не указаны `--readme` и `--mkdocs`, генерируются оба артефакта.
164
+
165
+ ## MkDocs
166
+ Сборка выполняется автоматически в конце генерации:
167
+ ```
168
+ mkdocs build -f mkdocs.yml
169
+ ```
170
+
171
+ ## Исключения
172
+ Сканер учитывает `.gitignore`, `.build_ignore` и дефолтные исключения:
173
+ `.venv`, `node_modules`, `ai_docs_site`, `.ai-docs`, `.ai_docs_cache`, `dist`, `build`, т.д.
174
+
175
+ ## Разработка и вклад
176
+ - Установите зависимости (см. «Быстрый старт»)
177
+ - Запускайте через `python -m ai_docs ...` для отладки
178
+ - PR и предложения приветствуются
179
+
180
+ ## Лицензия
181
+ MIT
File without changes
@@ -0,0 +1,22 @@
1
+ import importlib
2
+ import os
3
+ import sys
4
+
5
+
6
+ def _load_main():
7
+ try:
8
+ from .cli import main
9
+ return main
10
+ except ImportError:
11
+ # Fallback when executed as a script (e.g., `python ai_docs ...`)
12
+ pkg_dir = os.path.dirname(os.path.abspath(__file__))
13
+ parent = os.path.dirname(pkg_dir)
14
+ if parent not in sys.path:
15
+ sys.path.insert(0, parent)
16
+ return importlib.import_module("ai_docs.cli").main
17
+
18
+
19
+ main = _load_main()
20
+
21
+ if __name__ == "__main__":
22
+ main()