##// END OF EJS Templates
Remove EventManager reset methods, because they violate encapsulation....
Remove EventManager reset methods, because they violate encapsulation. The whole idea of the EventManager is that you can register hooks without worrying about what hooks other pieces of code might be registering. The reset methods violate this separation of concerns, since they will blow away everyone else's hooks too. (See gh-6680 for an example of this breaking things.) Since there is never any safe way to use them, we simply remove them entirely.

File last commit:

r17397:f328e974
r18547:4043b271
Show More
autogen_api.py
68 lines | 3.2 KiB | text/x-python | PythonLexer
#!/usr/bin/env python
"""Script to auto-generate our API docs.
"""
# stdlib imports
import os
import sys
# local imports
sys.path.append(os.path.abspath('sphinxext'))
from apigen import ApiDocWriter
#*****************************************************************************
if __name__ == '__main__':
pjoin = os.path.join
package = 'IPython'
outdir = pjoin('source','api','generated')
docwriter = ApiDocWriter(package,rst_extension='.rst')
# You have to escape the . here because . is a special char for regexps.
# You must do make clean if you change this!
docwriter.package_skip_patterns += [r'\.external$',
# Extensions are documented elsewhere.
r'\.extensions',
r'\.config\.profile',
# These should be accessed via nbformat.current
r'\.nbformat\.v\d+',
# Public API for this is in kernel.zmq.eventloops
r'\.kernel\.zmq\.gui',
]
# The inputhook* modules often cause problems on import, such as trying to
# load incompatible Qt bindings. It's easiest to leave them all out. The
# main API is in the inputhook module, which is documented.
docwriter.module_skip_patterns += [ r'\.lib\.inputhook.+',
r'\.ipdoctest',
r'\.testing\.plugin',
# This just prints a deprecation msg:
r'\.frontend$',
# Deprecated:
r'\.core\.magics\.deprecated',
# We document this manually.
r'\.utils\.py3compat',
# These are exposed by nbformat.current
r'\.nbformat\.convert',
r'\.nbformat\.validator',
# These are exposed in display
r'\.core\.display',
r'\.lib\.display',
# This isn't actually a module
r'\.html\.fabfile',
]
# These modules import functions and classes from other places to expose
# them as part of the public API. They must have __all__ defined. The
# non-API modules they import from should be excluded by the skip patterns
# above.
docwriter.names_from__all__.update({
'IPython.nbformat.current',
'IPython.display',
})
# Now, generate the outputs
docwriter.write_api_docs(outdir)
# Write index with .txt extension - we can include it, but Sphinx won't try
# to compile it
docwriter.write_index(outdir, 'gen.txt',
relative_to = pjoin('source','api')
)
print ('%d files written' % len(docwriter.written_modules))