Build manual page from python's ArgumentParser object.
Project description
Automatically build manpage from argparse
This repository contains a command for setup.py
to build
a manpage for your project.
The initial code was developed for CrunchyFrog, a database query tool for Gnome.
The frog is now retired and RunSQLRun is it's successor. Then, the
build_manpage
command was developed in andialbrecht and edited slightly
in gabrielegiammatteo. There's even an old blog post about this command.
Since some useful work has been done in python pull request, the code from the PR has been used here too (with a belief that upstream merges this, some day). Then, some more flexibility has been added.
The build_manpages
command for setup.py
is on it's own way (right here).
The old usage from build_manpage
is still supported, documented in
old documentation.
Usage
Download ./build_manpages
directory and place it somewhere where Python can
find it. E.g. by:
git submodule add --name build_manpages https://github.com/praiskup/build_manpages
git submodule update --init
In your setup.py
add:
[...]
from build_manpages import build_manpages, get_build_py_cmd, get_install_cmd
from setuptools.command.build_py import build_py
from setuptools.command.install import install
setup(
[...]
cmdclass={
'build_manpages': build_manpages,
# Re-define build_py and install commands so the manual pages
# are automatically re-generated and installed (optional)
'build_py': get_build_py_cmd(build_py),
'install': get_install_cmd(install),
}
)
In your setup.cfg
add:
[build_manpages]
manpages =
man/foo.1:object=parser:pyfile=bin/foo.py
man/bar.1:function=get_parser:pyfile=bin/bar
where each line means one manual page to be generated. The format of the lines
is colon separated set of arguments/options. The first argument determines the
filename of the generated manual page. Then follows a list of options of format
option=value
; and are about "how to get the particular argparse object".
Supported values are:
- pyfile - what python file the argparse object resides in
- object - the name of arparse object in "pyfile" to import
- function - the name of function in pyfile to call to get the argparse object
Then run setup.py build_manpages
to build a manpages for your project. Also,
if you used get_build_py
helper, setup.py build
then transitively builds the
manual pages.
Command-line usage
You can also use argparse-manpage
command on a command-line. Example:
bin/argparse-manpage --pyfile ./pythonfile --function get_parser --author me --author-email me@domain.com --project-name myproject --url https://pagure.io/myproject > cool-manpage.1
This reads ./pythonfile
and executes function get_parser
from it. The function should be programmed to return an ArgumentParser
instance which is then used together with the other info supplied on the command-line to generate the man page.
See bin/argparse-manpage --help
for full info.
License
This work is released under the terms of the Apache License v2.0. See LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file argparse-manpage-1.2.1.tar.gz
.
File metadata
- Download URL: argparse-manpage-1.2.1.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.2 pkginfo/1.4.2 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11d644e77085d1fbffc32933a5658362d1e5e2f9ae7f0c44c488bfcf6fb90f7e |
|
MD5 | 9af77f5d0ff6e827127372348907a1b2 |
|
BLAKE2b-256 | d4359c85a25f00ce60d8fc7b87845fc99b71c201791845a34ab622620c2a6aa4 |