pyqtgraph/tools/rebuildPtreeRst.py

49 lines
1.2 KiB
Python

import os.path
import textwrap
from pyqtgraph.parametertree.Parameter import PARAM_TYPES, _PARAM_ITEM_TYPES
def mkDocs(typeList):
typeNames = sorted([typ.__name__ for typ in typeList])
typDocs = [
f"""\
.. autoclass:: {name}
:members:
"""
for name in typeNames]
indented = '\n'.join(typDocs)
# There will be two newlines at the end, so remove one
return textwrap.dedent(indented)[:-1]
types = set(PARAM_TYPES.values())
items = [typ.itemClass for typ in PARAM_TYPES.values() if typ.itemClass is not None] \
+ [item for item in _PARAM_ITEM_TYPES.values()]
items = set(items)
doc = f"""\
..
This file is auto-generated from pyqtgraph/tools/rebuildPtreeRst.py. Do not modify by hand! Instead, rerun the
generation script with `python pyqtgraph/tools/rebuildPtreeRst.py`.
Built-in Parameter Types
========================
.. currentmodule:: pyqtgraph.parametertree.parameterTypes
Parameters
----------
{mkDocs(types)}
ParameterItems
--------------
{mkDocs(items)}
"""
here = os.path.dirname(__file__)
rstFilename = os.path.join(here, '..', 'doc', 'source', 'parametertree', 'parametertypes.rst')
with open(rstFilename, 'w') as ofile:
ofile.write(doc)