Release 0.3.1: baseconf help, GPL v3, author Michael BAG.
Улучшена справка --help подкоманд (--baseconf до/после подкоманды), добавлены LICENSE (GPL v3 EN) и LICENSE.ru (справочный перевод), контакты mk@p7net.ru. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+52
-13
@@ -35,11 +35,14 @@ from index1c.cli import ( # noqa: E402
|
||||
BaseconfError,
|
||||
add_baseconf_args,
|
||||
add_tool_args,
|
||||
extract_baseconf_argv,
|
||||
format_not_found_modules,
|
||||
format_not_found_object,
|
||||
get_baseconfs_for_query,
|
||||
handle_baseconf_error,
|
||||
index_db_missing_message,
|
||||
make_parent_parser,
|
||||
merge_baseconf_args,
|
||||
resolve_project_root,
|
||||
)
|
||||
from index1c.config import resolve_object_type # noqa: E402
|
||||
@@ -349,11 +352,14 @@ def cmd_module(args: argparse.Namespace) -> int:
|
||||
|
||||
|
||||
def build_parser() -> argparse.ArgumentParser:
|
||||
common = make_parent_parser(include_baseconf=True, baseconf_mode="query")
|
||||
|
||||
p = argparse.ArgumentParser(
|
||||
description="Поиск по cache/1c_meta/index.sqlite (метаданные и BSL-модули).",
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
epilog=(
|
||||
"Конфигурация 1С — параметр --baseconf (-b): папка выгрузки в репозитории.\n"
|
||||
"Можно указать до или после подкоманды; несколько раз или через запятую.\n"
|
||||
"Файл настроек утилиты — --config (-c): см. tools/index/config.example.json"
|
||||
),
|
||||
)
|
||||
@@ -363,18 +369,29 @@ def build_parser() -> argparse.ArgumentParser:
|
||||
version=f"%(prog)s {read_version_file()}",
|
||||
)
|
||||
add_tool_args(p)
|
||||
add_baseconf_args(p, mode="query")
|
||||
sub = p.add_subparsers(dest="cmd", required=True)
|
||||
|
||||
s = sub.add_parser("search", help="Полнотекстовый поиск объектов метаданных")
|
||||
s = sub.add_parser(
|
||||
"search",
|
||||
help="Полнотекстовый поиск объектов метаданных",
|
||||
parents=[common],
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
description="Поиск объектов по имени, синониму или фрагменту поля.",
|
||||
)
|
||||
s.add_argument("query", help="Имя, синоним, фрагмент поля")
|
||||
add_baseconf_args(s)
|
||||
s.add_argument("--type", help="Тип объекта: Document, Catalog, рс, …")
|
||||
s.add_argument("--limit", type=int, default=30)
|
||||
s.set_defaults(func=cmd_search)
|
||||
|
||||
m = sub.add_parser("modules", help="Поиск по BSL: процедуры, тело модуля, путь")
|
||||
m = sub.add_parser(
|
||||
"modules",
|
||||
help="Поиск по BSL: процедуры, тело модуля, путь",
|
||||
parents=[common],
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
description="Поиск по BSL-модулям: процедуры, фрагменты кода, путь файла.",
|
||||
)
|
||||
m.add_argument("query")
|
||||
add_baseconf_args(m)
|
||||
m.add_argument("--limit", type=int, default=30)
|
||||
m.add_argument(
|
||||
"--names-only",
|
||||
@@ -384,9 +401,14 @@ def build_parser() -> argparse.ArgumentParser:
|
||||
)
|
||||
m.set_defaults(func=cmd_modules)
|
||||
|
||||
ref = sub.add_parser("refs", help="Обратный индекс: кто ссылается на объект")
|
||||
ref = sub.add_parser(
|
||||
"refs",
|
||||
help="Обратный индекс: кто ссылается на объект",
|
||||
parents=[common],
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
description="Обратный индекс: какие реквизиты ссылаются на указанный объект.",
|
||||
)
|
||||
ref.add_argument("target", help="Catalog.Партнеры | CatalogRef.Партнеры | Партнеры")
|
||||
add_baseconf_args(ref)
|
||||
ref.add_argument(
|
||||
"--limit",
|
||||
type=int,
|
||||
@@ -398,12 +420,14 @@ def build_parser() -> argparse.ArgumentParser:
|
||||
mov = sub.add_parser(
|
||||
"movements",
|
||||
help="Регистратор ↔ регистры движений (RegisterRecords)",
|
||||
parents=[common],
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
description="Связи документ ↔ регистры движений (RegisterRecords).",
|
||||
)
|
||||
mov.add_argument(
|
||||
"target",
|
||||
help="Document.ЗаказКлиента | AccumulationRegister.ТоварыНаСкладах | имя",
|
||||
)
|
||||
add_baseconf_args(mov)
|
||||
mov.add_argument(
|
||||
"--type",
|
||||
help="Уточнить тип: Document, AccumulationRegister, InformationRegister, …",
|
||||
@@ -416,17 +440,24 @@ def build_parser() -> argparse.ArgumentParser:
|
||||
)
|
||||
mov.set_defaults(func=cmd_movements)
|
||||
|
||||
sh = sub.add_parser("show", help="Карточка объекта (JSON: поля, типы, ссылки)")
|
||||
sh = sub.add_parser(
|
||||
"show",
|
||||
help="Карточка объекта (JSON: поля, типы, ссылки)",
|
||||
parents=[common],
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
description="Полная карточка объекта в JSON (поля, типы, ссылки).",
|
||||
)
|
||||
sh.add_argument("name", help="ЗаказКлиента | Document.ЗаказКлиента")
|
||||
add_baseconf_args(sh)
|
||||
sh.set_defaults(func=cmd_show)
|
||||
|
||||
ob = sub.add_parser(
|
||||
"object",
|
||||
help="Структура объекта: дерево реквизитов, обязательность, типы",
|
||||
parents=[common],
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
description="Дерево структуры объекта: реквизиты, обязательность, типы.",
|
||||
)
|
||||
ob.add_argument("query", help="Имя/синоним объекта или реквизита")
|
||||
add_baseconf_args(ob)
|
||||
ob.add_argument("--type", help="Ограничить типом: Document, Catalog, …")
|
||||
ob.add_argument("--limit", type=int, default=10, help="Макс. число объектов")
|
||||
ob.add_argument(
|
||||
@@ -439,17 +470,25 @@ def build_parser() -> argparse.ArgumentParser:
|
||||
)
|
||||
ob.set_defaults(func=cmd_object)
|
||||
|
||||
md = sub.add_parser("module", help="Метаданные модуля по пути или owner")
|
||||
md = sub.add_parser(
|
||||
"module",
|
||||
help="Метаданные модуля по пути или owner",
|
||||
parents=[common],
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
description="Метаданные одного BSL-модуля по пути или имени owner.",
|
||||
)
|
||||
md.add_argument("path", help="CommonModules/… или CommonModule.Имя")
|
||||
add_baseconf_args(md)
|
||||
md.set_defaults(func=cmd_module)
|
||||
|
||||
return p
|
||||
|
||||
|
||||
def main(argv: list[str] | None = None) -> int:
|
||||
raw = list(argv if argv is not None else sys.argv[1:])
|
||||
early_baseconf, raw = extract_baseconf_argv(raw)
|
||||
parser = build_parser()
|
||||
args = parser.parse_args(argv)
|
||||
args = parser.parse_args(raw)
|
||||
merge_baseconf_args(args, early_baseconf)
|
||||
return int(args.func(args))
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user