diff --git a/CHANGES b/CHANGES index 6f1a7ef52..264ddd075 100644 --- a/CHANGES +++ b/CHANGES @@ -40,8 +40,13 @@ Release 1.0 (in development) Release 0.6.4 (in development) ============================== +* #238: In autodoc, catch all errors that occur on module import, + not just ``ImportError``. + * Fix the handling of non-data, but non-method descriptors in autodoc. +* When copying file times, ignore OSErrors raised by ``os.utime()``. + Release 0.6.3 (Sep 03, 2009) ============================ diff --git a/EXAMPLES b/EXAMPLES index 74a5961e4..9d97c8156 100644 --- a/EXAMPLES +++ b/EXAMPLES @@ -6,7 +6,9 @@ experimenting with using it for their documentation. If you like to be included, please mail to `the Google group `_. +* Applied Mathematics at the Stellenbosch University: http://dip.sun.ac.za/ * APSW: http://apsw.googlecode.com/svn/publish/index.html +* ASE: https://wiki.fysik.dtu.dk/ase/ * boostmpi: http://documen.tician.de/boostmpi/ * Calibre: http://calibre.kovidgoyal.net/user_manual/ * Chaco: http://code.enthought.com/projects/chaco/docs/html/ @@ -17,13 +19,17 @@ included, please mail to `the Google group * Djagios: http://djagios.org/ * Django: http://docs.djangoproject.com/ * F2py: http://www.f2py.org/html/ +* Fityk: http://www.unipress.waw.pl/fityk/ * GeoDjango: http://geodjango.org/docs/ * GeoServer: http://docs.geoserver.org/ * Glashammer: http://glashammer.org/ +* GPAW: https://wiki.fysik.dtu.dk/gpaw/ * Grok: http://grok.zope.org/doc/current/ +* GSL Shell: http://www.nongnu.org/gsl-shell/ * Hedge: http://documen.tician.de/hedge/ * IFM: http://fluffybunny.memebot.com/ifm-docs/index.html * Jinja: http://jinja.pocoo.org/2/documentation/ +* Kaa: http://doc.freevo.org/api/kaa/ * LEPL: http://www.acooke.org/lepl/ * MapServer: http://mapserver.org/ * Matplotlib: http://matplotlib.sourceforge.net/ diff --git a/doc/_templates/index.html b/doc/_templates/index.html index 1c399f926..0f4d4c641 100644 --- a/doc/_templates/index.html +++ b/doc/_templates/index.html @@ -58,6 +58,7 @@

Documentation

+
+

You may also be interested in the very nice + tutorial on how to + create a customized documentation using Sphinx written by the matplotlib + developers.

+ +

There is a Japanese translation + of this documentation, thanks to Yoshiki Shibukawa.

+

Get Sphinx

Sphinx is available as an `_ version 0.12 or greater. You need to add +``'rst2pdf.pdfbuilder'`` to your :confval:`extensions` to enable it, its name is +``pdf``. + .. module:: sphinx.builders.text .. class:: TextBuilder diff --git a/doc/ext/inheritance.rst b/doc/ext/inheritance.rst index fe6d636d3..72849e05a 100644 --- a/doc/ext/inheritance.rst +++ b/doc/ext/inheritance.rst @@ -37,10 +37,20 @@ New config values are: A dictionary of graphviz graph attributes for inheritance diagrams. + For example:: + + inheritance_graph_attrs = dict(rankdir="LR", size='"6.0, 8.0"', + fontsize=14, ratio='compress') + .. confval:: inheritance_node_attrs A dictionary of graphviz node attributes for inheritance diagrams. + For example:: + + inheritance_node_attrs = dict(shape='ellipse', fontsize=14, height=0.75, + color='dodgerblue1', style='filled') + .. confval:: inheritance_edge_attrs A dictionary of graphviz edge attributes for inheritance diagrams. diff --git a/doc/faq.rst b/doc/faq.rst index a724ddcaf..34502dc41 100644 --- a/doc/faq.rst +++ b/doc/faq.rst @@ -9,6 +9,11 @@ suggest new entries! How do I... ----------- +... create PDF files without LaTeX? + You can use `rst2pdf `_ version 0.12 or greater + which comes with built-in Sphinx integration. See the :ref:`builders` + section for details. + ... get section numbers? They are automatic in LaTeX output; for HTML, give a ``:numbered:`` option to the :dir:`toctree` directive where you want to start numbering. diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py index ef09b61a1..b5c59ec53 100644 --- a/sphinx/ext/autodoc.py +++ b/sphinx/ext/autodoc.py @@ -322,7 +322,9 @@ class Documenter(object): obj = self.get_attr(obj, part) self.object = obj return True - except (SyntaxError, ImportError, AttributeError), err: + # this used to only catch SyntaxError, ImportError and AttributeError, + # but importing modules with side effects can raise all kinds of errors + except Exception, err: self.directive.warn( 'autodoc can\'t import/find %s %r, it reported error: ' '"%s", please check your spelling and sys.path' % diff --git a/sphinx/ext/jsmath.py b/sphinx/ext/jsmath.py index e51af4550..79e2565a7 100644 --- a/sphinx/ext/jsmath.py +++ b/sphinx/ext/jsmath.py @@ -13,7 +13,7 @@ from docutils import nodes from sphinx.application import ExtensionError -from sphinx.ext.mathbase import setup as mathbase_setup +from sphinx.ext.mathbase import setup_math as mathbase_setup def html_visit_math(self, node): diff --git a/sphinx/ext/mathbase.py b/sphinx/ext/mathbase.py index fea786e3e..b2baa6287 100644 --- a/sphinx/ext/mathbase.py +++ b/sphinx/ext/mathbase.py @@ -132,7 +132,7 @@ def number_equations(app, doctree, docname): node[0] = nodes.Text(num, num) -def setup(app, htmlinlinevisitors, htmldisplayvisitors): +def setup_math(app, htmlinlinevisitors, htmldisplayvisitors): app.add_node(math, latex=(latex_visit_math, None), text=(text_visit_math, None), diff --git a/sphinx/ext/pngmath.py b/sphinx/ext/pngmath.py index b9353d7f5..02f46e3d3 100644 --- a/sphinx/ext/pngmath.py +++ b/sphinx/ext/pngmath.py @@ -25,7 +25,7 @@ from docutils import nodes from sphinx.errors import SphinxError from sphinx.util import ensuredir from sphinx.util.png import read_png_depth, write_png_depth -from sphinx.ext.mathbase import setup as mathbase_setup, wrap_displaymath +from sphinx.ext.mathbase import setup_math as mathbase_setup, wrap_displaymath class MathExtError(SphinxError): category = 'Math extension error' diff --git a/sphinx/highlighting.py b/sphinx/highlighting.py index aa1cbd185..98ee4ab9c 100644 --- a/sphinx/highlighting.py +++ b/sphinx/highlighting.py @@ -12,9 +12,14 @@ import sys import cgi import re -import parser import textwrap +try: + import parser +except ImportError: + # parser is not available on Jython + parser = None + from sphinx.util.texescape import tex_hl_escape_map try: @@ -158,6 +163,9 @@ class PygmentsBridge(object): # just replace all non-ASCII characters. src = src.encode('ascii', 'replace') + if parser is None: + return True + try: parser.suite(src) except parsing_exceptions: diff --git a/sphinx/locale/nl/LC_MESSAGES/sphinx.js b/sphinx/locale/nl/LC_MESSAGES/sphinx.js index baacee446..2314d76f7 100644 --- a/sphinx/locale/nl/LC_MESSAGES/sphinx.js +++ b/sphinx/locale/nl/LC_MESSAGES/sphinx.js @@ -1 +1,3 @@ -Documentation.addTranslations({"locale": "nl", "plural_expr": "(n != 1)", "messages": {"Search Results": "Zoekresultaten", "Preparing search...": "Het zoeken wordt voorbereid", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Uw zoekopdracht leverde geen resultaten op. Controleer of alle woordencorrect gespeld zijn en dat u genoeg categori\u00ebn hebt geselecteerd.", "Search finished, found %s page(s) matching the search query.": "Zoeken voltooid, %s pagina(s) gevonden.", ", in ": "", "Permalink to this headline": "Permanente link naar deze titel", "Searching": "Zoeken", "Permalink to this definition": "Permanente link naar deze definitie", "module, in ": "module", "Hide Search Matches": "Zoekresultaten verbergen"}}); \ No newline at end of file +<<<<<<< local +Documentation.addTranslations({"locale": "nl", "plural_expr": "(n != 1)", "messages": {"Search Results": "Zoekresultaten", "Preparing search...": "Het zoeken wordt voorbereid", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Uw zoekopdracht leverde geen resultaten op. Controleer of alle woordencorrect gespeld zijn en dat u genoeg categori\u00ebn hebt geselecteerd.", "Search finished, found %s page(s) matching the search query.": "Zoeken voltooid, %s pagina(s) gevonden.", ", in ": "", "Permalink to this headline": "Permanente link naar deze titel", "Searching": "Zoeken", "Permalink to this definition": "Permanente link naar deze definitie", "module, in ": "module", "Hide Search Matches": "Zoekresultaten verbergen"}});======= +Documentation.addTranslations({"locale": "nl", "plural_expr": "(n != 1)", "messages": {"Search Results": "Zoekresultaten", "Preparing search...": "Het zoeken wordt voorbereid...", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Uw zoekopdracht leverde geen resultaten op. Controleer of alle woorden correct gespeld zijn en dat u genoeg categori\u00ebn hebt geselecteerd.", "Search finished, found %s page(s) matching the search query.": "Zoeken voltooid, %s pagina(s) gevonden.", ", in ": ", in ", "Permalink to this headline": "Permanente link naar deze titel", "Searching": "Zoeken", "Permalink to this definition": "Permanente link naar deze definitie", "module, in ": "module, in", "Hide Search Matches": "Zoekresultaten verbergen"}});>>>>>>> other diff --git a/sphinx/locale/nl/LC_MESSAGES/sphinx.mo b/sphinx/locale/nl/LC_MESSAGES/sphinx.mo index 701d405b9..b9be8617d 100644 Binary files a/sphinx/locale/nl/LC_MESSAGES/sphinx.mo and b/sphinx/locale/nl/LC_MESSAGES/sphinx.mo differ diff --git a/sphinx/locale/nl/LC_MESSAGES/sphinx.po b/sphinx/locale/nl/LC_MESSAGES/sphinx.po index 4454ebb7d..a522d75d9 100644 --- a/sphinx/locale/nl/LC_MESSAGES/sphinx.po +++ b/sphinx/locale/nl/LC_MESSAGES/sphinx.po @@ -6,42 +6,49 @@ msgid "" msgstr "" "Project-Id-Version: Sphinx 0.5\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2008-09-11 23:58+0200\n" -"PO-Revision-Date: 2009-08-06 23:04+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2009-08-06 23:04+0200\n" +"PO-Revision-Date: 2009-11-03 15:55+0100\n" +"Last-Translator: Marijn van der Zee \n" "Language-Team: nl \n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" "Generated-By: Babel 0.9.4\n" -#: sphinx/environment.py:103 sphinx/writers/latex.py:184 +#: sphinx/environment.py:103 +#: sphinx/writers/latex.py:184 #, python-format msgid "%B %d, %Y" msgstr "%d. %B %Y" -#: sphinx/environment.py:324 sphinx/themes/basic/genindex-single.html:2 +#: sphinx/environment.py:324 +#: sphinx/themes/basic/genindex-single.html:2 #: sphinx/themes/basic/genindex-split.html:2 #: sphinx/themes/basic/genindex-split.html:5 -#: sphinx/themes/basic/genindex.html:2 sphinx/themes/basic/genindex.html:5 -#: sphinx/themes/basic/genindex.html:48 sphinx/themes/basic/layout.html:134 +#: sphinx/themes/basic/genindex.html:2 +#: sphinx/themes/basic/genindex.html:5 +#: sphinx/themes/basic/genindex.html:48 +#: sphinx/themes/basic/layout.html:134 #: sphinx/writers/latex.py:190 msgid "Index" msgstr "Index" -#: sphinx/environment.py:325 sphinx/writers/latex.py:189 +#: sphinx/environment.py:325 +#: sphinx/writers/latex.py:189 msgid "Module Index" msgstr "Module-index" -#: sphinx/environment.py:326 sphinx/themes/basic/defindex.html:16 +#: sphinx/environment.py:326 +#: sphinx/themes/basic/defindex.html:16 msgid "Search Page" msgstr "Zoekpagina" -#: sphinx/roles.py:55 sphinx/directives/desc.py:747 +#: sphinx/roles.py:55 +#: sphinx/directives/desc.py:747 #, python-format msgid "environment variable; %s" -msgstr "Omgevingsvariabele; %s" +msgstr "omgevingsvariabele; %s" #: sphinx/roles.py:62 #, python-format @@ -61,7 +68,8 @@ msgstr "Moduleniveau" msgid "%b %d, %Y" msgstr "%d.%b.%Y" -#: sphinx/builders/html.py:241 sphinx/themes/basic/defindex.html:21 +#: sphinx/builders/html.py:241 +#: sphinx/themes/basic/defindex.html:21 msgid "General Index" msgstr "Algemene index" @@ -69,9 +77,12 @@ msgstr "Algemene index" msgid "index" msgstr "Index" -#: sphinx/builders/html.py:243 sphinx/builders/htmlhelp.py:219 -#: sphinx/builders/qthelp.py:133 sphinx/themes/basic/defindex.html:19 -#: sphinx/themes/basic/modindex.html:2 sphinx/themes/basic/modindex.html:13 +#: sphinx/builders/html.py:243 +#: sphinx/builders/htmlhelp.py:219 +#: sphinx/builders/qthelp.py:133 +#: sphinx/themes/basic/defindex.html:19 +#: sphinx/themes/basic/modindex.html:2 +#: sphinx/themes/basic/modindex.html:13 msgid "Global Module Index" msgstr "Globale Module-index" @@ -108,9 +119,8 @@ msgid "Return type" msgstr "Return type" #: sphinx/directives/desc.py:186 -#, fuzzy msgid "Parameter" -msgstr "Parameters" +msgstr "Parameter" #: sphinx/directives/desc.py:190 msgid "Parameters" @@ -121,7 +131,8 @@ msgstr "Parameters" msgid "%s() (built-in function)" msgstr "%s() (geïntegreerde functie)" -#: sphinx/directives/desc.py:419 sphinx/directives/desc.py:476 +#: sphinx/directives/desc.py:419 +#: sphinx/directives/desc.py:476 #: sphinx/directives/desc.py:488 #, python-format msgid "%s() (in module %s)" @@ -132,15 +143,16 @@ msgstr "%s() (in module %s)" msgid "%s (built-in variable)" msgstr "%s (geïntegreerde variabele)" -#: sphinx/directives/desc.py:423 sphinx/directives/desc.py:514 +#: sphinx/directives/desc.py:423 +#: sphinx/directives/desc.py:514 #, python-format msgid "%s (in module %s)" msgstr "%s (in module %s)" #: sphinx/directives/desc.py:439 -#, fuzzy, python-format +#, python-format msgid "%s (built-in class)" -msgstr "%s (geïntegreerde variabele)" +msgstr "%s (geïntegreerde klasse)" #: sphinx/directives/desc.py:440 #, python-format @@ -203,9 +215,9 @@ msgid "%s (C variable)" msgstr "%s (C-variabele)" #: sphinx/directives/desc.py:665 -#, fuzzy, python-format +#, python-format msgid "%scommand line option; %s" -msgstr "%scommandolijn optie; %s" +msgstr "%sopdrachtregel optie; %s" #: sphinx/directives/other.py:140 msgid "Platforms: " @@ -244,16 +256,16 @@ msgstr "" #: sphinx/ext/todo.py:41 msgid "Todo" -msgstr "" +msgstr "Te doen" #: sphinx/ext/todo.py:99 #, python-format msgid "(The original entry is located in %s, line %d and can be found " -msgstr "" +msgstr "(Het originele item is te vinden in %s, regel %d en kan gevonden worden hier" #: sphinx/ext/todo.py:105 msgid "here" -msgstr "" +msgstr "hier" #: sphinx/locale/__init__.py:15 msgid "Attention" @@ -285,7 +297,7 @@ msgstr "Notitie" #: sphinx/locale/__init__.py:22 msgid "See Also" -msgstr "Zie Ook" +msgstr "Zie ook" #: sphinx/locale/__init__.py:23 msgid "Tip" @@ -348,7 +360,7 @@ msgstr "Indices en tabellen:" #: sphinx/themes/basic/defindex.html:14 msgid "Complete Table of Contents" -msgstr "Volledige inhoudstafel" +msgstr "Volledige inhoudsopgave" #: sphinx/themes/basic/defindex.html:15 msgid "lists all sections and subsections" @@ -392,7 +404,7 @@ msgstr "Navigatie" #: sphinx/themes/basic/layout.html:42 msgid "Table Of Contents" -msgstr "Inhoudstafel" +msgstr "Inhoudsopgave" #: sphinx/themes/basic/layout.html:48 msgid "Previous topic" @@ -412,7 +424,7 @@ msgstr "volgend hoofdstuk" #: sphinx/themes/basic/layout.html:60 msgid "This Page" -msgstr "Deze Pagina" +msgstr "Deze pagina" #: sphinx/themes/basic/layout.html:63 msgid "Show Source" @@ -424,12 +436,11 @@ msgstr "Snel zoeken" #: sphinx/themes/basic/layout.html:76 msgid "Go" -msgstr "Go" +msgstr "Ga" #: sphinx/themes/basic/layout.html:81 -#, fuzzy msgid "Enter search terms or a module, class or function name." -msgstr "Geef de naam van een module, klasse of functie." +msgstr "Geef zoekterm of de naam van een module, klasse of functie." #: sphinx/themes/basic/layout.html:122 #, python-format @@ -440,7 +451,8 @@ msgstr "Zoeken in %(docstitle)s" msgid "About these documents" msgstr "Over deze documenten" -#: sphinx/themes/basic/layout.html:137 sphinx/themes/basic/search.html:2 +#: sphinx/themes/basic/layout.html:137 +#: sphinx/themes/basic/search.html:2 #: sphinx/themes/basic/search.html:5 msgid "Search" msgstr "Zoeken" @@ -466,12 +478,8 @@ msgstr "Laatste aanpassing op %(last_updated)s." #: sphinx/themes/basic/layout.html:196 #, python-format -msgid "" -"Created using Sphinx " -"%(sphinx_version)s." -msgstr "" -"Aangemaakt met Sphinx " -"%(sphinx_version)s." +msgid "Created using Sphinx %(sphinx_version)s." +msgstr "Aangemaakt met Sphinx %(sphinx_version)s." #: sphinx/themes/basic/modindex.html:36 msgid "Deprecated" @@ -486,10 +494,9 @@ msgstr "Zoeken %(docstitle)s" msgid "" "Please activate JavaScript to enable the search\n" " functionality." -msgstr "" +msgstr "Activeer JavaSscript om de zoekfunctionaliteit in te schakelen." #: sphinx/themes/basic/search.html:14 -#, fuzzy msgid "" "From here you can search these documents. Enter your search\n" " words into the box below and click \"search\". Note that the search\n" @@ -497,10 +504,8 @@ msgid "" " containing fewer words won't appear in the result list." msgstr "" "Hier kan u de documenten doorzoeken. Geef enkele trefwoorden\n" -" in het veld hieronder en klik \"zoeken\". Merk op dat de zoekfunctie" -"\n" -" steeds naar alle woorden zoekt. Pagina's die minder woorden bevatten" -"\n" +" in het veld hieronder en klik \"zoeken\". Merk op dat de zoekfunctie\n" +" steeds naar alle woorden zoekt. Pagina's die minder woorden bevatten\n" " zullen niet tussen de resultaten verschijnen." #: sphinx/themes/basic/search.html:21 @@ -544,12 +549,14 @@ msgstr "Veranderingen in de C-API" msgid "Other changes" msgstr "Andere veranderingen" -#: sphinx/themes/basic/static/doctools.js:139 sphinx/writers/html.py:473 +#: sphinx/themes/basic/static/doctools.js:139 +#: sphinx/writers/html.py:473 #: sphinx/writers/html.py:478 msgid "Permalink to this headline" msgstr "Permanente link naar deze titel" -#: sphinx/themes/basic/static/doctools.js:145 sphinx/writers/html.py:80 +#: sphinx/themes/basic/static/doctools.js:145 +#: sphinx/writers/html.py:80 msgid "Permalink to this definition" msgstr "Permanente link naar deze definitie" @@ -563,24 +570,19 @@ msgstr "Zoeken" #: sphinx/themes/basic/static/searchtools.js:279 msgid "Preparing search..." -msgstr "Het zoeken wordt voorbereid" +msgstr "Het zoeken wordt voorbereid..." #: sphinx/themes/basic/static/searchtools.js:347 -#, fuzzy msgid "module, in " -msgstr "module" +msgstr "module, in" #: sphinx/themes/basic/static/searchtools.js:356 msgid ", in " -msgstr "" +msgstr ", in " #: sphinx/themes/basic/static/searchtools.js:464 -msgid "" -"Your search did not match any documents. Please make sure that all words " -"are spelled correctly and that you've selected enough categories." -msgstr "" -"Uw zoekopdracht leverde geen resultaten op. Controleer of alle " -"woordencorrect gespeld zijn en dat u genoeg categoriën hebt geselecteerd." +msgid "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." +msgstr "Uw zoekopdracht leverde geen resultaten op. Controleer of alle woorden correct gespeld zijn en dat u genoeg categoriën hebt geselecteerd." #: sphinx/themes/basic/static/searchtools.js:466 #, python-format @@ -593,16 +595,15 @@ msgstr "Release" #: sphinx/writers/latex.py:578 msgid "Footnotes" -msgstr "" +msgstr "Voetnoten" #: sphinx/writers/latex.py:646 msgid "continued from previous page" -msgstr "" +msgstr "Vervolgd van vorige pagina" #: sphinx/writers/latex.py:651 -#, fuzzy msgid "Continued on next page" -msgstr "Volledige index op een pagina" +msgstr "Vervolgd op volgende pagina" #: sphinx/writers/text.py:166 #, python-format diff --git a/sphinx/themes/basic/layout.html b/sphinx/themes/basic/layout.html index c030a6364..9004c9c5c 100644 --- a/sphinx/themes/basic/layout.html +++ b/sphinx/themes/basic/layout.html @@ -93,7 +93,7 @@ {{ metatags }} - {%- if not embedded %} + {%- if not embedded and docstitle %} {%- set titlesuffix = " — "|safe + docstitle|e %} {%- else %} {%- set titlesuffix = "" %} diff --git a/sphinx/util/__init__.py b/sphinx/util/__init__.py index 2d86c5f73..46408d48a 100644 --- a/sphinx/util/__init__.py +++ b/sphinx/util/__init__.py @@ -14,6 +14,7 @@ import re import sys import stat import time +import errno import types import shutil import fnmatch @@ -68,7 +69,8 @@ def ensuredir(path): try: os.makedirs(path) except OSError, err: - if not err.errno == 17: + # 0 for Jython/Win32 + if err.errno not in [0, getattr(errno, 'EEXIST', 0)]: raise @@ -415,7 +417,7 @@ def copyfile(source, dest): try: # don't do full copystat because the source may be read-only copytimes(source, dest) - except shutil.Error: + except OSError: pass