stepup.reprep.api¶
Application programming interface for StepUp RepRep.
add_notes_pdf(path_src, path_notes, path_dst, optional=False, block=False)
¶
Add a notes page at every even page of a PDF file.
Parameters:
-
path_src
(str
) –The original PDF document without notes pages.
-
path_notes
(str
) –A single-page PDF document with a page suitable for taking notes.
-
path_dst
(str
) –The output PDF with notes pages inserted.
-
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Source code in stepup/reprep/api.py
cat_pdf(paths_inp, path_out, *, insert_blank=False, optional=False, block=False)
¶
Concatenate the pages of multiple PDFs into one document
Parameters:
-
paths_inp
(Collection[str]
) –The input PDF files.
-
path_out
(str
) –The concatenated PDF.
-
insert_blank
(bool
, default:False
) –Insert a blank page after a PDF with an odd number of pages. The last page of each PDF is used to determine the size of the added blank page.
-
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Source code in stepup/reprep/api.py
check_hrefs(path_src, path_config=None, block=False)
¶
Check hyper references in a Markdown, HTML or PDF file.
Parameters:
-
path_src
(str
) –The source Markdown, HTML or PDF to check.
-
path_config
(str | None
, default:None
) –The configuration file. Defaults to
${REPREP_CHECK_HREFS_CONFIG}
variable orcheck_hrefs.yaml
if it is not set. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Source code in stepup/reprep/api.py
compile_latex(path_tex, *, run_bibtex=True, maxrep=5, workdir='./', latex=None, bibtex=None, inventory=None, optional=False, block=False)
¶
Create a step for the compilation of a LaTeX source.
Parameters:
-
path_tex
(str
) –The main tex source file. This argument may contain environment variables.
-
run_bibtex
–By default, when bib files are used, BibTeX is invoked. This can be overruled by setting this argument to False, which is useful when recompiling sources with fixed bbl files.
-
maxrep
(int
, default:5
) –The maximum number of repetitions of the LaTeX command in case the aux file keeps changing.
-
workdir
(str
, default:'./'
) –The working directory where the LaTeX command must be executed.
-
latex
(str | None
, default:None
) –Path to the LaTeX executable. Note that only PDF-producing LaTeX compilers are supported:
pdflatex
,xelatex
orlualatex
. Defaults to${REPREP_LATEX}
variable orpdflatex
if the variable is unset. -
bibtex
(str | None
, default:None
) –Path to the BibTeX executable. Defaults to
${REPREP_BIBTEX}
variable orbibtex
if the variable is unset. -
inventory
(str | bool | None
, default:None
) –If set to a
str
, it specifies the inventory file to write. If set toTrue
, the inventory file is written to the default location, which is the stem of the source file with-inventory.txt
appended. When the environment variableREPREP_LATEX_INVENTORY
is set to1
, the inventory file is always written, unless this argument is set toFalse
. -
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Notes
The LaTeX source is compiled with the rr-compile-latex
command,
which can detect dependencies on other files by scanning for
\input
, \include
, \includegraphics
, etc.
Due to the complexity of LaTeX, the dependency scanning is not perfect.
You can manually specify dependencies in the LaTeX source with %REPREP input inp_path
.
When inp_path
is a relative path,
it is interpreted in the same way as the LaTeX compiler would resolve it.
You can also hide lines from the dependency scanner by adding %REPREP ignore
.
Source code in stepup/reprep/api.py
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
|
compile_typst(path_typ, dest=None, *, sysinp=None, resolution=None, workdir='./', typst=None, keep_deps=False, typst_args=(), inventory=None, optional=False, block=False)
¶
Create a step for the compilation of a Typst source.
Warning
Support for typst in StepUp RepRep is experimental. Expect breaking changes in future releases. Some limitations include:
- Multi-page SVG and PNG outputs are not yet supported, due to a bug in the depfile created by typst.
- SVG figures with references to external bitmaps are not processed correctly. These bitmaps are not rendered, neither are they included in the dep file.
Parameters:
-
path_typ
(str
) –The main typst source file. This argument may contain environment variables.
-
dest
(str | None
, default:None
) –Output destination:
None
, a directory or a file. For SVG and PNG outputs, this argument must be specified with the desired extension. If the output contains any of{p}
,{0p}
or{t}
, the output paths are not known a priori and will be amended. -
sysinp
(dict[str, str | Path] | None
, default:None
) –A dictionary with the input arguments passed to
typst
with--input key=val
. Keys and values are converted to strings. When values arePath
instances, they are treated as input dependencies for the step. These parameters are available in the document as#sys.inputs.key
. -
resolution
(int | None
, default:None
) –The resolution of the bitmap in dots per inch (dpi), only relevant for PNG output.
-
workdir
(str
, default:'./'
) –The working directory where the LaTeX command must be executed.
-
typst
(str | None
, default:None
) –Path to the Typst executable. Defaults to
${REPREP_TYPST}
variable ortypst
if the variable is unset. -
keep_deps
(bool
, default:False
) –If
True
, the dependency file is kept after the compilation. The dependency file is also kept if the environment variableREPREP_KEEP_TYPST_DEPS
is set to"1"
. -
typst_args
(Collection[str]
, default:()
) –Additional arguments for typst. The defaults is
${REPREP_TYPST_ARGS}
, if the environment variable is defined. -
inventory
(str | bool | None
, default:None
) –If set to a
str
, it specifies the inventory file to write. If set toTrue
, the inventory file is written to the default location, which is the stem of the source file with-inventory.txt
appended. When the environment variableREPREP_TYPST_INVENTORY
is set to1
, the inventory file is always written, unless this argument is set toFalse
. -
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Source code in stepup/reprep/api.py
259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 |
|
convert_inkscape(path_svg, path_out, *, inkscape=None, inkscape_args=(), optional=False, block=False)
¶
Convert an SVG figure to a PDF file, detecting dependencies of the SVG on other files.
Parameters:
-
path_svg
(str
) –The input SVG figure. It may contain
tags referring to other files included in the figure.
-
path_out
(str
) –The output PDF or PNG file. Other formats are not supported.
-
inkscape
(str | None
, default:None
) –The path to the inkscape executable. Defaults to
${REPREP_INKSCAPE}
variable orinkscape
if the variable is unset. -
inkscape_args
(Collection[str]
, default:()
) –Additional arguments to pass to inkscape. E.g.
["-T"]
to convert text to glyphs in PDFs. Depending on the extension of the output, the default is${REPREP_INKSCAPE_PDF_ARGS}
or${REPREP_INKSCAPE_PNG_ARGS}
, if the environment variable is defined. -
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Notes
A wrapper around inkscape is used to carry out the conversion: stepup.reprep.convert_inkscape
.
The wrapper scans the SVG for dependencies, which may be a bit slow in case of large files.
Source code in stepup/reprep/api.py
convert_inkscape_pdf(path_svg, dest=None, *, inkscape=None, inkscape_args=(), optional=False, block=False)
¶
Shorthand for convert_inkscape
with the output file derived from the SVG file.
The dest
argument can be None
, a directory or a file.
Source code in stepup/reprep/api.py
convert_inkscape_png(path_svg, dest=None, *, inkscape=None, inkscape_args=(), optional=False, block=False)
¶
Shorthand for convert_inkscape
with the output file derived from the SVG file.
The dest
argument can be None
, a directory or a file. See make_path_out
.
Source code in stepup/reprep/api.py
convert_jupyter(path_nb, dest=None, *, inp=(), out=(), execute=True, to=None, jupyter=None, optional=False, block=False)
¶
Convert a Jupyter notebook, by default to HTML with execution of cells.
Warning
Support for juptyer nbconvert
in StepUp RepRep is experimental.
Expect breaking changes in future releases.
Parameters:
-
path_nb
(str
) –The input Jupyter notebook.
-
dest
(str | None
, default:None
) –Output destination:
None
, a directory or a file. -
inp
(str | Collection[str]
, default:()
) –One or more input files used by the notebook. You can also declare inputs with
amend(inp=...)
in the notebook, but specifying them here will make the scheduling more efficient. -
out
(str | Collection[str]
, default:()
) –One or more output files produced by the notebook. You can also declare outputs with
amend(out=...)
in the notebook, but you can specify them here if you want to make the notebook execution optional, i.e. dependent on whether the outputs are used in other steps. -
execute
(bool
, default:True
) –If
True
, the notebook is executed before conversion. -
to
(str | None
, default:None
) –The output format. The default depends on the extension of the output file. if
to
is given anddest
isNone
or a directory, theto
argument is used to determine the output file extension. -
jupyter
(str | None
, default:None
) –The path to the jupyter executable. Defaults to
${REPREP_JUPYTER}
variable orjupyter
if the variable is unset. -
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Source code in stepup/reprep/api.py
496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 |
|
convert_markdown(path_md, dest=None, *, katex=False, path_macros=None, paths_css=(), optional=False, block=False)
¶
Convert a markdown to HTML.
Parameters:
-
path_md
(str
) –The markdown input file.
-
dest
(str | None
, default:None
) –Output destination:
None
, a directory or a file. -
katex
(bool
, default:False
) –Set to
True
to enable KaTeX support. -
path_macros
(str | None
, default:None
) –A file with macro definitions for KaTeX. Defaults to
${REPREP_KATEX_MACROS}
if the variable is set, which is interpreted as a colon-separated list of files. -
paths_css
(str | Collection[str]
, default:()
) –Path or multiple paths of a local CSS file, or a list of multiple such paths, to be included in the HTML header. Note that one may also specify CSS file in the markdown header. Defaults to
${REPREP_MARKDOWN_CSS}
if the variable is set, which is interpreted as a colon-separated list of files. -
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Source code in stepup/reprep/api.py
convert_mutool(path_pdf, path_out, *, resolution=None, mutool=None, optional=False, block=False)
¶
Convert a PDF to a bitmap with mutool (from MuPDF).
Parameters:
-
path_pdf
(str
) –The input PDF file.
-
path_out
(str
) –The output image file.
-
resolution
(int | None
, default:None
) –The resolution of the output bitmap in dots per inch (dpi).
-
mutool
(str | None
, default:None
) –The path to the mutool executable. Defaults to
${REPREP_MUTOOL}
variable ormutool
if the variable is unset. -
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Source code in stepup/reprep/api.py
convert_mutool_png(path_pdf, dest=None, *, resolution=None, mutool=None, optional=False, block=False)
¶
Shorthand for convert_mutool
with the output file derived from the PDF file.
The dest
argument can be None
, a directory or a file. See make_path_out
.
Source code in stepup/reprep/api.py
convert_odf_pdf(path_odf, dest=None, *, libreoffice=None, optional=False, block=False)
¶
Convert a file in OpenDocument format to PDF.
Parameters:
-
path_odf
(str
) –The input open-document file.
-
dest
(str | None
, default:None
) –None, output directory or path. See
make_path_out
. -
libreoffice
(str | None
, default:None
) –The libreoffice executable. Defaults to
${REPREP_LIBREOFFICE}
variable orlibreoffice
if the variable is unset. -
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Notes
This function does not yet scan the source document for reference to external files. which should ideally be added as dependencies.
The conversion is executed in a pool of size 1, due to a bug in libreoffice. It cannot perform multiple PDF conversions in parallel.
Source code in stepup/reprep/api.py
convert_weasyprint(path_html, dest=None, *, weasyprint=None, optional=False, block=False)
¶
Convert a HTML document to PDF.
Parameters:
-
path_html
(str
) –The HTML input file.
-
dest
(str | None
, default:None
) –Output destination:
None
, a directory or a file. -
weasyprint
(str | None
, default:None
) –The path to the weasyprint executable. Defaults to
${REPREP_WEASYPRINT}
variable orweasyprint
if the variable is unset. -
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Source code in stepup/reprep/api.py
diff_latex(path_old, path_new, path_diff, *, latexdiff=None, latexdiff_args=DEFAULT_LATEXDIFF_ARGS, optional=False, block=False)
¶
Create a step to run latexdiff.
Parameters:
-
path_old
(str
) –The old tex or bbl source.
-
path_new
(str
) –The new tex or bbl source.
-
path_diff
(str
) –The diff output tex or bbl.
-
latexdiff
(str | None
, default:None
) –Path of the latexdiff executable. Defaults to
${REPREP_LATEXDIFF}
variable orlatexdiff
if the variable is unset. -
latexdiff_args
(Collection[str]
, default:DEFAULT_LATEXDIFF_ARGS
) –Additional arguments for latexdiff. Defaults to
${REPREP_LATEXDIFF_ARG}
variable. If this variable is unset, the following default is used:--append-context2cmd=abstract,supplementary,dataavailability,funding, \ authorcontributions,conflictsofinterest,abbreviations
The option
--no-label
is always added because it is needed to make the file reproducible. -
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Source code in stepup/reprep/api.py
flatten_latex(path_tex, path_flat, *, optional=False, block=False)
¶
Flatten structured LaTeX source files (substitute \input
and friends by their content).
Parameters:
-
path_tex
(str
) –The main tex file to be converted.
-
path_flat
(str
) –The flattened output file.
-
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Source code in stepup/reprep/api.py
make_inventory(paths, path_inventory, *, optional=False, block=False)
¶
Create an inventory.txt
file.
Parameters:
-
paths
(Collection[str]
) –Paths to include in the
inventory.txt
file. -
path_inventory
(str
) –The inventory file to write.
-
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Source code in stepup/reprep/api.py
nup_pdf(path_src, path_dst, *, nrow=None, ncol=None, margin=None, page_format=None, optional=False, block=False)
¶
Put multiple pages per sheet using a fixed layout.
Parameters:
-
path_src
(str
) –The original PDF document (with normal pages).
-
path_dst
(str
) –The output PDF with (multiple pages per sheet).
-
nrow
(int | None
, default:None
) –The number of rows on each output sheet. The default is
${REPREP_NUP_NROW}
or 2 if the variable is not set. -
ncol
(int | None
, default:None
) –The number of columns on each output sheet. The default is
${REPREP_NUP_NCOL}
or 2 if the variable is not set. -
margin
(float | None
, default:None
) –The margin in mm between the pages on each sheet. (Also used as sheet margin.) The default is
${REPREP_NUP_MARGIN}
or 10.0 if the variable is not set. -
page_format
(str | None
, default:None
) –The output page format The default is
${REPREP_NUP_PAGE_FORMAT}
or A4-L if the variable is not set. -
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Source code in stepup/reprep/api.py
raster_pdf(path_inp, dest, *, resolution=None, quality=None, optional=False, block=False)
¶
Turn each page of a PDF into a rendered JPEG bitmap contained in a new PDF.
Parameters:
-
path_inp
(str
) –The input PDF file.
-
dest
(str
) –None, output directory or path. See
make_path_out
. -
resolution
(int | None
, default:None
) –The resolution of the bitmap in dots per inch (dpi). The default value is taken from
${REPREP_RASTER_RESOLUTION}
or 100 if the variable is not set. -
quality
(int | None
, default:None
) –The JPEG quality of the bitmap. The default value is taken from
${REPREP_RASTER_QUALITY}
or 50 if the variable is not set. -
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Source code in stepup/reprep/api.py
render_jinja(*args, mode='auto', optional=False, block=False)
¶
Render the template with Jinja2.
Parameters:
-
args
(str | dict
, default:()
) –The first argument is the path to the template file. All the following position arguments can be one of the following two types:
- Paths to Python, JSON or YAML files with variable definitions. Variables defined in later files take precedence.
- A dictionary with additional variables. These will be JSON-serialized and passed on the command-line to the Jinja renderer. Variables in dictionaries take precedence over variables from files. When multiple dictionaries are given, later ones take precedence.
The very last argument is an output destination (directory or file).
-
mode
(str
, default:'auto'
) –The format of the Jinja placeholders. The default (auto) selects either plain or latex based on the extension of the template. The plain format is the default Jinja style with curly brackets: {{ }} etc. The latex style replaces curly brackets by angle brackets: << >> etc.
-
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Notes
At least some variables must be given, either as a file containing variables or as a dictionary.
Source code in stepup/reprep/api.py
1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 |
|
sanitize_bibtex(*paths_aux, path_cfg=None, path_out=None, optional=False, block=False)
¶
Sanitize a BibTeX file.
Parameters:
-
paths_aux
(str
, default:()
) –Paths to LaTeX aux files.
-
path_cfg
(str | None
, default:None
) –The YAML configuration file for the
rr-sanitize-bibtex
script. -
path_out
(str | None
, default:None
) –If given, a single cleaned-up bibtex file is written as output, which you can manually copy back to the original if you approve of the cleanup. If not given, the original bibtex file is overwritten (if there is only one), which will drain the scheduler. You then check if the updated version is correct and rerun the build to approve.
-
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Source code in stepup/reprep/api.py
sync_zenodo(path_config, *, block=False)
¶
Synchronize data with an draft dataset on Zenodo.
Parameters:
-
path_config
(str
) –The YAML configuration file for the Zenodo upload.
-
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Source code in stepup/reprep/api.py
unplot(path_svg, dest=None, *, optional=False, block=False)
¶
Convert a plot back to data.
Parameters:
-
path_svg
(str
) –The SVG file with paths to be converted back.
-
dest
(str | None
, default:None
) –An output directory or file.
-
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.
Source code in stepup/reprep/api.py
zip_inventory(path_inventory, path_zip, *, optional=False, block=False)
¶
Create a ZIP file with all files listed in a inventory.txt
file + check digests before zip.
Parameters:
-
path_inventory
(str
) –A file created with the
make_inventory
API or with the command-line scriptrr-make-inventory
. -
path_zip
(str
) –The output ZIP file
-
optional
(bool
, default:False
) –If
True
, the step is only executed when needed by other steps. -
block
(bool
, default:False
) –If
True
, the step will always remain pending.
Returns:
-
step_info
–Holds relevant information of the step, useful for defining follow-up steps.