Bopytex/bopytex/planner.py

64 lines
1.2 KiB
Python

""" Produce tasks to do
It essentially place things at the right place and define the way that files are named.
"""
from dataclasses import dataclass
@dataclass
class Task:
action: str
args: dict
deps: list
output: str
def generate(template: str, meta: dict):
"""Create a task to generate a subject"""
return Task(
action="GENERATE",
args=meta,
deps=[template],
output=meta["subject"] + template[3:],
)
def activate_corr_on(src: str):
"""Create a task to activate correction for src"""
return Task(
action="ACTIVATE_CORR",
args={},
deps=[src],
output="corr_" + src,
)
def compile_pdf(src: str):
"""Create a task to compile src"""
return Task(
action="COMPILE",
args={},
deps=[src],
output=src[:-3] + "pdf"
)
def join_pdfs(pdfs: list):
""" Create task to join pdf together """
return Task(
action="JOIN",
args={},
deps=pdfs,
output="joined.pdf"
)
def clean(files: list):
""" Create task to clean files"""
return Task(
action="CLEAN",
args={},
deps=files,
output=None
)