diff --git a/CHANGES b/CHANGES index bc5278a44..da99816a9 100644 --- a/CHANGES +++ b/CHANGES @@ -39,9 +39,15 @@ Release 1.0 (in development) * Added simplified Chinese locale. -Release 0.6.3 (in development) +Release 0.6.4 (in development) ============================== + +Release 0.6.3 (Sep 03, 2009) +============================ + +* Properly add C module filenames as dependencies in autodoc. + * #253: Ignore graphviz directives without content instead of raising an unhandled exception. diff --git a/sphinx/application.py b/sphinx/application.py index ed17f1a67..1296e5752 100644 --- a/sphinx/application.py +++ b/sphinx/application.py @@ -29,7 +29,7 @@ from sphinx.domains import all_domains from sphinx.builders import BUILTIN_BUILDERS from sphinx.directives import GenericDesc, Target, additional_xref_types from sphinx.environment import BuildEnvironment, SphinxStandaloneReader -from sphinx.util import pycompat +from sphinx.util import pycompat # imported for side-effects from sphinx.util.tags import Tags from sphinx.util.compat import Directive, directive_dwim from sphinx.util.console import bold diff --git a/sphinx/builders/changes.py b/sphinx/builders/changes.py index ad0b8d195..c1ea14a88 100644 --- a/sphinx/builders/changes.py +++ b/sphinx/builders/changes.py @@ -10,7 +10,6 @@ """ import codecs -import shutil from os import path from cgi import escape diff --git a/sphinx/environment.py b/sphinx/environment.py index dc78951af..bd93c91c4 100644 --- a/sphinx/environment.py +++ b/sphinx/environment.py @@ -22,11 +22,6 @@ import cPickle as pickle from os import path from glob import glob from itertools import izip, groupby -try: - from hashlib import md5 -except ImportError: - # 2.4 compatibility - from md5 import md5 from docutils import nodes from docutils.io import FileInput, NullOutput diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py index 2b280d673..705853c20 100644 --- a/sphinx/ext/autodoc.py +++ b/sphinx/ext/autodoc.py @@ -14,8 +14,7 @@ import re import sys import inspect -from types import ModuleType, FunctionType, BuiltinFunctionType, MethodType, \ - ClassType +from types import FunctionType, BuiltinFunctionType, MethodType, ClassType from docutils import nodes from docutils.utils import assemble_option_dict @@ -626,11 +625,15 @@ class Documenter(object): # try to also get a source code analyzer for attribute docs try: self.analyzer = ModuleAnalyzer.for_module(self.real_modname) - # parse right now, to get PycodeErrors on parsing - self.analyzer.parse() + # parse right now, to get PycodeErrors on parsing (results will + # be cached anyway) + self.analyzer.find_attr_docs() except PycodeError, err: # no source file -- e.g. for builtin and C modules self.analyzer = None + # at least add the module.__file__ as a dependency + if hasattr(self.module, '__file__') and self.module.__file__: + self.directive.filename_set.add(self.module.__file__) else: self.directive.filename_set.add(self.analyzer.srcname) diff --git a/sphinx/ext/graphviz.py b/sphinx/ext/graphviz.py index 1b6a03eef..449d9524a 100644 --- a/sphinx/ext/graphviz.py +++ b/sphinx/ext/graphviz.py @@ -10,9 +10,7 @@ :license: BSD, see LICENSE for details. """ -import os import re -import sys import posixpath from os import path from subprocess import Popen, PIPE diff --git a/sphinx/ext/inheritance_diagram.py b/sphinx/ext/inheritance_diagram.py index 6536f94c0..e464adb57 100644 --- a/sphinx/ext/inheritance_diagram.py +++ b/sphinx/ext/inheritance_diagram.py @@ -36,11 +36,9 @@ :license: BSD, see LICENSE for details. """ -import os import re import sys import inspect -import subprocess try: from hashlib import md5 except ImportError: diff --git a/sphinx/jinja2glue.py b/sphinx/jinja2glue.py index 626e7f8a8..e2c96a963 100644 --- a/sphinx/jinja2glue.py +++ b/sphinx/jinja2glue.py @@ -9,7 +9,6 @@ :license: BSD, see LICENSE for details. """ -import codecs from os import path from pprint import pformat diff --git a/sphinx/pycode/__init__.py b/sphinx/pycode/__init__.py index 1187b6a43..fa8d0e948 100644 --- a/sphinx/pycode/__init__.py +++ b/sphinx/pycode/__init__.py @@ -234,6 +234,8 @@ class ModuleAnalyzer(object): attr_visitor = AttrDocVisitor(number2name, scope, self.encoding) attr_visitor.visit(self.parsetree) self.attr_docs = attr_visitor.collected + # now that we found everything we could in the tree, throw it away + # (it takes quite a bit of memory for large modules) self.parsetree = None return attr_visitor.collected diff --git a/sphinx/search.py b/sphinx/search.py index f283881fa..7f1a87a97 100644 --- a/sphinx/search.py +++ b/sphinx/search.py @@ -10,7 +10,6 @@ """ import re import cPickle as pickle -from cStringIO import StringIO from docutils.nodes import comment, Text, NodeVisitor, SkipNode diff --git a/sphinx/util/__init__.py b/sphinx/util/__init__.py index 05e72caf1..87b08095f 100644 --- a/sphinx/util/__init__.py +++ b/sphinx/util/__init__.py @@ -443,7 +443,7 @@ def split_explicit_title(text): """Split role content into title and target, if given.""" match = explicit_title_re.match(text) if match: - return True, m.group(1), m.group(2) + return True, match.group(1), match.group(2) return False, text, text