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))
|