repoze.sphinx.autointerface-0.6.2/0000755000175000017500000000000011526023233017064 5ustar tseavertseaverrepoze.sphinx.autointerface-0.6.2/COPYRIGHT.txt0000644000175000017500000000015511526022236021200 0ustar tseavertseaverCopyright (c) 2008 Agendaless Consulting and Contributors. (http://www.agendaless.com), All Rights Reserved repoze.sphinx.autointerface-0.6.2/README.txt0000644000175000017500000000272711526022236020574 0ustar tseavertseaverrepoze.sphinx.autointerface README ================================== Overview -------- Thie package defines an extension for the `Sphinx `_ documentation system. The extension allows generation of API documentation by introspection of `zope.interface `_ instances in code. Installation ------------ Install via `easy_install `_:: $ bin/easy_install repoze.sphinx.autointerface or any other means which gets the package on your ``PYTHONPATH``. Registering the Extension ------------------------- Add ``repoze.sphinx.autointerface`` to the ``extensions`` list in the ``conf.py`` of the Sphinx documentation for your product. E.g.:: extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'repoze.sphinx.autointerface', ] Using the Extension ------------------- At appropriate points in your document, call out the interface autodocs via:: .. autointerface:: yourpackage.interfaces.IFoo Output from the directive includes - the fully-qualified interface name - any base interfaces - the doctstring from the interface, rendered as reSTX. - the members of the interface (methods and attributes). * For each attribute, the output includes the attribute name and its description. * For each method, the output includes the method name, its signature, and its docstring (also rendered as reSTX). repoze.sphinx.autointerface-0.6.2/LICENSE.txt0000644000175000017500000000337711526022236020723 0ustar tseavertseaverLicense A copyright notice accompanies this license document that identifies the copyright holders. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions in source code must retain the accompanying copyright notice, this list of conditions, and the following disclaimer. 2. Redistributions in binary form must reproduce the accompanying copyright notice, this list of conditions, and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Names of the copyright holders must not be used to endorse or promote products derived from this software without prior written permission from the copyright holders. 4. If any files are modified, you must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. Disclaimer THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. repoze.sphinx.autointerface-0.6.2/setup.py0000644000175000017500000000355311526022236020606 0ustar tseavertseaver############################################################################## # # Copyright (c) 2008 Agendaless Consulting and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the BSD-like license at # http://www.repoze.org/LICENSE.txt. A copy of the license should accompany # this distribution. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL # EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, # THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND # FITNESS FOR A PARTICULAR PURPOSE # ############################################################################## import os from ez_setup import use_setuptools use_setuptools() from setuptools import setup, find_packages here = os.path.abspath(os.path.dirname(__file__)) README = open(os.path.join(here, 'README.txt')).read() CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() setup(name='repoze.sphinx.autointerface', version='0.6.2', description='Sphinx extension: auto-generates API docs ' 'from Zope interfaces', long_description=README + '\n\n' + CHANGES, classifiers=[ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Programming Language :: Python", ], keywords='web wsgi zope', author="Agendaless Consulting", author_email="repoze-dev@lists.repoze.org", url="http://www.repoze.org", license="BSD-derived (http://www.repoze.org/LICENSE.txt)", packages=find_packages(), include_package_data=True, namespace_packages=['repoze', 'repoze.sphinx'], zip_safe=False, tests_require = [], install_requires=['zope.interface', 'Sphinx>=0.6.1', 'setuptools', ], #test_suite="repoze.", ) repoze.sphinx.autointerface-0.6.2/CHANGES.txt0000644000175000017500000000314511526023041020675 0ustar tseavertseaverrepoze.sphinx.autointerface Changelog ===================================== 0.6.2 (2011-02-13) ------------------ - Fix ``TypeError: 'NoneType' object is not iterable`` error when generating a rendering of an interface under Python 2.7. 0.6.1 (2011-01-28) ------------------ - Fix ':member-order: bysource' handling. 0.6 (2011-01-28) ---------------- - Correctly handle ':members:' values explicitly set in the directive. 0.5 (2011-01-18) ---------------- - Added support for the ':member-order:' flag, which can take one of the three stock values, "alphabetical", "groupwise", or "bysource". By default, members are documented in "hash" order. 0.4 (2010-07-26) ---------------- - Fixed compatibility with Sphinx 1.0 - Un-break PyPI ReST/HTML-rendering again. 0.3 (2009-10-25) ---------------- - Refactor sphinx integration. There are now separate ``autointerface`` and ``interface`` directives. 0.2.1 (2009-08-20) ------------------ - Fix add_directive arguments to work with Sphinx 0.6.1, now required. 0.1.3 (2009-01-14) ------------------ - Coerce unicode path elements to str in ``_resolve_dotted_name``. Note that non-ASCII path elements won't work: this fix just deals with the case where the path was of type unicode. - Fixed spelling of directive in README.txt. - Added dependency on ``zope.interface``. 0.1.2 (2008-10-03) ------------------ - Packaging change: improved description in README.txt. 0.1.1 (2008-10-03) ------------------ - Packaging bug: the ``long_description`` was not rendering properly to HTML on PyPI. 0.1 (2008-10-02) ---------------- - Initial release. repoze.sphinx.autointerface-0.6.2/ez_setup.py0000644000175000017500000002276411526022236021311 0ustar tseavertseaver#!python """Bootstrap setuptools installation If you want to use setuptools in your package's setup.py, just include this file in the same directory with it, and add this to the top of your setup.py:: from ez_setup import use_setuptools use_setuptools() If you want to require a specific version of setuptools, set a download mirror, or use an alternate download directory, you can do so by supplying the appropriate options to ``use_setuptools()``. This file can also be run as a script to install or upgrade setuptools. """ import sys DEFAULT_VERSION = "0.6c9" DEFAULT_URL = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3] md5_data = { 'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca', 'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb', 'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b', 'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a', 'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618', 'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac', 'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5', 'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4', 'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c', 'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b', 'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27', 'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277', 'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa', 'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e', 'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e', 'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f', 'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2', 'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc', 'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167', 'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64', 'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d', 'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20', 'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab', 'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53', 'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2', 'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e', 'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372', 'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902', 'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de', 'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b', 'setuptools-0.6c9-py2.3.egg': 'a83c4020414807b496e4cfbe08507c03', 'setuptools-0.6c9-py2.4.egg': '260a2be2e5388d66bdaee06abec6342a', 'setuptools-0.6c9-py2.5.egg': 'fe67c3e5a17b12c0e7c541b7ea43a8e6', 'setuptools-0.6c9-py2.6.egg': 'ca37b1ff16fa2ede6e19383e7b59245a', } import sys, os try: from hashlib import md5 except ImportError: from md5 import md5 def _validate_md5(egg_name, data): if egg_name in md5_data: digest = md5(data).hexdigest() if digest != md5_data[egg_name]: print >>sys.stderr, ( "md5 validation of %s failed! (Possible download problem?)" % egg_name ) sys.exit(2) return data def use_setuptools( version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, download_delay=15 ): """Automatically find/download setuptools and make it available on sys.path `version` should be a valid setuptools version number that is available as an egg for download under the `download_base` URL (which should end with a '/'). `to_dir` is the directory where setuptools will be downloaded, if it is not already available. If `download_delay` is specified, it should be the number of seconds that will be paused before initiating a download, should one be required. If an older version of setuptools is installed, this routine will print a message to ``sys.stderr`` and raise SystemExit in an attempt to abort the calling script. """ was_imported = 'pkg_resources' in sys.modules or 'setuptools' in sys.modules def do_download(): egg = download_setuptools(version, download_base, to_dir, download_delay) sys.path.insert(0, egg) import setuptools; setuptools.bootstrap_install_from = egg try: import pkg_resources except ImportError: return do_download() try: pkg_resources.require("setuptools>="+version); return except pkg_resources.VersionConflict, e: if was_imported: print >>sys.stderr, ( "The required version of setuptools (>=%s) is not available, and\n" "can't be installed while this script is running. Please install\n" " a more recent version first, using 'easy_install -U setuptools'." "\n\n(Currently using %r)" ) % (version, e.args[0]) sys.exit(2) else: del pkg_resources, sys.modules['pkg_resources'] # reload ok return do_download() except pkg_resources.DistributionNotFound: return do_download() def download_setuptools( version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, delay = 15 ): """Download setuptools from a specified location and return its filename `version` should be a valid setuptools version number that is available as an egg for download under the `download_base` URL (which should end with a '/'). `to_dir` is the directory where the egg will be downloaded. `delay` is the number of seconds to pause before an actual download attempt. """ import urllib2, shutil egg_name = "setuptools-%s-py%s.egg" % (version,sys.version[:3]) url = download_base + egg_name saveto = os.path.join(to_dir, egg_name) src = dst = None if not os.path.exists(saveto): # Avoid repeated downloads try: from distutils import log if delay: log.warn(""" --------------------------------------------------------------------------- This script requires setuptools version %s to run (even to display help). I will attempt to download it for you (from %s), but you may need to enable firewall access for this script first. I will start the download in %d seconds. (Note: if this machine does not have network access, please obtain the file %s and place it in this directory before rerunning this script.) ---------------------------------------------------------------------------""", version, download_base, delay, url ); from time import sleep; sleep(delay) log.warn("Downloading %s", url) src = urllib2.urlopen(url) # Read/write all in one block, so we don't create a corrupt file # if the download is interrupted. data = _validate_md5(egg_name, src.read()) dst = open(saveto,"wb"); dst.write(data) finally: if src: src.close() if dst: dst.close() return os.path.realpath(saveto) def main(argv, version=DEFAULT_VERSION): """Install or upgrade setuptools and EasyInstall""" try: import setuptools except ImportError: egg = None try: egg = download_setuptools(version, delay=0) sys.path.insert(0,egg) from setuptools.command.easy_install import main return main(list(argv)+[egg]) # we're done here finally: if egg and os.path.exists(egg): os.unlink(egg) else: if setuptools.__version__ == '0.0.1': print >>sys.stderr, ( "You have an obsolete version of setuptools installed. Please\n" "remove it from your system entirely before rerunning this script." ) sys.exit(2) req = "setuptools>="+version import pkg_resources try: pkg_resources.require(req) except pkg_resources.VersionConflict: try: from setuptools.command.easy_install import main except ImportError: from easy_install import main main(list(argv)+[download_setuptools(delay=0)]) sys.exit(0) # try to force an exit else: if argv: from setuptools.command.easy_install import main main(argv) else: print "Setuptools version",version,"or greater has been installed." print '(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)' def update_md5(filenames): """Update our built-in md5 registry""" import re for name in filenames: base = os.path.basename(name) f = open(name,'rb') md5_data[base] = md5(f.read()).hexdigest() f.close() data = [" %r: %r,\n" % it for it in md5_data.items()] data.sort() repl = "".join(data) import inspect srcfile = inspect.getsourcefile(sys.modules[__name__]) f = open(srcfile, 'rb'); src = f.read(); f.close() match = re.search("\nmd5_data = {\n([^}]+)}", src) if not match: print >>sys.stderr, "Internal error!" sys.exit(2) src = src[:match.start(1)] + repl + src[match.end(1):] f = open(srcfile,'w') f.write(src) f.close() if __name__=='__main__': if len(sys.argv)>2 and sys.argv[1]=='--md5update': update_md5(sys.argv[2:]) else: main(sys.argv[1:]) repoze.sphinx.autointerface-0.6.2/repoze/0000755000175000017500000000000011526023233020370 5ustar tseavertseaverrepoze.sphinx.autointerface-0.6.2/repoze/sphinx/0000755000175000017500000000000011526023233021701 5ustar tseavertseaverrepoze.sphinx.autointerface-0.6.2/repoze/sphinx/autointerface.py0000644000175000017500000001011511526022236025104 0ustar tseavertseaverimport types from sphinx.util.docstrings import prepare_docstring from sphinx.util import force_decode try: # Sphinx < 1.0 from sphinx.directives.desc import ClasslikeDesc as PyClasslike except ImportError: from sphinx.domains.python import PyClasslike from sphinx.ext import autodoc from zope.interface import Interface class InterfaceDesc(PyClasslike): def get_index_text(self, modname, name_cls): return '%s (interface in %s)' % (name_cls[0], modname) class InterfaceDocumenter(autodoc.ClassDocumenter): """ Specialized Documenter directive for zope interfaces. """ objtype = "interface" # Must be a higher priority than ClassDocumenter member_order = 10 def __init__(self, *args, **kwargs): super(InterfaceDocumenter, self).__init__(*args, **kwargs) self.options.show_inheritance=True @classmethod def can_document_member(cls, member, membername, isattr, parent): return isinstance(member, types.ClassType) and \ issubclass(member, Interface) def add_directive_header(self, sig): if self.doc_as_attr: self.directivetype = 'attribute' autodoc.Documenter.add_directive_header(self, sig) # add inheritance info, if wanted bases=[base for base in self.object.__bases__ if base is not Interface] if not self.doc_as_attr and self.options.show_inheritance and bases: self.add_line(u'', '') bases = [u':class:`%s.%s`' % (b.__module__, b.getName()) for b in bases] self.add_line(u' Extends: %s' % ', '.join(bases), '') def format_args(self): return "" def document_members(self, all_members=True): oldindent = self.indent members = self.object.namesAndDescriptions() if self.options.members is not autodoc.ALL: specified = [] for line in (self.options.members or []): specified.extend(line.split()) mapping = dict(members) members = [(x, mapping[x]) for x in specified] member_order = (self.options.member_order or self.env.config.autodoc_member_order) if member_order == 'alphabetical': members.sort() if member_order == 'groupwise': # sort by group; relies on stable sort to keep items in the # same group sorted alphabetically members.sort(key=lambda e: getattr(e[1], 'getSignatureString', None) is not None) elif member_order == 'bysource' and self.analyzer: # sort by source order, by virtue of the module analyzer tagorder = self.analyzer.tagorder name = self.object.__name__ def keyfunc(entry): return tagorder.get('%s.%s' % (name, entry[0]), len(tagorder)) members.sort(key=keyfunc) for name, desc in members: self.add_line(u'', '') sig = getattr(desc, 'getSignatureString', None) if sig is None: self.add_line(u'.. attribute:: %s' % name, '') else: self.add_line(u'.. method:: %s%s' % (name, sig()), '') doc = desc.getDoc() if doc: self.add_line(u'', '') self.indent += self.content_indent sourcename = u'docstring of %s.%s' % (self.fullname, name) docstrings=[prepare_docstring(force_decode(doc, None))] for i, line in enumerate(self.process_doc(docstrings)): self.add_line(line, sourcename, i) self.add_line(u'', '') self.indent = oldindent def setup(app): try: app.add_directive_to_domain('py', 'interface', InterfaceDesc) except AttributeError: # Sphinx < 1.0 app.add_directive('interface', InterfaceDesc) app.add_autodocumenter(InterfaceDocumenter) repoze.sphinx.autointerface-0.6.2/repoze/sphinx/__init__.py0000644000175000017500000000007011526022236024011 0ustar tseavertseaver__import__('pkg_resources').declare_namespace(__name__) repoze.sphinx.autointerface-0.6.2/repoze/__init__.py0000644000175000017500000000007011526022236022500 0ustar tseavertseaver__import__('pkg_resources').declare_namespace(__name__) repoze.sphinx.autointerface-0.6.2/setup.cfg0000644000175000017500000000007311526023233020705 0ustar tseavertseaver[egg_info] tag_build = tag_date = 0 tag_svn_revision = 0 repoze.sphinx.autointerface-0.6.2/TODO.txt0000644000175000017500000000037411526022236020400 0ustar tseavertseaverrepoze.sphinx.autointerface TODOs ================================= - [X] Add an :interface: mode and corresponding directive. - [_] Get our output to look more like that produced by '.. autoclass::'. Probably blocks in the ':interface:' mode. repoze.sphinx.autointerface-0.6.2/PKG-INFO0000644000175000017500000001117611526023233020167 0ustar tseavertseaverMetadata-Version: 1.0 Name: repoze.sphinx.autointerface Version: 0.6.2 Summary: Sphinx extension: auto-generates API docs from Zope interfaces Home-page: http://www.repoze.org Author: Agendaless Consulting Author-email: repoze-dev@lists.repoze.org License: BSD-derived (http://www.repoze.org/LICENSE.txt) Description: repoze.sphinx.autointerface README ================================== Overview -------- Thie package defines an extension for the `Sphinx `_ documentation system. The extension allows generation of API documentation by introspection of `zope.interface `_ instances in code. Installation ------------ Install via `easy_install `_:: $ bin/easy_install repoze.sphinx.autointerface or any other means which gets the package on your ``PYTHONPATH``. Registering the Extension ------------------------- Add ``repoze.sphinx.autointerface`` to the ``extensions`` list in the ``conf.py`` of the Sphinx documentation for your product. E.g.:: extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'repoze.sphinx.autointerface', ] Using the Extension ------------------- At appropriate points in your document, call out the interface autodocs via:: .. autointerface:: yourpackage.interfaces.IFoo Output from the directive includes - the fully-qualified interface name - any base interfaces - the doctstring from the interface, rendered as reSTX. - the members of the interface (methods and attributes). * For each attribute, the output includes the attribute name and its description. * For each method, the output includes the method name, its signature, and its docstring (also rendered as reSTX). repoze.sphinx.autointerface Changelog ===================================== 0.6.2 (2011-02-13) ------------------ - Fix ``TypeError: 'NoneType' object is not iterable`` error when generating a rendering of an interface under Python 2.7. 0.6.1 (2011-01-28) ------------------ - Fix ':member-order: bysource' handling. 0.6 (2011-01-28) ---------------- - Correctly handle ':members:' values explicitly set in the directive. 0.5 (2011-01-18) ---------------- - Added support for the ':member-order:' flag, which can take one of the three stock values, "alphabetical", "groupwise", or "bysource". By default, members are documented in "hash" order. 0.4 (2010-07-26) ---------------- - Fixed compatibility with Sphinx 1.0 - Un-break PyPI ReST/HTML-rendering again. 0.3 (2009-10-25) ---------------- - Refactor sphinx integration. There are now separate ``autointerface`` and ``interface`` directives. 0.2.1 (2009-08-20) ------------------ - Fix add_directive arguments to work with Sphinx 0.6.1, now required. 0.1.3 (2009-01-14) ------------------ - Coerce unicode path elements to str in ``_resolve_dotted_name``. Note that non-ASCII path elements won't work: this fix just deals with the case where the path was of type unicode. - Fixed spelling of directive in README.txt. - Added dependency on ``zope.interface``. 0.1.2 (2008-10-03) ------------------ - Packaging change: improved description in README.txt. 0.1.1 (2008-10-03) ------------------ - Packaging bug: the ``long_description`` was not rendering properly to HTML on PyPI. 0.1 (2008-10-02) ---------------- - Initial release. Keywords: web wsgi zope Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: Programming Language :: Python repoze.sphinx.autointerface-0.6.2/repoze.sphinx.autointerface.egg-info/0000755000175000017500000000000011526023233026222 5ustar tseavertseaverrepoze.sphinx.autointerface-0.6.2/repoze.sphinx.autointerface.egg-info/not-zip-safe0000644000175000017500000000000111526022255030453 0ustar tseavertseaver repoze.sphinx.autointerface-0.6.2/repoze.sphinx.autointerface.egg-info/namespace_packages.txt0000644000175000017500000000002511526023233032552 0ustar tseavertseaverrepoze repoze.sphinx repoze.sphinx.autointerface-0.6.2/repoze.sphinx.autointerface.egg-info/requires.txt0000644000175000017500000000004711526023233030623 0ustar tseavertseaverzope.interface Sphinx>=0.6.1 setuptoolsrepoze.sphinx.autointerface-0.6.2/repoze.sphinx.autointerface.egg-info/SOURCES.txt0000644000175000017500000000100611526023233030103 0ustar tseavertseaverCHANGES.txt COPYRIGHT.txt LICENSE.txt README.txt TODO.txt ez_setup.py setup.py repoze/__init__.py repoze.sphinx.autointerface.egg-info/PKG-INFO repoze.sphinx.autointerface.egg-info/SOURCES.txt repoze.sphinx.autointerface.egg-info/dependency_links.txt repoze.sphinx.autointerface.egg-info/namespace_packages.txt repoze.sphinx.autointerface.egg-info/not-zip-safe repoze.sphinx.autointerface.egg-info/requires.txt repoze.sphinx.autointerface.egg-info/top_level.txt repoze/sphinx/__init__.py repoze/sphinx/autointerface.pyrepoze.sphinx.autointerface-0.6.2/repoze.sphinx.autointerface.egg-info/top_level.txt0000644000175000017500000000000711526023233030751 0ustar tseavertseaverrepoze repoze.sphinx.autointerface-0.6.2/repoze.sphinx.autointerface.egg-info/dependency_links.txt0000644000175000017500000000000111526023233032270 0ustar tseavertseaver repoze.sphinx.autointerface-0.6.2/repoze.sphinx.autointerface.egg-info/PKG-INFO0000644000175000017500000001117611526023233027325 0ustar tseavertseaverMetadata-Version: 1.0 Name: repoze.sphinx.autointerface Version: 0.6.2 Summary: Sphinx extension: auto-generates API docs from Zope interfaces Home-page: http://www.repoze.org Author: Agendaless Consulting Author-email: repoze-dev@lists.repoze.org License: BSD-derived (http://www.repoze.org/LICENSE.txt) Description: repoze.sphinx.autointerface README ================================== Overview -------- Thie package defines an extension for the `Sphinx `_ documentation system. The extension allows generation of API documentation by introspection of `zope.interface `_ instances in code. Installation ------------ Install via `easy_install `_:: $ bin/easy_install repoze.sphinx.autointerface or any other means which gets the package on your ``PYTHONPATH``. Registering the Extension ------------------------- Add ``repoze.sphinx.autointerface`` to the ``extensions`` list in the ``conf.py`` of the Sphinx documentation for your product. E.g.:: extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'repoze.sphinx.autointerface', ] Using the Extension ------------------- At appropriate points in your document, call out the interface autodocs via:: .. autointerface:: yourpackage.interfaces.IFoo Output from the directive includes - the fully-qualified interface name - any base interfaces - the doctstring from the interface, rendered as reSTX. - the members of the interface (methods and attributes). * For each attribute, the output includes the attribute name and its description. * For each method, the output includes the method name, its signature, and its docstring (also rendered as reSTX). repoze.sphinx.autointerface Changelog ===================================== 0.6.2 (2011-02-13) ------------------ - Fix ``TypeError: 'NoneType' object is not iterable`` error when generating a rendering of an interface under Python 2.7. 0.6.1 (2011-01-28) ------------------ - Fix ':member-order: bysource' handling. 0.6 (2011-01-28) ---------------- - Correctly handle ':members:' values explicitly set in the directive. 0.5 (2011-01-18) ---------------- - Added support for the ':member-order:' flag, which can take one of the three stock values, "alphabetical", "groupwise", or "bysource". By default, members are documented in "hash" order. 0.4 (2010-07-26) ---------------- - Fixed compatibility with Sphinx 1.0 - Un-break PyPI ReST/HTML-rendering again. 0.3 (2009-10-25) ---------------- - Refactor sphinx integration. There are now separate ``autointerface`` and ``interface`` directives. 0.2.1 (2009-08-20) ------------------ - Fix add_directive arguments to work with Sphinx 0.6.1, now required. 0.1.3 (2009-01-14) ------------------ - Coerce unicode path elements to str in ``_resolve_dotted_name``. Note that non-ASCII path elements won't work: this fix just deals with the case where the path was of type unicode. - Fixed spelling of directive in README.txt. - Added dependency on ``zope.interface``. 0.1.2 (2008-10-03) ------------------ - Packaging change: improved description in README.txt. 0.1.1 (2008-10-03) ------------------ - Packaging bug: the ``long_description`` was not rendering properly to HTML on PyPI. 0.1 (2008-10-02) ---------------- - Initial release. Keywords: web wsgi zope Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: Programming Language :: Python