Source code for pv_evaluation.templates.render
import os
import shutil
from datetime import datetime
import quarto
from jinja2 import Environment, PackageLoader
from pkg_resources import resource_filename
[docs]def render_inventor_disambiguation_report(outdir, disambiguation_files, inventor_not_disambiguated_file, cache=True, **kwargs):
"""Create html report based on disambiguation results.
Args:
outdir (str): directory where to output html files.
disambiguation_files (list): list of string paths to disambiguation files (tables with the two columns "mention_id" and "inventor_id"). Files format can be one of tsv, csv, or parquet.
inventor_not_disambiguated (str): string path to a file containing the columns "patent_id", "inventor_sequence", "raw_inventor_name_first", and "raw_inventor_name_last". For granted patents, this should be the file "g_inventor_not_disambiguated.tsv" from PatentsView's bulk data downloads.
cache (bool, optional): whether or not to cache jupyter chunk execution between runs. Defaults to True.
Notes:
* Summary table filenames are used for figure legends. Keep them short.
"""
env = Environment(loader=PackageLoader("pv_evaluation", package_path="templates"))
template = env.get_template("inventor/0-report.qmd")
qmdpath = os.path.join(os.path.abspath(outdir), "index.qmd")
shutil.copyfile(resource_filename("pv_evaluation", "templates/inventor/header.html"), os.path.join(outdir, "header.html"))
shutil.copyfile(resource_filename("pv_evaluation", "templates/inventor/footer.html"), os.path.join(outdir, "footer.html"))
with open(qmdpath, "w+") as file:
file.write(
template.render(
disambiguation_files=disambiguation_files,
inventor_not_disambiguated_file=inventor_not_disambiguated_file,
datetime=datetime.now().strftime("%I:%M%p on %B %d, %Y"),
)
)
if quarto.path() is None:
raise Exception("Could not find quarto. Is quarto (quarto.org) installed?")
quarto.render(qmdpath, output_format="html", output_file=None, execute=True, cache=cache, **kwargs)