Source code for setuptools_generate.metainfo

"""Metainfo
===========
"""
import logging
from datetime import datetime
from pathlib import Path

from jinja2 import Template
from jinja2.exceptions import UndefinedError

logger = logging.getLogger(__name__)
TEMPLATE_FILE = str(
    Path(__file__).absolute().parent / "assets" / "jinja2" / "metainfo.py.j2"
)


[docs]def generate_metainfo(write_to: str, data: dict) -> None: """Generate metainfo. :param write_to: :type write_to: str :param data: :type data: dict :rtype: None """ template = "" try: metainfo_template: dict[str, str] = data["tool"][ "setuptools-generate" ]["metainfo-template"] if file := metainfo_template.get("file"): with open(file) as f: template = f.read() elif text := metainfo_template.get("text"): template = text else: logger.info("metainfo-template is incorrect, use default!") except KeyError: logger.info("metainfo-template doesn't exist, use default!") if template == "": with open(TEMPLATE_FILE) as f: template = f.read() try: content = Template(template).render( data=data, year=str(datetime.now().year) ) except UndefinedError as e: logger.error("Undefind error!") raise e with open(write_to, "w") as f: f.write(content)