Source code for pyexlatex.logic.output.main

import os

from pyexlatex.logic.output.api.formats import OutputFormats
from pyexlatex.logic.output.to_file import latex_str_to_file
from pyexlatex.logic.output.sources import output_sources_return_tex_input_paths, \
    _write_image_paths_and_binaries_to_folder
from pyexlatex.tools import date_time_move_latex
from pyexlatex.logic.output.fileops import _move_if_exists_and_is_needed
from pyexlatex.texgen.replacements.filename import _latex_valid_basename
from pyexlatex.typing import BytesListOrNone, StrListOrNone


[docs]def output_document_and_move(document, outfolder, output_format: OutputFormats = OutputFormats.PDF, image_paths: StrListOrNone = None, outname='figure', as_document=True, move_folder_name='Figures', image_binaries: BytesListOrNone = None, run_bibtex: bool = False, date_time_move: bool = False): # Create tex file outname_tex = outname + '.tex' outpath_tex = os.path.abspath(os.path.join(outfolder, outname_tex)) with open(outpath_tex, 'w', encoding='utf8') as f: f.write(str(document)) tex_inputs = output_sources_return_tex_input_paths( outfolder, image_paths=image_paths, image_binaries=image_binaries ) if as_document: outname_final = outname + f'.{output_format.value}' outpath_final = os.path.abspath(os.path.join(outfolder, outname_final)) latex_str_to_file( str(document), outpath_final, output_format=output_format, texinputs=tex_inputs, run_bibtex=run_bibtex ) if not date_time_move: return # Handle date/time move functionality new_outfolder = date_time_move_latex(outname, outfolder, folder_name=move_folder_name) #move table into appropriate date/number folder if image_paths and new_outfolder: # Copy second time to move pictures along with pdf sources_tempfolder = os.path.join(outfolder, 'Sources') sources_outfolder = os.path.join(new_outfolder, 'Sources') if not os.path.exists(sources_outfolder): os.makedirs(sources_outfolder) if image_binaries: _write_image_paths_and_binaries_to_folder(sources_outfolder, image_paths, image_binaries) else: [_move_if_exists_and_is_needed( os.path.join(sources_tempfolder, _latex_valid_basename(filepath)), os.path.join(sources_outfolder, _latex_valid_basename(filepath)) ) for filepath in image_paths]