Added PDF output (codex)
This commit is contained in:
21
main.py
21
main.py
@@ -19,6 +19,7 @@ from reference_resolver import ReferenceResolver
|
||||
from structure_builder import Structure, StructureBuilder
|
||||
from structure_refiner import StructureRefiner
|
||||
from markdown_builder import MarkdownBuilder
|
||||
from pdf_builder import PdfBuilder
|
||||
from windowizer import Windowizer
|
||||
|
||||
from agent import Agent
|
||||
@@ -36,6 +37,7 @@ class Step(Enum):
|
||||
STRUCTURE_BUILDER = "structure_builder"
|
||||
STRUCTURE_REFINER = "structure_refiner"
|
||||
MARKDOWN_BUILDER = "markdown_builder"
|
||||
PDF_BUILDER = "pdf_builder"
|
||||
|
||||
#
|
||||
# Utility
|
||||
@@ -345,7 +347,7 @@ def on_structure_refiner(current_step: Step, input_data: dict | None) -> tuple[S
|
||||
def on_markdown_builder(current_step: Step, input_data: dict | None) -> tuple[Step | None, str | None]:
|
||||
if os.path.isfile(WORKFLOW_DATA[current_step][0]):
|
||||
logging.info("Skipping Markdown builder")
|
||||
return (None, None)
|
||||
return (Step.PDF_BUILDER, None)
|
||||
if input_data is None:
|
||||
logging.error("Can't build Markdown without input_data")
|
||||
return (None, None)
|
||||
@@ -353,7 +355,19 @@ def on_markdown_builder(current_step: Step, input_data: dict | None) -> tuple[St
|
||||
timeline = Timeline(**json.load(f))
|
||||
logging.info("Building Markdown...")
|
||||
builder = MarkdownBuilder(timeline)
|
||||
return (None, builder.build(Structure(**input_data)))
|
||||
return (Step.PDF_BUILDER, builder.build(Structure(**input_data)))
|
||||
|
||||
def on_pdf_builder(current_step: Step, input_data: dict | None) -> tuple[None, None]:
|
||||
if os.path.isfile(WORKFLOW_DATA[current_step][0]):
|
||||
logging.info("Skipping PDF builder")
|
||||
return (None, None)
|
||||
if not os.path.isfile("output.md"):
|
||||
logging.error("Can't build PDF without output.md")
|
||||
return (None, None)
|
||||
logging.info("Building PDF...")
|
||||
PdfBuilder().build("output.md", WORKFLOW_DATA[current_step][0])
|
||||
logging.info("PDF is saved to %s", WORKFLOW_DATA[current_step][0])
|
||||
return (None, None)
|
||||
|
||||
#
|
||||
# Main
|
||||
@@ -367,7 +381,8 @@ WORKFLOW_DATA: dict[Step, tuple[str, Callable[[Step, dict | None], tuple[Step |
|
||||
Step.REFERENCE_RESOLVER: ("events.json", on_reference_resolver),
|
||||
Step.STRUCTURE_BUILDER: ("structure.json", on_structure_builder),
|
||||
Step.STRUCTURE_REFINER: ("structure_refined.json", on_structure_refiner),
|
||||
Step.MARKDOWN_BUILDER: ("output.md", on_markdown_builder)
|
||||
Step.MARKDOWN_BUILDER: ("output.md", on_markdown_builder),
|
||||
Step.PDF_BUILDER: ("output.pdf", on_pdf_builder),
|
||||
}
|
||||
"""Information about workflow.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user