28 lines
1.3 KiB
Python
28 lines
1.3 KiB
Python
from pathlib import Path
|
|
from .review_schema import ImportPreview
|
|
from .pack_validator import validate_pack_directory
|
|
from .semantic_qa import semantic_qa_for_pack
|
|
from .graph_qa import graph_qa_for_pack
|
|
from .path_quality_qa import path_quality_for_pack
|
|
from .coverage_alignment_qa import coverage_alignment_for_pack
|
|
|
|
def preview_draft_pack_import(source_dir, workspace_id, overwrite_required=False):
|
|
result = validate_pack_directory(source_dir)
|
|
semantic = semantic_qa_for_pack(source_dir) if result["ok"] else {"warnings": []}
|
|
graph = graph_qa_for_pack(source_dir) if result["ok"] else {"warnings": []}
|
|
pathq = path_quality_for_pack(source_dir) if result["ok"] else {"warnings": []}
|
|
coverage = coverage_alignment_for_pack(source_dir) if result["ok"] else {"warnings": []}
|
|
return ImportPreview(
|
|
source_dir=str(Path(source_dir)),
|
|
workspace_id=workspace_id,
|
|
overwrite_required=overwrite_required,
|
|
ok=result["ok"],
|
|
errors=list(result["errors"]),
|
|
warnings=list(result["warnings"]),
|
|
summary=dict(result["summary"]),
|
|
semantic_warnings=list(semantic["warnings"]),
|
|
graph_warnings=list(graph["warnings"]),
|
|
path_warnings=list(pathq["warnings"]),
|
|
coverage_warnings=list(coverage["warnings"]),
|
|
)
|