59 lines
1.8 KiB
Python
59 lines
1.8 KiB
Python
#!/usr/bin/env python
|
|
"""Script to auto-generate our API docs.
|
|
"""
|
|
# stdlib imports
|
|
import os, sys
|
|
|
|
# local imports
|
|
from apigen import ApiDocWriter
|
|
|
|
# version comparison
|
|
from distutils.version import LooseVersion as V
|
|
|
|
#*****************************************************************************
|
|
|
|
def abort(error):
|
|
print('*WARNING* API documentation not generated: %s' % error)
|
|
exit()
|
|
|
|
if __name__ == '__main__':
|
|
package = 'skimage'
|
|
|
|
# Check that the 'image' package is available. If not, the API
|
|
# documentation is not (re)generated and existing API documentation
|
|
# sources will be used.
|
|
|
|
try:
|
|
__import__(package)
|
|
except ImportError as e:
|
|
abort("Can not import skimage")
|
|
|
|
module = sys.modules[package]
|
|
|
|
# Check that the source version is equal to the installed
|
|
# version. If the versions mismatch the API documentation sources
|
|
# are not (re)generated. This avoids automatic generation of documentation
|
|
# for older or newer versions if such versions are installed on the system.
|
|
|
|
installed_version = V(module.__version__)
|
|
|
|
source_lines = open('../skimage/__init__.py').readlines()
|
|
version = 'vUndefined'
|
|
for l in source_lines:
|
|
if l.startswith('__version__'):
|
|
source_version = V(l.split("'")[1])
|
|
break
|
|
|
|
if source_version != installed_version:
|
|
abort("Installed version does not match source version")
|
|
|
|
outdir = 'source/api'
|
|
docwriter = ApiDocWriter(package)
|
|
docwriter.package_skip_patterns += [r'\.fixes$',
|
|
r'\.externals$',
|
|
r'filter$',
|
|
]
|
|
docwriter.write_api_docs(outdir)
|
|
docwriter.write_index(outdir, 'api', relative_to='source/api')
|
|
print('%d files written' % len(docwriter.written_modules))
|