/
kabakov.as
/
YAE
Обзор
Документация
Войти
/
kabakov.as
/
YAE
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
debug-python-loader.py
108 строк
3 KB
Alexander Kabakov
Имя Python библиотеки изменено на "yae".
25 окт 2025, 12:27
25 окт 2025, 12:27
a784b9d
Код
Авторство
О чём код?
#!/bin/env python import argparse import pathlib import sys from typing import List, TypedDict import yae class BaseEntity(TypedDict): type: str title: str text: str children: List["BaseEntity"] def main(): parser = argparse.ArgumentParser( prog=__file__, description="Отладка.", ) parser.add_argument( "file", metavar="YAE_FILE", type=str, nargs=1, help="Путь до файла с задачами в формате yae.", ) args = parser.parse_args() filename = pathlib.Path(args.file[0]) # sys.setrecursionlimit(29999) d = yae.load_from_file(filename) print() print() print("Перечень сущностей из файла:") for mi, task in enumerate(d["children"]): print(f"f{mi:>2}.", id(task), repr(task)) print() print() print("Перечень сущностей в памяти:") for mi, task in enumerate(d.all()): print(f"a{mi:>2}.", id(task), repr(task)) # print("ENTITY", repr(d.by_id("ENTITY-ID"))) # print() # print("PLC", repr(d.by_id("ENTITY-ID", "type"))) # print(repr(module)) # for gi, group in enumerate(module["children"]): # for fi, func in enumerate(group["children"]): # print(func) # # if "text" in func: # # print( # # "****:", # # f"{mi+1}.{gi+1}.{fi+1}.", # # func["title"], # # "\n----\n", # # fill(func["text"], width=40), # # "\n;", # # "<<fafunction>>", # # ) # # else: # # print( # # "****", # # f"{mi+1}.{gi+1}.{fi+1}.", # # func["title"], # # "<<fafunction>>", # # ) # # for ent in func.get("сущности", []): # # print("*****_", ent) # # print(d.children[-1].children[-1].children[-1].сущности[0]) # print() # print(d.children[-1].title) # print(repr(d.children[-1].type)) # print(d.children[-1].type.title) # print() # fa_module = d.by_id("ID") # l = set() # for fa_group in fa_module.children: # for fa_func in fa_group.children: # sites = [s.get("id") for s in fa_func.get("площадки", [])] # if "ed" in sites: # for bo in fa_func.сущности: # l.add(bo.title) # for ent in l: # print(ent) # print(fa_module) if __name__ == "__main__": # def trace_calls(frame, event, arg): # if event == "call" and frame.f_code.co_filename.endswith("bm/__init__.py"): # print( # f"Calling function: {frame.f_code.co_name} with arg: {frame.f_code.co_varnames}" # ) # for var in frame.f_code.co_varnames: # print(var, repr(frame.f_locals[var])) # return trace_calls # sys.settrace(trace_calls) main() sys.exit(0)