Release 0.3.4 with external processing indexing.

Add virtual baseconf support for external data processors so reindex can discover and index them alongside regular src-based configurations, and update docs to use generic examples without workspace-specific names.
This commit is contained in:
mihailkudravcev
2026-07-21 13:03:25 +03:00
parent 06e13395f8
commit 91521e6604
9 changed files with 195 additions and 24 deletions
+12 -8
View File
@@ -137,7 +137,7 @@ def add_baseconf_args(
if mode == "index":
default_hint = (
"Без параметра — default_baseconfs из --config; "
"если блок не задан, индексировать все выгрузки с src/."
"если блок не задан, индексировать все выгрузки с src/ и внешние обработки."
)
else:
default_hint = "Без параметра — поиск по всем проиндексированным."
@@ -148,7 +148,7 @@ def add_baseconf_args(
metavar="NAME",
dest="baseconf",
help=(
"Конфигурация 1С в репозитории (папка <name>/src/). "
"Источник индексации 1С: <name>/src/ или virtual <dir>.<Обработка>. "
"Можно несколько раз или через запятую: -b cfg1,cfg2. "
"Краткие имена (алиасы) — в baseconf_aliases файла --config. "
f"{default_hint}"
@@ -234,28 +234,32 @@ def validate_baseconfs(
require_indexed: bool = True,
) -> list[str]:
"""
Проверить --baseconf: папка src/, наличие в индексе.
Проверить --baseconf: src-выгрузка или virtual внешняя обработка, наличие в индексе.
Возвращает канонические имена. Иначе BaseconfError с подсказками.
"""
if not names:
return []
resolved = resolve_baseconf_names(names)
available = {c.name for c in discover_configs(project_root, None)}
missing_src: list[str] = []
for name in resolved:
if not (project_root / name / "src").is_dir():
if discover_configs(project_root, [name]):
continue
if name not in available:
missing_src.append(name)
if missing_src:
available = [c.name for c in discover_configs(project_root, None)]
available_list = sorted(available)
lines = [
"Конфигурация 1С не найдена в репозитории (нет каталога <name>/src/):",
"Источник индексации 1С не найден в репозитории "
"(нет <name>/src/ или внешней обработки <dir>/<name>.xml + <dir>/<name>/):",
*(f" - {n}" for n in missing_src),
"",
"Доступные выгрузки в проекте:",
]
if available:
lines.extend(f" - {n}" for n in available)
if available_list:
lines.extend(f" - {n}" for n in available_list)
else:
lines.append(" (нет)")
lines.extend(