karel-brinda / tp-zpevnik

Zpěvník Technické přestávky. Výsledné (automaticky generované) zpěvníky se nachází na http://karel-brinda.github.io/tp-zpevnik/.
MIT License
5 stars 6 forks source link

Revize Snakemake závislostí #51

Closed vasekp closed 8 years ago

vasekp commented 8 years ago
karel-brinda commented 8 years ago

Latexové soubory (šablona) by neměly být temp. Je to např. kvůli ladění (pokud chci pokusně měnit texový zdroják např. v TeXStudiu). Nebo kvůli tomu, aby si člověk mohl zazálohovat latexové zdrojáky celého zpěvníku.

Jinak pozor na jednu specifickou vlastnost Snakemaku (kvůli které se snažím temp moc nepoužívat pro mezičlánky). Pokud mám workflow soubor1 => temp(soubor2) => soubor3 a změní se soubor1, tak se soubor2 znovu generovat nebude, čili i soubor3 zůstane neaktualizovaný (alespoň pokud si to dobře pamatuju; to je taková nešťastná odlišnost od Make).

karel-brinda commented 8 years ago

Jinak už se může vyhodit i

import PyPDF2
vasekp commented 8 years ago

Nevšiml jsem si, že tam zůstal. Ale i když ne teď, je to jedno, bude se hodit brzo – plánuji ho použít na to vytváření singles z jednoho celkového souboru.

vasekp commented 8 years ago

Ad předchozí komentář: v téhle situaci, když je pro soubor3 potřeba, by se soubor2 vygenerovat znovu musel, protože by přestal existovat. Rozdíly oproti make určitě budou, ale já jsem o tom nepřemýšlel jako o "jiném make", zkoušel jsem to brát jako prostě nový workflow.

Se zazálohováním zdrojáků pro vlastní kopii bez potřeby Snakemake souhlasím. Upravím a věci pro překlad v cache nechám. Počítám, že tím se vyřeší i tohle.

vasekp commented 8 years ago

Teď se jako dočasné soubory mažou jen .log (při úspěšném překladu netřeba), .out (prázdný), .pdf v cache (ten zkopírovaný do hlavního adresáře je identický), .idx (jen mezistupeň pro .ind, při překladu regenerovaný), .ind.old a _single_XXX.aux (jednotlivé písničky .aux nepotřebují).

vasekp commented 8 years ago

Viz rozšířený popis posledního commitu.

karel-brinda commented 8 years ago

Super! Jinak co se týče toho run(), tak to je přesně způsob, který používám např. u RNFtools (viz. např. http://rnftools.readthedocs.org/en/latest/tutorial/01_first_snakefile.html). Až tpcb bude samostatný balíček, tak se do zpěvníku bude vkládat akorát:

import tpcb

...

include: tpcb.include()
rule: input: tpcb.input()