ai-docs-gen 0.1.4__tar.gz → 0.1.8__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.
Files changed (27) hide show
  1. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/PKG-INFO +32 -2
  2. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/README.md +31 -1
  3. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs/generator.py +32 -0
  4. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs/tokenizer.py +12 -2
  5. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs_gen.egg-info/PKG-INFO +32 -2
  6. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/pyproject.toml +1 -1
  7. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs/__init__.py +0 -0
  8. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs/__main__.py +0 -0
  9. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs/assets/mermaid.min.js +0 -0
  10. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs/cache.py +0 -0
  11. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs/changes.py +0 -0
  12. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs/cli.py +0 -0
  13. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs/domain.py +0 -0
  14. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs/llm.py +0 -0
  15. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs/mkdocs.py +0 -0
  16. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs/scanner.py +0 -0
  17. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs/summary.py +0 -0
  18. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs/utils.py +0 -0
  19. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs_gen.egg-info/SOURCES.txt +0 -0
  20. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs_gen.egg-info/dependency_links.txt +0 -0
  21. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs_gen.egg-info/entry_points.txt +0 -0
  22. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs_gen.egg-info/requires.txt +0 -0
  23. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/ai_docs_gen.egg-info/top_level.txt +0 -0
  24. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/setup.cfg +0 -0
  25. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/tests/test_cache.py +0 -0
  26. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/tests/test_changes.py +0 -0
  27. {ai_docs_gen-0.1.4 → ai_docs_gen-0.1.8}/tests/test_scanner.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ai-docs-gen
3
- Version: 0.1.4
3
+ Version: 0.1.8
4
4
  Summary: CLI-инструмент для генерации технической документации по коду и конфигурациям
5
5
  Requires-Python: >=3.8
6
6
  Description-Content-Type: text/markdown
@@ -16,6 +16,8 @@ Requires-Dist: pymdown-extensions
16
16
 
17
17
  # ai_docs — генератор технической документации
18
18
 
19
+ [English version](README_EN.md) | [Русская версия](README.md)
20
+
19
21
  ## Обзор
20
22
  `ai_docs` — CLI‑инструмент для генерации технической документации по коду и конфигурациям.
21
23
  Поддерживает локальные папки, локальные git‑проекты и удалённые git‑репозитории.
@@ -51,7 +53,7 @@ python3 -m venv .venv
51
53
  pip install -e .
52
54
  ```
53
55
 
54
- 2) Настройка `.env` (пример — `.env.example`):
56
+ 2) Настройка переменных окружения (пример — `.env.example`):
55
57
  ```env
56
58
  OPENAI_API_KEY=your_api_key_here
57
59
  OPENAI_BASE_URL=https://api.openai.com/v1
@@ -63,6 +65,18 @@ AI_DOCS_THREADS=1
63
65
  AI_DOCS_LOCAL_SITE=false
64
66
  ```
65
67
 
68
+ Если инструмент установлен как пакет, можно задать переменные окружения так:
69
+ ```bash
70
+ export OPENAI_API_KEY="your_api_key_here"
71
+ export OPENAI_BASE_URL="https://api.openai.com/v1"
72
+ export OPENAI_MODEL="gpt-4o-mini"
73
+ export OPENAI_MAX_TOKENS="1200"
74
+ export OPENAI_CONTEXT_TOKENS="8192"
75
+ export OPENAI_TEMPERATURE="0.2"
76
+ export AI_DOCS_THREADS="1"
77
+ export AI_DOCS_LOCAL_SITE="false"
78
+ ```
79
+
66
80
  3) Генерация README и MkDocs:
67
81
  ```bash
68
82
  python -m ai_docs --source .
@@ -78,6 +92,22 @@ python ai_docs --source .
78
92
  ai-docs --source .
79
93
  ```
80
94
 
95
+ Примечание для Windows:
96
+ - Пути обрабатываются корректно, но внутри всегда нормализуются в формат с `/`.
97
+ - Если используете PowerShell, пример активации venv и переменных окружения:
98
+ ```powershell
99
+ python -m venv .venv
100
+ .\\.venv\\Scripts\\Activate.ps1
101
+ $env:OPENAI_API_KEY="your_api_key_here"
102
+ $env:OPENAI_BASE_URL="https://api.openai.com/v1"
103
+ $env:OPENAI_MODEL="gpt-4o-mini"
104
+ $env:OPENAI_MAX_TOKENS="1200"
105
+ $env:OPENAI_CONTEXT_TOKENS="8192"
106
+ $env:OPENAI_TEMPERATURE="0.2"
107
+ $env:AI_DOCS_THREADS="1"
108
+ $env:AI_DOCS_LOCAL_SITE="false"
109
+ ```
110
+
81
111
  ## Примеры использования
82
112
 
83
113
  Локальная папка:
@@ -1,5 +1,7 @@
1
1
  # ai_docs — генератор технической документации
2
2
 
3
+ [English version](README_EN.md) | [Русская версия](README.md)
4
+
3
5
  ## Обзор
4
6
  `ai_docs` — CLI‑инструмент для генерации технической документации по коду и конфигурациям.
5
7
  Поддерживает локальные папки, локальные git‑проекты и удалённые git‑репозитории.
@@ -35,7 +37,7 @@ python3 -m venv .venv
35
37
  pip install -e .
36
38
  ```
37
39
 
38
- 2) Настройка `.env` (пример — `.env.example`):
40
+ 2) Настройка переменных окружения (пример — `.env.example`):
39
41
  ```env
40
42
  OPENAI_API_KEY=your_api_key_here
41
43
  OPENAI_BASE_URL=https://api.openai.com/v1
@@ -47,6 +49,18 @@ AI_DOCS_THREADS=1
47
49
  AI_DOCS_LOCAL_SITE=false
48
50
  ```
49
51
 
52
+ Если инструмент установлен как пакет, можно задать переменные окружения так:
53
+ ```bash
54
+ export OPENAI_API_KEY="your_api_key_here"
55
+ export OPENAI_BASE_URL="https://api.openai.com/v1"
56
+ export OPENAI_MODEL="gpt-4o-mini"
57
+ export OPENAI_MAX_TOKENS="1200"
58
+ export OPENAI_CONTEXT_TOKENS="8192"
59
+ export OPENAI_TEMPERATURE="0.2"
60
+ export AI_DOCS_THREADS="1"
61
+ export AI_DOCS_LOCAL_SITE="false"
62
+ ```
63
+
50
64
  3) Генерация README и MkDocs:
51
65
  ```bash
52
66
  python -m ai_docs --source .
@@ -62,6 +76,22 @@ python ai_docs --source .
62
76
  ai-docs --source .
63
77
  ```
64
78
 
79
+ Примечание для Windows:
80
+ - Пути обрабатываются корректно, но внутри всегда нормализуются в формат с `/`.
81
+ - Если используете PowerShell, пример активации venv и переменных окружения:
82
+ ```powershell
83
+ python -m venv .venv
84
+ .\\.venv\\Scripts\\Activate.ps1
85
+ $env:OPENAI_API_KEY="your_api_key_here"
86
+ $env:OPENAI_BASE_URL="https://api.openai.com/v1"
87
+ $env:OPENAI_MODEL="gpt-4o-mini"
88
+ $env:OPENAI_MAX_TOKENS="1200"
89
+ $env:OPENAI_CONTEXT_TOKENS="8192"
90
+ $env:OPENAI_TEMPERATURE="0.2"
91
+ $env:AI_DOCS_THREADS="1"
92
+ $env:AI_DOCS_LOCAL_SITE="false"
93
+ ```
94
+
65
95
  ## Примеры использования
66
96
 
67
97
  Локальная папка:
@@ -1,6 +1,7 @@
1
1
  import json
2
2
  from datetime import datetime
3
3
  import os
4
+ import re
4
5
  import shutil
5
6
  import subprocess
6
7
  from pathlib import Path
@@ -942,6 +943,7 @@ def generate_docs(
942
943
  if not mkdocs_bin:
943
944
  raise RuntimeError("mkdocs is not installed or not on PATH")
944
945
  subprocess.check_call([mkdocs_bin, "build", "-f", "mkdocs.yml"], cwd=output_root)
946
+ _postprocess_mermaid_html(output_root / "ai_docs_site")
945
947
  print("[ai-docs] mkdocs: done")
946
948
 
947
949
  # Save cache
@@ -957,3 +959,33 @@ def generate_docs(
957
959
  print("[ai-docs] errors summary:")
958
960
  for item in errors:
959
961
  print(f"[ai-docs] error: {item}")
962
+
963
+
964
+ def _postprocess_mermaid_html(site_dir: Path) -> None:
965
+ if not site_dir.exists():
966
+ return
967
+
968
+ mermaid_div_re = re.compile(r'(<div class="mermaid">)(.*?)(</div>)', re.DOTALL)
969
+ bracket_re = re.compile(r"\\[([^\\]]*)\\]")
970
+
971
+ for path in site_dir.rglob("*.html"):
972
+ text = path.read_text(encoding="utf-8")
973
+ if 'class="mermaid"' not in text:
974
+ continue
975
+
976
+ def _fix_mermaid(match: re.Match) -> str:
977
+ head, body, tail = match.groups()
978
+ body = body.replace("&gt;", ">")
979
+
980
+ def _fix_brackets(bmatch: re.Match) -> str:
981
+ inner = bmatch.group(1).replace("(", " ").replace(")", "")
982
+ inner = re.sub(r"[ \\t]+", " ", inner)
983
+ return f"[{inner}]"
984
+
985
+ body = bracket_re.sub(_fix_brackets, body)
986
+ body = re.sub(r"[ \\t]+", " ", body)
987
+ return f"{head}{body}{tail}"
988
+
989
+ updated = mermaid_div_re.sub(_fix_mermaid, text)
990
+ if updated != text:
991
+ path.write_text(updated, encoding="utf-8")
@@ -3,11 +3,22 @@ from typing import List
3
3
  import tiktoken
4
4
 
5
5
 
6
+ class _ByteEncoding:
7
+ def encode(self, text: str):
8
+ return list(text.encode("utf-8", errors="ignore"))
9
+
10
+ def decode(self, tokens):
11
+ return bytes(tokens).decode("utf-8", errors="ignore")
12
+
13
+
6
14
  def get_encoding(model: str):
7
15
  try:
8
16
  return tiktoken.encoding_for_model(model)
9
17
  except KeyError:
10
- return tiktoken.get_encoding("cl100k_base")
18
+ try:
19
+ return tiktoken.get_encoding("cl100k_base")
20
+ except Exception:
21
+ return _ByteEncoding()
11
22
 
12
23
 
13
24
  def count_tokens(text: str, model: str) -> int:
@@ -23,4 +34,3 @@ def chunk_text(text: str, model: str, max_tokens: int) -> List[str]:
23
34
  chunk = tokens[i:i + max_tokens]
24
35
  chunks.append(enc.decode(chunk))
25
36
  return chunks
26
-
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ai-docs-gen
3
- Version: 0.1.4
3
+ Version: 0.1.8
4
4
  Summary: CLI-инструмент для генерации технической документации по коду и конфигурациям
5
5
  Requires-Python: >=3.8
6
6
  Description-Content-Type: text/markdown
@@ -16,6 +16,8 @@ Requires-Dist: pymdown-extensions
16
16
 
17
17
  # ai_docs — генератор технической документации
18
18
 
19
+ [English version](README_EN.md) | [Русская версия](README.md)
20
+
19
21
  ## Обзор
20
22
  `ai_docs` — CLI‑инструмент для генерации технической документации по коду и конфигурациям.
21
23
  Поддерживает локальные папки, локальные git‑проекты и удалённые git‑репозитории.
@@ -51,7 +53,7 @@ python3 -m venv .venv
51
53
  pip install -e .
52
54
  ```
53
55
 
54
- 2) Настройка `.env` (пример — `.env.example`):
56
+ 2) Настройка переменных окружения (пример — `.env.example`):
55
57
  ```env
56
58
  OPENAI_API_KEY=your_api_key_here
57
59
  OPENAI_BASE_URL=https://api.openai.com/v1
@@ -63,6 +65,18 @@ AI_DOCS_THREADS=1
63
65
  AI_DOCS_LOCAL_SITE=false
64
66
  ```
65
67
 
68
+ Если инструмент установлен как пакет, можно задать переменные окружения так:
69
+ ```bash
70
+ export OPENAI_API_KEY="your_api_key_here"
71
+ export OPENAI_BASE_URL="https://api.openai.com/v1"
72
+ export OPENAI_MODEL="gpt-4o-mini"
73
+ export OPENAI_MAX_TOKENS="1200"
74
+ export OPENAI_CONTEXT_TOKENS="8192"
75
+ export OPENAI_TEMPERATURE="0.2"
76
+ export AI_DOCS_THREADS="1"
77
+ export AI_DOCS_LOCAL_SITE="false"
78
+ ```
79
+
66
80
  3) Генерация README и MkDocs:
67
81
  ```bash
68
82
  python -m ai_docs --source .
@@ -78,6 +92,22 @@ python ai_docs --source .
78
92
  ai-docs --source .
79
93
  ```
80
94
 
95
+ Примечание для Windows:
96
+ - Пути обрабатываются корректно, но внутри всегда нормализуются в формат с `/`.
97
+ - Если используете PowerShell, пример активации venv и переменных окружения:
98
+ ```powershell
99
+ python -m venv .venv
100
+ .\\.venv\\Scripts\\Activate.ps1
101
+ $env:OPENAI_API_KEY="your_api_key_here"
102
+ $env:OPENAI_BASE_URL="https://api.openai.com/v1"
103
+ $env:OPENAI_MODEL="gpt-4o-mini"
104
+ $env:OPENAI_MAX_TOKENS="1200"
105
+ $env:OPENAI_CONTEXT_TOKENS="8192"
106
+ $env:OPENAI_TEMPERATURE="0.2"
107
+ $env:AI_DOCS_THREADS="1"
108
+ $env:AI_DOCS_LOCAL_SITE="false"
109
+ ```
110
+
81
111
  ## Примеры использования
82
112
 
83
113
  Локальная папка:
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ai-docs-gen"
7
- version = "0.1.4"
7
+ version = "0.1.8"
8
8
  description = "CLI-инструмент для генерации технической документации по коду и конфигурациям"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"
File without changes
File without changes
File without changes