Generate Metainfo
This tool also support generating some metainfo to a file like
Just
[tool.setuptools-generate]
write-to = "src/translate_shell/_metainfo.py"
You can customize template by
[tool.setuptools-generate]
write-to = "src/translate_shell/_metainfo.py"
[tool.setuptools-generate.metainfo-template]
text = "XXXXX"
or
[tool.setuptools-generate]
write-to = "src/translate_shell/_metainfo.py"
[tool.setuptools-generate.metainfo-template]
file = "XXXXX"
The template language is jinja2:
"""This file is generated by setuptools-generate.
The information comes from pyproject.toml.
It provide some metainfo for docs/conf.py to build documents and
help2man to build man pages.
"""
# For docs/conf.py
project = "{{ data['project']['name'] }}"
author = """{% for author in data['project']['authors'] -%}
{{ author['name'] }} <{{ author['email'] }}> {% endfor -%}
"""
copyright = "{{ year }}"
# For help2man
DESCRIPTION = "{{ data['project']['description'] }}"
EPILOG = "Report bugs to {{ data['project']['urls']['Bug Report'] }}"
# format __version__ by yourself
VERSION = """{{ data['project']['name'] }} {__version__}
Copyright (C) {{ year }}
Written by {% for author in data['project']['authors'] -%}
{{ author['name'] }} <{{ author['email'] }}> {% endfor %}"""
sphinx
For sphinx’s docs/conf.py
, just
from translate_shell._metainfo import author, copyright, project
You don’t need write these metainfo twice: in pyproject.toml
and
docs/conf.py
.
help2man
For help2man, just in your __main__.py
:
from argparse import ArgumentParser
from translate_shell._metainfo import author, copyright, project
def get_parser():
parser = ArgumentParser(description=DESCRIPTION, epilog=EPILOG)
parser.add_argument("--version", action="version", version=VERSION)