From 18c095284e1265ba3ec7ef4eb75c2874e6795cb3 Mon Sep 17 00:00:00 2001 From: HafeezOJ <32125238+HafeezOJ@users.noreply.github.com> Date: Wed, 15 Jan 2025 15:24:10 -0700 Subject: [PATCH] Include funders list macro in templates --- .../curation/inspection/readme/__init__.py | 9 +++++- .../inspection/readme/templates/DVC.md | 7 +++-- .../inspection/readme/templates/Main.md | 7 +++-- .../readme/templates/Space_Grant.md | 7 +++-- .../inspection/readme/templates/WCCFL.md | 7 +++-- .../readme/templates/funders_dict.jinja | 28 +++++++++++++++++++ 6 files changed, 52 insertions(+), 13 deletions(-) create mode 100644 ldcoolp/curation/inspection/readme/templates/funders_dict.jinja diff --git a/ldcoolp/curation/inspection/readme/__init__.py b/ldcoolp/curation/inspection/readme/__init__.py index 644996c..417e9c5 100644 --- a/ldcoolp/curation/inspection/readme/__init__.py +++ b/ldcoolp/curation/inspection/readme/__init__.py @@ -7,6 +7,7 @@ # Template engine from jinja2 import Environment, FileSystemLoader +from jinja2.ext import loopcontrols from html2text import html2text # Logging @@ -97,6 +98,7 @@ def __init__(self, dn: DepositorName, config_dict=config_default_dict, self.folderName = self.dn.folderName self.article_id = self.dn.article_id self.article_dict = self.dn.curation_dict + self.funders_dict = 'funders_dict.jinja' if isinstance(log, type(None)): self.log = log_stdout() @@ -260,6 +262,10 @@ def save_template(self): dest_file = join(self.metadata_path, self.readme_template) + funders_dict_file_src = join(dirname(__file__), 'templates', + self.funders_dict) + funders_dict_file_dest = join(self.metadata_path, self.funders_dict) + if not exists(dest_file): self.log.info(f"Saving {self.readme_template} template in METADATA ...") @@ -271,6 +277,7 @@ def save_template(self): self.log.info(f"Source file name: {src_file}") shutil.copy(src_file, dest_file) + shutil.copy(funders_dict_file_src, funders_dict_file_dest) else: self.log.info(f"{dest_file} exists. Not overwriting template!") @@ -283,7 +290,7 @@ def import_template(self): """Returns a jinja2 template by importing README markdown template (README_template.md)""" file_loader = FileSystemLoader(self.metadata_path) - env = Environment(loader=file_loader, lstrip_blocks=True, trim_blocks=True) + env = Environment(loader=file_loader, lstrip_blocks=True, trim_blocks=True, extensions=[loopcontrols]) jinja_template = env.get_template(self.default_readme_file) return jinja_template diff --git a/ldcoolp/curation/inspection/readme/templates/DVC.md b/ldcoolp/curation/inspection/readme/templates/DVC.md index 2f7824a..0b79d8c 100644 --- a/ldcoolp/curation/inspection/readme/templates/DVC.md +++ b/ldcoolp/curation/inspection/readme/templates/DVC.md @@ -47,10 +47,11 @@ DOI: --------------------------------------------- ## Funders +{% import 'funders_dict.jinja' as funds %} +{% set ns = namespace(funder_found = false) %} {% for funder in figshare_dict.funders %} -{% if funder.is_user_defined == 0 %} -- {{ funder.funder_name }} (Grant no: {{ funder.grant_code }}) - {{ funder.url }} +{% if funder.is_user_defined == 0 %} +{{ funds.funders_(funder) }} {% else %} - {{ funder.title }} {% endif %} diff --git a/ldcoolp/curation/inspection/readme/templates/Main.md b/ldcoolp/curation/inspection/readme/templates/Main.md index 0709fc0..8c41d02 100755 --- a/ldcoolp/curation/inspection/readme/templates/Main.md +++ b/ldcoolp/curation/inspection/readme/templates/Main.md @@ -48,10 +48,11 @@ DOI: --------------------------------------------- ## Funders +{% import 'funders_dict.jinja' as funds %} +{% set ns = namespace(funder_found = false) %} {% for funder in figshare_dict.funders %} -{% if funder.is_user_defined == 0 %} -- {{ funder.funder_name }} (Grant no: {{ funder.grant_code }}) - {{ funder.url }} +{% if funder.is_user_defined == 0 %} +{{ funds.funders_(funder) }} {% else %} - {{ funder.title }} {% endif %} diff --git a/ldcoolp/curation/inspection/readme/templates/Space_Grant.md b/ldcoolp/curation/inspection/readme/templates/Space_Grant.md index 245584a..a0fe8e9 100644 --- a/ldcoolp/curation/inspection/readme/templates/Space_Grant.md +++ b/ldcoolp/curation/inspection/readme/templates/Space_Grant.md @@ -48,10 +48,11 @@ DOI: --------------------------------------------- ## Funders +{% import 'funders_dict.jinja' as funds %} +{% set ns = namespace(funder_found = false) %} {% for funder in figshare_dict.funders %} -{% if funder.is_user_defined == 0 %} -- {{ funder.funder_name }} (Grant no: {{ funder.grant_code }}) - {{ funder.url }} +{% if funder.is_user_defined == 0 %} +{{ funds.funders_(funder) }} {% else %} - {{ funder.title }} {% endif %} diff --git a/ldcoolp/curation/inspection/readme/templates/WCCFL.md b/ldcoolp/curation/inspection/readme/templates/WCCFL.md index 5d9b81c..8441192 100644 --- a/ldcoolp/curation/inspection/readme/templates/WCCFL.md +++ b/ldcoolp/curation/inspection/readme/templates/WCCFL.md @@ -48,10 +48,11 @@ DOI: --------------------------------------------- ## Funders +{% import 'funders_dict.jinja' as funds %} +{% set ns = namespace(funder_found = false) %} {% for funder in figshare_dict.funders %} -{% if funder.is_user_defined == 0 %} -- {{ funder.funder_name }} (Grant no: {{ funder.grant_code }}) - {{ funder.url }} +{% if funder.is_user_defined == 0 %} +{{ funds.funders_(funder) }} {% else %} - {{ funder.title }} {% endif %} diff --git a/ldcoolp/curation/inspection/readme/templates/funders_dict.jinja b/ldcoolp/curation/inspection/readme/templates/funders_dict.jinja new file mode 100644 index 0000000..2f9aa1b --- /dev/null +++ b/ldcoolp/curation/inspection/readme/templates/funders_dict.jinja @@ -0,0 +1,28 @@ +{% macro funders_(given_funder) %} + {% set funders = { + 'National Science Foundation': ['Directorate for Biological Sciences', + 'Directorate for Computer and Information Science and Engineering', + 'Directorate for Engineering', + 'Directorate of Geosciences', + 'Directorate for Mathematical and Physical Sciences', + 'Directorate for Social, Behavioral and Economic Sciences', + 'Directorate for STEM Education', + 'Directorate for Technology, Innovation and Partnerships' + ] + } %} +{% set ns = namespace(given_funder_found = false) %} +{% for funder, offices in funders.items() %} +{% if given_funder.funder_name in offices %} +{% set ns.given_funder_found = true %} +- {{ funder }} (Grant no: {{ given_funder.grant_code }}) + {{ given_funder.url }} +{% break %} +{% else %} +{% set ns.given_funder_found = false %} +{% endif %} +{% endfor %} +{% if ns.given_funder_found == false %} +- {{ given_funder.funder_name}} (Grant no: {{ given_funder.grant_code }}) + {{ given_funder.url }} +{% endif %} +{% endmacro %} \ No newline at end of file