Commits

Jon Waltman committed caf1fd3 Merge

Comments (0)

Files changed (127)

 d2c100cde633828d8656a5cdefbdbc167e2768a1 1.0.4
 878a1874a8e63f1b5a6b939ed86b6c120bf168c6 1.0.5
 48688502e78b09c03b877910b64368c5db9bb4ff 1.0.6
+f7f069b6d1e5cc2d4394420be9a4a3efc0cb4d47 1.0.7
 Release 1.1 (in development)
 ============================
 
+Incompatible changes
+--------------------
+
+* The :rst:dir:`py:module` directive doesn't output its ``platform`` option
+  value anymore.  (It was the only thing that the directive did output, and
+  therefore quite inconsistent.)
+
+Features added
+--------------
+
 * Added Python 3.x support.
 
-* Added a Texinfo builder.
+* New builders and subsystems:
 
-* Incompatibility: The :rst:dir:`py:module` directive doesn't output
-  its ``platform`` option value anymore.  (It was the only thing that
-  the directive did output, and therefore quite inconsistent.)
+  - Added a Texinfo builder.
+  - Added i18n support for content, a ``gettext`` builder and related
+    utilities.
+  - Added the ``websupport`` library and builder.
+  - #98: Added a ``sphinx-apidoc`` script that autogenerates a hierarchy
+    of source files containing autodoc directives to document modules
+    and packages.
+  - #273: Add an API for adding full-text search support for languages
+    other than English.  Add support for Japanese.
 
-* Added i18n support for content, a ``gettext`` builder and
-  related utilities.
+* Markup:
 
-* Added the ``websupport`` library.
+  - #138: Add an :rst:role:`index` role, to make inline index entries.
+  - #454: Add more index markup capabilities: marking see/seealso entries,
+    and main entries for a given key.
+  - #460: Allow limiting the depth of section numbers for HTML using the
+    :rst:dir:`toctree`\'s ``numbered`` option.
+  - #586: Implemented improved :rst:dir:`glossary` markup which allows
+    multiple terms per definition.
+  - #478: Added :rst:dir:`py:decorator` directive to describe decorators.
+  - C++ domain now supports array definitions.
+  - Section headings in :rst:dir:`only` directives are now correctly
+    handled.
 
-* #460: Allow limiting the depth of section numbers for HTML.
+* HTML builder:
 
-* #564: Add :confval:`autodoc_docstring_signature` which retrieves
-  the signature from the first line of the docstring, if it is
-  found there.
+  - Added ``pyramid`` theme.
+  - #559: :confval:`html_add_permalinks` is now a string giving the
+    text to display in permalinks.
+  - #259: HTML table rows now have even/odd CSS classes to enable
+    "Zebra styling".
+  - #554: Add theme option ``sidebarwidth`` to the basic theme.
 
-* #176: Provide ``private-members`` option for autodoc directives.
+* Other builders:
 
-* #520: Provide ``special-members`` option for autodoc directives.
+  - #516: Added new value of the :confval:`latex_show_urls` option to
+    show the URLs in footnotes.
+  - #209: Added :confval:`text_newlines` and :confval:`text_sectionchars`
+    config values.
+  - Added :confval:`man_show_urls` config value.
+  - #472: linkcheck builder: Check links in parallel, use HTTP HEAD
+    requests and allow configuring the timeout.  New config values:
+    :confval:`linkcheck_timeout` and :confval:`linkcheck_workers`.
+  - #521: Added :confval:`linkcheck_ignore` config value.
 
-* #138: Add an ``index`` role, to make inline index entries.
+* Configuration and extensibility:
 
-* #443: Allow referencing external graphviz files.
+  - #537: Added :confval:`nitpick_ignore`.
+  - #306: Added :event:`env-get-outdated` event.
 
-* Added the :mod:`sphinx.ext.mathjax` extension.
+* Autodoc:
 
-* Added ``pyramid`` theme.
+  - #564: Add :confval:`autodoc_docstring_signature`.  When enabled (the
+    default), autodoc retrieves the signature from the first line of the
+    docstring, if it is found there.
+  - #176: Provide ``private-members`` option for autodoc directives.
+  - #520: Provide ``special-members`` option for autodoc directives.
+  - #431: Doc comments for attributes can now be given on the same line
+    as the assignment.
+  - #437: autodoc now shows values of class data attributes.
+  - autodoc now supports documenting the signatures of
+    ``functools.partial`` objects.
 
-* #98: Added a ``sphinx-apidoc`` script that autogenerates a
-  hierarchy of source files containing autodoc directives to
-  document modules and packages.
+* Other extensions:
 
-* #472: linkcheck builder: Check links in parallel, use HTTP HEAD
-  requests and allow configuring the timeout.  New config values:
-  :confval:`linkcheck_timeout` and :confval:`linkcheck_workers`.
+  - Added the :mod:`sphinx.ext.mathjax` extension.
+  - #443: Allow referencing external graphviz files.
+  - Added ``inline`` option to graphviz directives, and fixed the
+    default (block-style) in LaTeX output.
+  - #590: Added ``caption`` option to graphviz directives.
+  - #553: Added :rst:dir:`testcleanup` blocks in the doctest extension.
+  - #594: :confval:`trim_doctest_flags` now also removes ``<BLANKLINE>``
+    indicators.
+  - #367: Added automatic exclusion of hidden members in inheritance
+    diagrams, and an option to selectively enable it.
+  - Added :confval:`pngmath_add_tooltips`.
 
-* #273: Add an API for adding full-text search support for languages
-  other than English.  Add support for Japanese.
+* New locales:
 
-* #221: Add Swedish locale.
+  - #221: Added Swedish locale.
+  - #526: Added Iranian locale.
 
-* Added ``inline`` option to graphviz directives, and fixed the
-  default (block-style) in LaTeX output.
 
-* #521: Added :confval:`linkcheck_ignore` config value.
+Release 1.0.8 (in development)
+==============================
 
-* #454: Add more index markup capabilities: marking see/seealso entries,
-  and main entries for a given key.
 
-* #516: Added new value of the :confval:`latex_show_urls` option to
-  show the URLs in footnotes.
+Release 1.0.7 (Jan 15, 2011)
+============================
 
-* #526: Added Iranian translation.
+* #347: Fix wrong generation of directives of static methods in
+  autosummary.
 
-* #586: Implemented improved glossary markup which allows multiple terms per
-  definition.
+* #599: Import PIL as ``from PIL import Image``.
 
-* #559: :confval:`html_add_permalinks` is now a string giving the
-  text to display in permalinks.
+* #558: Fix longtables with captions in LaTeX output.
 
-* #553: Added :rst:dir:`testcleanup` blocks in the doctest extension.
-
-* #209: Added :confval:`text_newlines` and :confval:`text_sectionchars`
-  config values.
-
-* Added :confval:`man_show_urls` config value.
-
-* #259: HTML table rows now have even/odd CSS classes to enable
-  "Zebra styling".
-
-* #478: Added :rst:dir:`py:decorator` directive to describe decorators.
-
-* #367: Added automatic exclusion of hidden members in inheritance
-  diagrams, and an option to selectively enable it.
-
-* #306: Added :event:`env-get-outdated` event.
-
-* #590: Added ``caption`` option to graphviz directives.
-
-* #537: Added :confval:`nitpick_ignore`.
-
-* autodoc now supports documenting the signatures of ``functools.partial``
-  objects.
-
-* Added :confval:`pngmath_add_tooltips`.
-
-* Section headings in :rst:dir:`only` directives are now correctly
-  handled.
-
-* C++ domain now supports array definitions.
-
-
-Release 1.0.7 (in development)
-==============================
+* Make token references work as hyperlinks again in LaTeX output.
 
 * #572: Show warnings by default when reference labels cannot be
   found.
 
 * Fix tracebacks occurring for duplicate C++ domain objects.
 
+* Fix JavaScript domain links to objects with ``$`` in their name.
+
 
 Release 1.0.6 (Jan 04, 2011)
 ============================
 * APSW: http://apidoc.apsw.googlecode.com/hg/index.html
 * ASE: https://wiki.fysik.dtu.dk/ase/
 * boostmpi: http://documen.tician.de/boostmpi/
-* Calibre: http://calibre.kovidgoyal.net/user_manual/
+* Calibre: http://calibre-ebook.com/user_manual/
 * CodePy: http://documen.tician.de/codepy/
 * Cython: http://docs.cython.org/
 * C\\C++ Python language binding project: http://language-binding.net/index.html
 * Google Wave API: http://wave-robot-python-client.googlecode.com/svn/trunk/pydocs/index.html
 * GSL Shell: http://www.nongnu.org/gsl-shell/
 * Heapkeeper: http://heapkeeper.org/
+* Hands-on Python Tutorial: http://anh.cs.luc.edu/python/hands-on/3.1/handsonHtml/
 * Hedge: http://documen.tician.de/hedge/
 * Kaa: http://doc.freevo.org/api/kaa/
 * Leo: http://webpages.charter.net/edreamleo/front.html
-* Lino: http://lino.saffre-rumma.ee/
+* Lino: http://lino.saffre-rumma.net/
 * MeshPy: http://documen.tician.de/meshpy/
 * mpmath: http://mpmath.googlecode.com/svn/trunk/doc/build/index.html
 * OpenEXR: http://excamera.com/articles/26/doc/index.html
 * OpenGDA: http://www.opengda.org/gdadoc/html/
 * openWNS: http://docs.openwns.org/
 * Paste: http://pythonpaste.org/script/
-* Paver: http://www.blueskyonmars.com/projects/paver/
-* Pyccuracy: http://www.pyccuracy.org/
+* Paver: http://paver.github.com/paver/
+* Pyccuracy: https://github.com/heynemann/pyccuracy/wiki/
 * PyCuda: http://documen.tician.de/pycuda/
 * Pyevolve: http://pyevolve.sourceforge.net/
 * Pylo: http://documen.tician.de/pylo/
 * IFM: http://fluffybunny.memebot.com/ifm-docs/index.html
 * LEPL: http://www.acooke.org/lepl/
 * Mayavi: http://code.enthought.com/projects/mayavi/docs/development/html/mayavi
-* NOC: http://trac.nocproject.org/trac/wiki/NocGuide
+* NOC: http://redmine.nocproject.org/projects/noc
 * NumPy: http://docs.scipy.org/doc/numpy/reference/
 * Peach^3: http://peach3.nl/doc/latest/userdoc/
 * PyLit: http://pylit.berlios.de/
 * simuPOP: http://simupop.sourceforge.net/manual_release/build/userGuide.html
 * Sprox: http://sprox.org/
 * TurboGears: http://turbogears.org/2.0/docs/
+* Zentyal: http://doc.zentyal.org/
 * Zope: http://docs.zope.org/zope2/index.html
 * zc.async: http://packages.python.org/zc.async/1.5.0/
 
 Documentation using the sphinxdoc theme
 ---------------------------------------
 
-* Fityk: http://www.unipress.waw.pl/fityk/
+* Fityk: http://fityk.nieto.pl/
 * MapServer: http://mapserver.org/
 * Matplotlib: http://matplotlib.sourceforge.net/
 * Music21: http://mit.edu/music21/doc/html/contents.html
 * Pysparse: http://pysparse.sourceforge.net/
 * PyTango:
   http://www.tango-controls.org/static/PyTango/latest/doc/html/index.html
-* Reteisi: http://docs.argolinux.org/reteisi/
-* Satchmo: http://www.satchmoproject.com/docs/svn/
+* Reteisi: http://www.reteisi.org/contents.html
+* Satchmo: http://www.satchmoproject.com/docs/dev/
 * Sphinx: http://sphinx.pocoo.org/
 * Sqlkit: http://sqlkit.argolinux.org/
 * Tau: http://www.tango-controls.org/static/tau/latest/doc/html/index.html
 Documentation using another builtin theme
 -----------------------------------------
 
-* C/C++ Development with Eclipse: http://book.dehlia.in/c-cpp-eclipse/ (agogo)
+* C/C++ Development with Eclipse: http://eclipsebook.in/ (agogo)
 * Distribute: http://packages.python.org/distribute/ (nature)
 * Jinja: http://jinja.pocoo.org/ (scrolls)
 * pip: http://pip.openplans.org/ (nature)
 * Open ERP: http://doc.openerp.com/
 * OpenLayers: http://docs.openlayers.org/
 * PyEphem: http://rhodesmill.org/pyephem/
+* German Plone 4.0 user manual: http://www.hasecke.com/plone-benutzerhandbuch/4.0/
 * Pylons: http://pylonshq.com/docs/en/0.9.7/
 * PyMOTW: http://www.doughellmann.com/PyMOTW/
 * qooxdoo: http://manual.qooxdoo.org/current
 * Roundup: http://www.roundup-tracker.org/
 * Selenium: http://seleniumhq.org/docs/
 * Self: http://selflanguage.org/
+* Tablib: http://tablib.org/
 * SQLAlchemy: http://www.sqlalchemy.org/docs/
 * tinyTiM: http://tinytim.sourceforge.net/docs/2.0/
 * tipfy: http://www.tipfy.org/docs/
-* Werkzeug: http://werkzeug.pocoo.org/documentation/dev/
+* Werkzeug: http://werkzeug.pocoo.org/docs/
 * WFront: http://discorporate.us/projects/WFront/
 
 
 
 * Applied Mathematics at the Stellenbosch University: http://dip.sun.ac.za/
 * A personal page: http://www.dehlia.in/
-* Benoit Boissinot: http://perso.ens-lyon.fr/benoit.boissinot/
+* Benoit Boissinot: http://bboissin.appspot.com/
 * lunarsite: http://lunaryorn.de/
 * The Wine Cellar Book: http://www.thewinecellarbook.com/doc/en/
 * VOR: http://www.vor-cycling.be/
 Books produced using Sphinx
 ---------------------------
 
-* The ``repoze.bfg`` Web Application Framework: 
+* "The ``repoze.bfg`` Web Application Framework":
   http://www.amazon.com/repoze-bfg-Web-Application-Framework-Version/dp/0615345379
 * A Theoretical Physics Reference book: http://theoretical-physics.net/
+* "Simple and Steady Way of Learning for Software Engineering" (in Japanese):
+  http://www.amazon.co.jp/dp/477414259X/
+* "Expert Python Programming" (Japanese translation):
+  http://www.amazon.co.jp/dp/4048686291/
+* "Pomodoro Technique Illustrated" (Japanese translation):
+  http://www.amazon.co.jp/dp/4048689525/
+
              -i sphinx/pycode/pgen2 -i sphinx/util/smartypants.py \
              -i .ropeproject -i doc/_build -i tests/path.py \
              -i tests/coverage.py -i env -i utils/convert.py \
+	     -i sphinx/search/ja.py \
              -i utils/reindent3.py -i utils/check_sources3.py -i .tox
 
 all: clean-pyc clean-backupfiles check test
 .. module:: sphinx.builders.gettext
 .. class:: MessageCatalogBuilder
 
-   This builder produces gettext-style message catalos.  Each top-level file or
+   This builder produces gettext-style message catalogs.  Each top-level file or
    subdirectory grows a single ``.pot`` catalog template.
 
    See the documentation on :ref:`intl` for further reference.
 .. confval:: trim_doctest_flags
 
    If true, doctest flags (comments looking like ``# doctest: FLAG, ...``) at
-   the ends of lines are removed for all code blocks showing interactive Python
-   sessions (i.e. doctests).  Default is true.  See the extension
-   :mod:`~sphinx.ext.doctest` for more possibilities of including doctests.
+   the ends of lines and ``<BLANKLINE>`` markers are removed for all code
+   blocks showing interactive Python sessions (i.e. doctests).  Default is
+   true.  See the extension :mod:`~sphinx.ext.doctest` for more possibilities
+   of including doctests.
 
    .. versionadded:: 1.0
+   .. versionchanged:: 1.1
+      Now also removes ``<BLANKLINE>``.
 
 
 .. _intl-options:
    * ``fr`` -- French
    * ``hr`` -- Croatian
    * ``it`` -- Italian
+   * ``ja`` -- Japanese
    * ``lt`` -- Lithuanian
    * ``nl`` -- Dutch
    * ``pl`` -- Polish
 These options influence HTML as well as HTML Help output, and other builders
 that use Sphinx' HTMLWriter class.
 
-.. XXX document html_context
-
 .. confval:: html_theme
 
    The "theme" that the HTML output should use.  See the :doc:`section about
 
    .. versionadded:: 0.4
 
+.. confval:: html_context
+
+   A dictionary of values to pass into the template engine's context for all
+   pages.  Single values can also be put in this dictionary using the
+   :option:`-A` command-line option of ``sphinx-build``.
+
+   .. versionadded:: 0.5
+
 .. confval:: html_logo
 
    If given, this must be the name of an image file that is the logo of the
 currently a Ruby and an Erlang domain.
 
 
-.. _sphinx-contrib: http://bitbucket.org/birkenfeld/sphinx-contrib/
+.. _sphinx-contrib: https://bitbucket.org/birkenfeld/sphinx-contrib/

doc/ext/autodoc.rst

      .. versionadded:: 1.1
 
    * For classes and exceptions, members inherited from base classes will be
-     left out, unless you give the ``inherited-members`` flag option, in
-     addition to ``members``::
+     left out when documenting all members, unless you give the
+     ``inherited-members`` flag option, in addition to ``members``::
 
         .. autoclass:: Noodle
            :members:
    used for automatic member documentation.
 
    For module data members and class attributes, documentation can either be put
-   into a special-formatted comment *before* the attribute definition, or in a
-   docstring *after* the definition.  This means that in the following class
-   definition, all attributes can be autodocumented::
+   into a special-formatted comment, or in a docstring *after* the definition.
+   Comments need to be either on a line of their own *before* the definition, or
+   immediately after the assignment *on the same line*.  The latter form is
+   restricted to one line only.
+
+   This means that in the following class definition, all attributes can be
+   autodocumented::
 
       class Foo:
           """Docstring for class Foo."""
 
           #: Doc comment for class attribute Foo.bar.
+          #: It can have multiple lines.
           bar = 1
 
+          flox = 1.5   #: Doc comment for Foo.flox. One line only.
+
           baz = 2
           """Docstring for class attribute Foo.baz."""
 
 
    .. versionchanged:: 0.6
       :rst:dir:`autodata` and :rst:dir:`autoattribute` can now extract docstrings.
+   .. versionchanged:: 1.1
+      Comment docs are now allowed on the same line after an assignment.
 
    .. note::
 

doc/ext/doctest.rst

    will be interpreted as one block ending and another one starting.  Also,
    removal of ``<BLANKLINE>`` and ``# doctest:`` options only works in
    :rst:dir:`doctest` blocks, though you may set :confval:`trim_doctest_flags` to
-   achieve the latter in all code blocks with Python console content.
+   achieve that in all code blocks with Python console content.

doc/ext/extlinks.rst

    short alias names to a base URL and a *prefix*.  For example, to create an
    alias for the above mentioned issues, you would add ::
 
-      extlinks = {'issue': ('http://bitbucket.org/birkenfeld/sphinx/issue/%s',
+      extlinks = {'issue': ('https://bitbucket.org/birkenfeld/sphinx/issue/%s',
                             'issue ')}
 
    Now, you can use the alias name as a new role, e.g. ``:issue:`123```.  This
-   then inserts a link to http://bitbucket.org/birkenfeld/sphinx/issue/123.
+   then inserts a link to https://bitbucket.org/birkenfeld/sphinx/issue/123.
    As you can see, the target given in the role is substituted in the base URL
    in the place of ``%s``.
 
 .. _MathJax: http://www.mathjax.org/
 .. _jsMath: http://www.math.union.edu/~dpvc/jsmath/
 .. _preview-latex package: http://www.gnu.org/software/auctex/preview-latex.html
-.. _AmSMath LaTeX package: http://www.ams.org/tex/amslatex.html
+.. _AmSMath LaTeX package: http://www.ams.org/publications/authors/tex/amslatex

doc/extensions.rst

 should be included as a part of Sphinx, please write to the project mailing
 list (`join here <http://groups.google.com/group/sphinx-dev>`_).
 
-.. _Wiki at BitBucket: http://www.bitbucket.org/birkenfeld/sphinx/wiki/Home
-.. _Sphinx Contrib: http://www.bitbucket.org/birkenfeld/sphinx-contrib
+.. _Wiki at BitBucket: https://www.bitbucket.org/birkenfeld/sphinx/wiki/Home
+.. _Sphinx Contrib: https://www.bitbucket.org/birkenfeld/sphinx-contrib
 
 
 Where to put your own extensions?
 
 SCons
    Glenn Hutchings has written a SCons build script to build Sphinx
-   documentation; it is hosted here: http://bitbucket.org/zondo/sphinx-scons
+   documentation; it is hosted here: https://bitbucket.org/zondo/sphinx-scons
 
 PyPI
    Jannis Leidel wrote a `setuptools command
    Sphinx HTML output properly.
 
 MediaWiki
-   See http://bitbucket.org/kevindunn/sphinx-wiki, a project by Kevin Dunn.
+   See https://bitbucket.org/kevindunn/sphinx-wiki, a project by Kevin Dunn.
 
 Google Analytics
    You can use a custom ``layout.html`` template, like this:
 
 * Gerard Flanagan has written a script to convert pure HTML to reST; it can be
   found at `BitBucket
-  <http://bitbucket.org/djerdo/musette/src/tip/musette/html/html2rest.py>`_.
+  <https://bitbucket.org/djerdo/musette/src/tip/musette/html/html2rest.py>`_.
 
 * For converting the old Python docs to Sphinx, a converter was written which
   can be found at `the Python SVN repository
 
 .. _reStructuredText: http://docutils.sf.net/rst.html
 .. _docutils: http://docutils.sf.net/
-.. _Jinja2: http://jinja.pocoo.org/2/
+.. _Jinja2: http://jinja.pocoo.org/
 .. _Pygments: http://pygments.org/
 .. The given homepage is only a directory listing so I'm using the pypi site.
 .. _uuid: http://pypi.python.org/pypi/uuid/
 
 * **basic** -- This is a basically unstyled layout used as the base for the
   other themes, and usable as the base for custom themes as well.  The HTML
-  contains all important elements like sidebar and relation bar.  There is one
-  option (which is inherited by the other themes):
+  contains all important elements like sidebar and relation bar.  There are
+  these options (which are inherited by the other themes):
 
   - **nosidebar** (true or false): Don't include the sidebar.  Defaults to
     false.
 
+  - **sidebarwidth** (an integer): Width of the sidebar in pixels.  (Do not
+    include ``px`` in the value.)  Defaults to 230 pixels.
+
 * **default** -- This is the default theme, which looks like `the Python
   documentation <http://docs.python.org/>`_.  It can be customized via these
   options:
   - **headfont** (CSS font-family): Font for headings.
 
 * **sphinxdoc** -- The theme used for this documentation.  It features a sidebar
-  on the right side.  There are currently no options beyond *nosidebar*.
+  on the right side.  There are currently no options beyond *nosidebar* and
+  *sidebarwidth*.
 
 * **scrolls** -- A more lightweight theme, based on `the Jinja documentation
   <http://jinja.pocoo.org/>`_.  The following color options are available:
     is ``justify``.
 
 * **nature** -- A greenish theme.  There are currently no options beyond
-  *nosidebar*.
+  *nosidebar* and *sidebarwidth*.
 
 * **pyramid** -- A theme from the Pyramid web framework project, designed by
-  Blaise Laflamme.  THere are currently no options beyond *nosidebar*.
+  Blaise Laflamme.  There are currently no options beyond *nosidebar* and
+  *sidebarwidth*.
 
 * **haiku** -- A theme without sidebar inspired by the `Haiku OS user guide
   <http://www.haiku-os.org/docs/userguide/en/contents.html>`_.  The following
     **hoverlinkcolor** (CSS colors): Colors for various body elements.
 
 * **traditional** -- A theme resembling the old Python documentation.  There are
-  currently no options beyond *nosidebar*.
+  currently no options beyond *nosidebar* and *sidebarwidth*.
 
 * **epub** -- A theme for the epub builder.  There are currently no options.
   This theme tries to save visual space which is a sparse resource on ebook

doc/web/quickstart.rst

 
 This dict can then be used as context for templates.  The goal is to be easy to
 integrate with your existing templating system.  An example using `Jinja2
-<http://jinja.pocoo.org/2/>`_ is:
+<http://jinja.pocoo.org/>`_ is:
 
 .. sourcecode:: html+jinja
 
         username = g.user.name if g.user else None
         moderator = g.user.moderator if g.user else False
         node_id = request.args.get('node', '')
-        data = support.get_data(parent_id, user_id)
+        data = support.get_data(node_id, username, moderator)
         return jsonify(**data)
 
 The final function that is needed will call :meth:`~.WebSupport.process_vote`,

File contents unchanged.

                                  master_package)
         text += '\n'
 
-    # build a list of directories that are packages (they contain an INITPY file)
+    # build a list of directories that are packages (contain an INITPY file)
     subs = [sub for sub in subs if path.isfile(path.join(root, sub, INITPY))]
     # if there are some package directories, add a TOC for theses subpackages
     if subs:
             return True
     return False
 
-def main(argv):
+def main(argv=sys.argv):
     """
     Parse and check the command line arguments.
     """

sphinx/builders/epub.py

         name = name.replace('<', '&lt;')
         name = name.replace('>', '&gt;')
         name = name.replace('"', '&quot;')
-        name = name.replace('\'', '&apos;')
+        name = name.replace('\'', '&#39;')
         return name
 
     def get_refnodes(self, doctree, result):
             spine.append(_spine_template % {
                 'idref': self.esc(self.make_id(item['refuri']))
             })
+        for info in self.domain_indices:
+            spine.append(_spine_template % {
+                'idref': self.esc(self.make_id(info[0] + self.out_suffix))
+            })
+        if self.config.html_use_index:
+            spine.append(_spine_template % {
+                'idref': self.esc(self.make_id('genindex' + self.out_suffix))
+            })
 
         # add the optional cover
         content_tmpl = _content_template

sphinx/builders/latex.py

         return 'all documents' # for now
 
     def get_target_uri(self, docname, typ=None):
-        if typ == 'token':
-            # token references are always inside production lists and must be
-            # replaced by \token{} in LaTeX
-            return '@token'
         if docname not in self.docnames:
             raise NoUri
         else:

sphinx/directives/__init__.py

 
 # RE to strip backslash escapes
 nl_escape_re = re.compile(r'\\\n')
-strip_backslash_re = re.compile(r'\\(?=[^\\])')
+strip_backslash_re = re.compile(r'\\(.)')
 
 
 class ObjectDescription(Directive):
         """
         lines = nl_escape_re.sub('', self.arguments[0]).split('\n')
         # remove backslashes to support (dummy) escapes; helps Vim highlighting
-        return [strip_backslash_re.sub('', line.strip()) for line in lines]
+        return [strip_backslash_re.sub(r'\1', line.strip()) for line in lines]
 
     def handle_signature(self, sig, signode):
         """

sphinx/domains/javascript.py

         indextext = self.get_index_text(objectname, name_obj)
         if indextext:
             self.indexnode['entries'].append(('single', indextext,
-                                              fullname, ''))
+                                              fullname.replace('$', '_S_'),
+                                              ''))
 
     def get_index_text(self, objectname, name_obj):
         name, obj = name_obj
         name, obj = self.find_obj(env, objectname, target, typ, searchorder)
         if not obj:
             return None
-        return make_refnode(builder, fromdocname, obj[0], name, contnode, name)
+        return make_refnode(builder, fromdocname, obj[0],
+                            name.replace('$', '_S_'), contnode, name)
 
     def get_objects(self):
         for refname, (docname, type) in self.data['objects'].iteritems():
-            yield refname, refname, type, docname, refname, 1
+            yield refname, refname, type, docname, \
+                  refname.replace('$', '_S_'), 1

sphinx/domains/python.py

     option_spec = {
         'noindex': directives.flag,
         'module': directives.unchanged,
+        'annotation': directives.unchanged,
     }
 
     doc_field_types = [
                 nodetext = modname + '.'
                 signode += addnodes.desc_addname(nodetext, nodetext)
 
+        anno = self.options.get('annotation')
+
         signode += addnodes.desc_name(name, name)
         if not arglist:
             if self.needs_arglist():
                 signode += addnodes.desc_parameterlist()
             if retann:
                 signode += addnodes.desc_returns(retann, retann)
+            if anno:
+                signode += addnodes.desc_annotation(' ' + anno, ' ' + anno)
             return fullname, name_prefix
+
         _pseudo_parse_arglist(signode, arglist)
         if retann:
             signode += addnodes.desc_returns(retann, retann)
+        if anno:
+            signode += addnodes.desc_annotation(' ' + anno, ' ' + anno)
         return fullname, name_prefix
 
     def get_index_text(self, modname, name):

sphinx/domains/std.py

         in_definition = True
         was_empty = True
         messages = []
-        for (source, lineno, line) in self.content.xitems():
+        for line, (source, lineno) in zip(self.content, self.content.items):
             # empty line -> add to last definition
             if not line:
                 if in_definition and entries:

sphinx/environment.py

         settings, source = self.document.settings, self.document['source']
         # XXX check if this is reliable
         assert source.startswith(env.srcdir)
-        docname = posixpath.splitext(source[len(env.srcdir):].lstrip('/'))[0]
-        section = docname.split(SEP, 1)[0]
+        docname = os.path.splitext(source[len(env.srcdir):].lstrip(os.sep))[0]
+        section = docname.split(os.sep, 1)[0]
 
         # fetch translations
         dirs = [path.join(env.srcdir, x)

sphinx/ext/autodoc.py

 from sphinx.util.nodes import nested_parse_with_titles
 from sphinx.util.compat import Directive
 from sphinx.util.inspect import getargspec, isdescriptor, safe_getmembers, \
-     safe_getattr
+     safe_getattr, safe_repr
 from sphinx.util.pycompat import base_exception, class_types
 from sphinx.util.docstrings import prepare_docstring
 
         if isinstance(docstring, unicode):
             return [prepare_docstring(docstring, ignore)]
         elif docstring:
-            return [prepare_docstring(force_decode(docstring, encoding), ignore)]
+            return [prepare_docstring(force_decode(docstring, encoding),
+                                      ignore)]
         return []
 
     def process_doc(self, docstrings):
                 skip = False
                 isattr = True
             else:
-                # ignore undocumented members if :undoc-members:
-                # is not given
+                # ignore undocumented members if :undoc-members: is not given
                 doc = self.get_attr(member, '__doc__', None)
+                # if the member __doc__ is the same as self's __doc__, it's just
+                # inherited and therefore not the member's doc
+                cls = self.get_attr(member, '__class__', None)
+                if cls:
+                    cls_doc = self.get_attr(cls, '__doc__', None)
+                    if cls_doc == doc:
+                        doc = None
                 skip = not self.options.undoc_members and not doc
 
             # give the user a chance to decide whether this member
     """
     objtype = 'data'
     member_order = 40
+    priority = -10
 
     @classmethod
     def can_document_member(cls, member, membername, isattr, parent):
         return isinstance(parent, ModuleDocumenter) and isattr
 
+    def add_directive_header(self, sig):
+        ModuleLevelDocumenter.add_directive_header(self, sig)
+        try:
+            objrepr = safe_repr(self.object)
+        except ValueError:
+            pass
+        else:
+            self.add_line(u'   :annotation: = ' + objrepr, '<autodoc>')
+
     def document_members(self, all_members=False):
         pass
 
     def can_document_member(cls, member, membername, isattr, parent):
         isdatadesc = isdescriptor(member) and not \
                      isinstance(member, cls.method_types)
-        return isdatadesc or \
-               (isattr and not isinstance(parent, ModuleDocumenter))
+        return isdatadesc or (not isinstance(parent, ModuleDocumenter)
+                              and not inspect.isroutine(member)
+                              and not isinstance(member, class_types))
 
     def document_members(self, all_members=False):
         pass
 
+    def import_object(self):
+        ret = ClassLevelDocumenter.import_object(self)
+        if isdescriptor(self.object) and \
+               not isinstance(self.object, self.method_types):
+            self._datadescriptor = True
+        else:
+            # if it's not a data descriptor
+            self._datadescriptor = False
+        return ret
+
     def get_real_modname(self):
         return self.get_attr(self.parent or self.object, '__module__', None) \
                or self.modname
 
+    def add_directive_header(self, sig):
+        ClassLevelDocumenter.add_directive_header(self, sig)
+        if not self._datadescriptor:
+            try:
+                objrepr = safe_repr(self.object)
+            except ValueError:
+                pass
+            else:
+                self.add_line(u'   :annotation: = ' + objrepr, '<autodoc>')
+
+    def add_content(self, more_content, no_docstring=False):
+        if not self._datadescriptor:
+            # if it's not a data descriptor, its docstring is very probably the
+            # wrong thing to display
+            no_docstring = True
+        ClassLevelDocumenter.add_content(self, more_content, no_docstring)
+
 
 class InstanceAttributeDocumenter(AttributeDocumenter):
     """
         """Never import anything."""
         # disguise as an attribute
         self.objtype = 'attribute'
+        self._datadescriptor = False
         return True
 
     def add_content(self, more_content, no_docstring=False):

sphinx/ext/autosummary/__init__.py

         return False
     isgetsetdescriptor = ismemberdescriptor
 
-def get_documenter(obj):
+def get_documenter(obj, parent):
     """Get an autodoc.Documenter class suitable for documenting the given
     object.
     """
-    import sphinx.ext.autodoc as autodoc
+    from sphinx.ext.autodoc import AutoDirective, DataDocumenter
 
-    if inspect.isclass(obj):
-        if issubclass(obj, Exception):
-            return autodoc.ExceptionDocumenter
-        return autodoc.ClassDocumenter
-    elif inspect.ismodule(obj):
-        return autodoc.ModuleDocumenter
-    elif inspect.ismethod(obj) or inspect.ismethoddescriptor(obj):
-        return autodoc.MethodDocumenter
-    elif (ismemberdescriptor(obj) or isgetsetdescriptor(obj)
-          or inspect.isdatadescriptor(obj)):
-        return autodoc.AttributeDocumenter
-    elif inspect.isroutine(obj):
-        return autodoc.FunctionDocumenter
+    classes = [cls for cls in AutoDirective._registry.values()
+               if cls.can_document_member(obj, '', False, parent)]
+    if classes:
+        classes.sort(key=lambda cls: cls.priority)
+        return classes[-1]
     else:
-        return autodoc.DataDocumenter
+        return DataDocumenter
 
 
 # -- .. autosummary:: ----------------------------------------------------------
                 display_name = name.split('.')[-1]
 
             try:
-                obj, real_name = import_by_name(name, prefixes=prefixes)
+                real_name, obj, parent = import_by_name(name, prefixes=prefixes)
             except ImportError:
                 self.warn('failed to import %s' % name)
                 items.append((name, '', '', name))
 
             # NB. using real_name here is important, since Documenters
             #     handle module prefixes slightly differently
-            documenter = get_documenter(obj)(self, real_name)
+            documenter = get_documenter(obj, parent)(self, real_name)
             if not documenter.parse_name():
                 self.warn('failed to parse name %s' % real_name)
                 items.append((display_name, '', '', real_name))
                 prefixed_name = '.'.join([prefix, name])
             else:
                 prefixed_name = name
-            return _import_by_name(prefixed_name), prefixed_name
+            obj, parent = _import_by_name(prefixed_name)
+            return prefixed_name, obj, parent
         except ImportError:
             tried.append(prefixed_name)
     raise ImportError('no module named %s' % ' or '.join(tried))
         if modname:
             try:
                 __import__(modname)
-                return getattr(sys.modules[modname], name_parts[-1])
+                mod = sys.modules[modname]
+                return getattr(mod, name_parts[-1]), mod
             except (ImportError, IndexError, AttributeError):
                 pass
 
                 break
 
         if last_j < len(name_parts):
+            parent = None
             obj = sys.modules[modname]
             for obj_name in name_parts[last_j:]:
+                parent = obj
                 obj = getattr(obj, obj_name)
-            return obj
+            return obj, parent
         else:
-            return sys.modules[modname]
+            return sys.modules[modname], None
     except (ValueError, ImportError, AttributeError, KeyError), e:
         raise ImportError(*e.args)
 
     prefixes = [None]
     #prefixes.insert(0, inliner.document.settings.env.currmodule)
     try:
-        obj, name = import_by_name(pnode['reftarget'], prefixes)
+        name, obj, parent = import_by_name(pnode['reftarget'], prefixes)
     except ImportError:
         content = pnode[0]
         r[0][0] = nodes.emphasis(rawtext, content[0].astext(),

sphinx/ext/autosummary/generate.py

         ensuredir(path)
 
         try:
-            obj, name = import_by_name(name)
+            name, obj, parent = import_by_name(name)
         except ImportError, e:
             warn('[autosummary] failed to import %r: %s' % (name, e))
             continue
         f = open(fn, 'w')
 
         try:
-            doc = get_documenter(obj)
+            doc = get_documenter(obj, parent)
 
             if template_name is not None:
                 template = template_env.get_template(template_name)
             def get_members(obj, typ, include_public=[]):
                 items = [
                     name for name in dir(obj)
-                    if get_documenter(getattr(obj, name)).objtype == typ
+                    if get_documenter(getattr(obj, name), obj).objtype == typ
                 ]
                 public = [x for x in items
                           if x in include_public or not x.startswith('_')]
     See `find_autosummary_in_lines`.
     """
     try:
-        obj, real_name = import_by_name(name)
+        real_name, obj, parent = import_by_name(name)
         lines = pydoc.getdoc(obj).splitlines()
         return find_autosummary_in_lines(lines, module=name, filename=filename)
     except AttributeError:

sphinx/ext/doctest.py

             self.total_failures += res_f
             self.total_tries += res_t
         if self.cleanup_runner.tries:
-            res_f, res_t = self.cleanup_runner.summarize(self._out, verbose=True)
+            res_f, res_t = self.cleanup_runner.summarize(self._out,
+                                                         verbose=True)
             self.cleanup_failures += res_f
             self.cleanup_tries += res_t
 
                 examples.append(doctest.Example(testcode.code, '',
                                                 lineno=testcode.lineno))
             if not examples:
-                return
+                return True
             # simulate a doctest with the code
             sim_doctest = doctest.DocTest(examples, {},
                                           '%s (%s code)' % (group.name, what),

sphinx/ext/inheritance_diagram.py

         """Import a class using its fully-qualified *name*."""
         try:
             path, base = class_sig_re.match(name).groups()
-        except ValueError:
+        except (AttributeError, ValueError):
             raise InheritanceException('Invalid class or module %r specified '
                                        'for inheritance diagram' % name)
 

sphinx/ext/mathbase.py

         node['docname'] = self.state.document.settings.env.docname
         ret = [node]
         node.line = self.lineno
-        node.source = self.src
+        if hasattr(self, 'src'):
+            node.source = self.src
         if node['label']:
             tnode = nodes.target('', '', ids=['equation-' + node['label']])
             self.state.document.note_explicit_target(tnode)

sphinx/highlighting.py

     parser = None
 
 from sphinx.util.texescape import tex_hl_escape_map_old, tex_hl_escape_map_new
+from sphinx.ext import doctest
 
 try:
     import pygments
 \newcommand\PYGZrb{]}
 '''
 
-doctestopt_re = re.compile(r'#\s*doctest:.+$', re.MULTILINE)
-
 parsing_exceptions = (SyntaxError, UnicodeEncodeError)
 if sys.version_info < (2, 5):
     # Python <= 2.4 raises MemoryError when parsing an
 
         # trim doctest options if wanted
         if isinstance(lexer, PythonConsoleLexer) and self.trim_doctest_flags:
-            source = doctestopt_re.sub('', source)
+            source = doctest.blankline_re.sub('', source)
+            source = doctest.doctestopt_re.sub('', source)
 
         # highlight via Pygments
         try:

sphinx/jinja2glue.py

         return val.lower() in ('true', '1', 'yes', 'on')
     return bool(val)
 
+def _toint(val):
+    try:
+        return int(val)
+    except ValueError:
+        return 0
+
 def accesskey(context, key):
     """Helper to output each access key only once."""
     if '_accesskeys' not in context:
         return 'accesskey="%s"' % key
     return ''
 
+class idgen(object):
+    def __init__(self):
+        self.id = 0
+    def current(self):
+        return self.id
+    def next(self):
+        self.id += 1
+        return self.id
+
 
 class SphinxFileSystemLoader(FileSystemLoader):
     """
         self.environment = SandboxedEnvironment(loader=self,
                                                 extensions=extensions)
         self.environment.filters['tobool'] = _tobool
+        self.environment.filters['toint'] = _toint
         self.environment.globals['debug'] = contextfunction(pformat)
         self.environment.globals['accesskey'] = contextfunction(accesskey)
+        self.environment.globals['idgen'] = idgen
         if use_i18n:
             self.environment.install_gettext_translations(
                 builder.app.translator)

sphinx/locale/bn/LC_MESSAGES/sphinx.js

-Documentation.addTranslations({"locale": "bn", "plural_expr": "(n != 1)", "messages": {"Search Results": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8\u09c7\u09b0 \u09ab\u09b2\u09be\u09ab\u09b2", "Preparing search...": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8\u09c7\u09b0 \u09aa\u09cd\u09b0\u09b8\u09cd\u09a4\u09c1\u09a4\u09bf \u099a\u09b2\u099b\u09c7...", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "\u0986\u09aa\u09a8\u09be\u09b0 \u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8\u09c7 \u0995\u09c7\u09be\u09a8 \u09ab\u09b2\u09be\u09ab\u09b2 \u09aa\u09be\u0993\u09df\u09be \u09af\u09be\u09df\u09a8\u09bf\u0964 \u0986\u09aa\u09a8\u09be\u09b0 \u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8\u09c7\u09b0 \u09b6\u09ac\u09cd\u09a6\u0997\u09c1\u09b2\u09c7\u09be\u09b0 \u09b8\u09a0\u09bf\u0995 \u09ac\u09be\u09a8\u09be\u09a8 \u0993 \u09ac\u09bf\u09ad\u09be\u0997 \u09a8\u09bf\u09b0\u09cd\u09ac\u09be\u099a\u09a8 \u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8\u0964", "Search finished, found %s page(s) matching the search query.": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8 \u09b6\u09c7\u09b7 \u09b9\u09df\u09c7\u099b\u09c7, \u09ab\u09b2\u09be\u09ab\u09b2\u09c7 %s-\u099f\u09bf \u09aa\u09be\u09a4\u09be \u09aa\u09be\u0993\u09df\u09be \u0997\u09c7\u099b\u09c7\u0964", ", in ": ", -", "Expand sidebar": "", "Permalink to this headline": "\u098f\u0987 \u09b6\u09bf\u09b0\u09c7\u09be\u09a8\u09be\u09ae\u09c7\u09b0 \u09aa\u09be\u09b0\u09cd\u09ae\u09be\u09b2\u09bf\u0999\u09cd\u0995", "Searching": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8 \u099a\u09b2\u099b\u09c7", "Collapse sidebar": "", "Permalink to this definition": "\u098f\u0987 \u09b8\u0982\u099c\u09cd\u099e\u09be\u09b0 \u09aa\u09be\u09b0\u09cd\u09ae\u09be\u09b2\u09bf\u0999\u09cd\u0995", "Hide Search Matches": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8\u09c7\u09b0 \u09ae\u09cd\u09af\u09be\u099a\u0997\u09c1\u09b2\u09c7\u09be \u09b2\u09c1\u0995\u09be\u09a8"}});
+Documentation.addTranslations({"locale": "bn", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8\u09c7\u09b0 \u09ae\u09cd\u09af\u09be\u099a\u0997\u09c1\u09b2\u09c7\u09be \u09b2\u09c1\u0995\u09be\u09a8", "Permalink to this definition": "\u098f\u0987 \u09b8\u0982\u099c\u09cd\u099e\u09be\u09b0 \u09aa\u09be\u09b0\u09cd\u09ae\u09be\u09b2\u09bf\u0999\u09cd\u0995", "Expand sidebar": "", "Permalink to this headline": "\u098f\u0987 \u09b6\u09bf\u09b0\u09c7\u09be\u09a8\u09be\u09ae\u09c7\u09b0 \u09aa\u09be\u09b0\u09cd\u09ae\u09be\u09b2\u09bf\u0999\u09cd\u0995", "Collapse sidebar": ""}});
Add a comment to this file

sphinx/locale/bn/LC_MESSAGES/sphinx.mo

Binary file modified.

sphinx/locale/bn/LC_MESSAGES/sphinx.po

 "Project-Id-Version: Sphinx 1.0pre/[?1034h2e1ab15e035e\n"
 "Report-Msgid-Bugs-To: nasim.haque@gmail.com\n"
 "POT-Creation-Date: 2009-11-08 16:28+0100\n"
-"PO-Revision-Date: 2010-08-26 11:45+0000\n"
+"PO-Revision-Date: 2011-01-22 14:41+0100\n"
 "Last-Translator: Nasimul Haque <nasim.haque@gmail.com>\n"
 "Language-Team: Nasimul Haque <nasim.haque@gmail.com>\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Babel 0.9.5\n"
 
-#: sphinx/environment.py:111 sphinx/writers/latex.py:185
+#: sphinx/environment.py:120 sphinx/writers/latex.py:189
 #: sphinx/writers/manpage.py:67
 #, python-format
 msgid "%B %d, %Y"
 msgstr "%B %d, %Y"
 
-#: sphinx/roles.py:173
+#: sphinx/environment.py:1624
+#, fuzzy, python-format
+msgid "see %s"
+msgstr "আরও %s"
+
+#: sphinx/environment.py:1627
+#, fuzzy, python-format
+msgid "see also %s"
+msgstr "আরও দেখুন %s"
+
+#: sphinx/roles.py:175
 #, python-format
-msgid "Python Enhancement Proposals!PEP %s"
-msgstr "পাইথন উন্নয়ন পরামর্শ!PEP %s"
+msgid "Python Enhancement Proposals; PEP %s"
+msgstr "পাইথন উন্নয়ন পরামর্শ; PEP %s"
 
-#: sphinx/builders/changes.py:72
+#: sphinx/builders/changes.py:73
 msgid "Builtins"
 msgstr "বিল্টইন সমূহ"
 
-#: sphinx/builders/changes.py:74
+#: sphinx/builders/changes.py:75
 msgid "Module level"
 msgstr "মডিউল লেভেল"
 
-#: sphinx/builders/html.py:260
+#: sphinx/builders/html.py:274
 #, python-format
 msgid "%b %d, %Y"
 msgstr "%b %d, %Y"
 
-#: sphinx/builders/html.py:279 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html.py:293 sphinx/themes/basic/defindex.html:30
 msgid "General Index"
 msgstr "সাধারণ ইনডেক্স"
 
-#: sphinx/builders/html.py:279
+#: sphinx/builders/html.py:293
 msgid "index"
 msgstr "ইনডেক্স"
 
-#: sphinx/builders/html.py:339
+#: sphinx/builders/html.py:353
 msgid "next"
 msgstr "পরবর্তী"
 
-#: sphinx/builders/html.py:348
+#: sphinx/builders/html.py:362
 msgid "previous"
 msgstr "পূর্ববর্তী"
 
-#: sphinx/builders/latex.py:145
+#: sphinx/builders/latex.py:141 sphinx/builders/texinfo.py:208
 msgid " (in "
 msgstr "(-"
 
-#: sphinx/directives/other.py:135
+#: sphinx/builders/texinfo.py:151 sphinx/builders/texinfo.py:152
+#: sphinx/builders/texinfo.py:153 sphinx/domains/std.py:427
+#: sphinx/themes/basic/genindex-single.html:32
+#: sphinx/themes/basic/genindex-split.html:11
+#: sphinx/themes/basic/genindex-split.html:14
+#: sphinx/themes/basic/genindex.html:32 sphinx/themes/basic/genindex.html:35
+#: sphinx/themes/basic/genindex.html:68 sphinx/themes/basic/layout.html:134
+#: sphinx/writers/latex.py:178
+msgid "Index"
+msgstr "ইনডেক্স"
+
+#: sphinx/directives/other.py:136
 msgid "Section author: "
 msgstr "অনুচ্ছেদ লেখক:"
 
-#: sphinx/directives/other.py:137
+#: sphinx/directives/other.py:138
 msgid "Module author: "
 msgstr "মডিউল লেখক:"
 
-#: sphinx/directives/other.py:139
+#: sphinx/directives/other.py:140
 #, fuzzy
 msgid "Code author: "
 msgstr "মডিউল লেখক:"
 
-#: sphinx/directives/other.py:141
+#: sphinx/directives/other.py:142
 msgid "Author: "
 msgstr "লেখক:"
 
-#: sphinx/directives/other.py:213
+#: sphinx/directives/other.py:215
 msgid "See also"
 msgstr "আরও দেখুন"
 
-#: sphinx/domains/__init__.py:242
+#: sphinx/domains/__init__.py:244
 #, python-format
 msgid "%s %s"
 msgstr ""
 
-#: sphinx/domains/c.py:51 sphinx/domains/python.py:94
+#: sphinx/domains/c.py:51 sphinx/domains/python.py:95
 msgid "Parameters"
 msgstr "প্যারামিটার"
 
-#: sphinx/domains/c.py:54 sphinx/domains/javascript.py:127
-#: sphinx/domains/python.py:104
+#: sphinx/domains/c.py:54 sphinx/domains/javascript.py:128
+#: sphinx/domains/python.py:107
 msgid "Returns"
 msgstr "রিটার্নস"
 
-#: sphinx/domains/c.py:56 sphinx/domains/python.py:106
+#: sphinx/domains/c.py:56 sphinx/domains/python.py:109
 msgid "Return type"
 msgstr "রিটার্ন টাইপ"
 
-#: sphinx/domains/c.py:133
+#: sphinx/domains/c.py:141
 #, python-format
 msgid "%s (C function)"
 msgstr "%s (C ফাংশন)"
 
-#: sphinx/domains/c.py:135
+#: sphinx/domains/c.py:143
 #, python-format
 msgid "%s (C member)"
 msgstr "%s (C মেম্বার)"
 
-#: sphinx/domains/c.py:137
+#: sphinx/domains/c.py:145
 #, python-format
 msgid "%s (C macro)"
 msgstr "%s (C ম্যাক্রো)"
 
-#: sphinx/domains/c.py:139
+#: sphinx/domains/c.py:147
 #, python-format
 msgid "%s (C type)"
 msgstr "%s (C টাইপ)"
 
-#: sphinx/domains/c.py:141
+#: sphinx/domains/c.py:149
 #, python-format
 msgid "%s (C variable)"
 msgstr "%s (C ভ্যারিয়েবল)"
 
-#: sphinx/domains/c.py:171 sphinx/domains/cpp.py:1039
-#: sphinx/domains/javascript.py:161 sphinx/domains/python.py:523
+#: sphinx/domains/c.py:204 sphinx/domains/cpp.py:1053
+#: sphinx/domains/javascript.py:162 sphinx/domains/python.py:558
 msgid "function"
 msgstr "ফাংশন"
 
-#: sphinx/domains/c.py:172 sphinx/domains/cpp.py:1040
+#: sphinx/domains/c.py:205 sphinx/domains/cpp.py:1054
 #, fuzzy
 msgid "member"
 msgstr "C মেম্বার"
 
-#: sphinx/domains/c.py:173
+#: sphinx/domains/c.py:206
 #, fuzzy
 msgid "macro"
 msgstr "C ম্যাক্রো"
 
-#: sphinx/domains/c.py:174 sphinx/domains/cpp.py:1041
+#: sphinx/domains/c.py:207 sphinx/domains/cpp.py:1055
 #, fuzzy
 msgid "type"
 msgstr "C টাইপ"
 
-#: sphinx/domains/c.py:175
+#: sphinx/domains/c.py:208
 #, fuzzy
 msgid "variable"
 msgstr "C ভ্যারিয়েবল"
 
-#: sphinx/domains/cpp.py:883
+#: sphinx/domains/cpp.py:897
 #, python-format
 msgid "%s (C++ class)"
 msgstr "%s (C++ ক্লাসে)"
 
-#: sphinx/domains/cpp.py:898
+#: sphinx/domains/cpp.py:912
 #, python-format
 msgid "%s (C++ type)"
 msgstr "%s (C++ টাইপ)"
 
-#: sphinx/domains/cpp.py:917
+#: sphinx/domains/cpp.py:931
 #, python-format
 msgid "%s (C++ member)"
 msgstr "%s (C++ মেম্বার)"
 
-#: sphinx/domains/cpp.py:969
+#: sphinx/domains/cpp.py:983
 #, python-format
 msgid "%s (C++ function)"
 msgstr "%s (C++ ফাংশন)"
 
-#: sphinx/domains/cpp.py:1038 sphinx/domains/javascript.py:162
-#: sphinx/domains/python.py:525
+#: sphinx/domains/cpp.py:1052 sphinx/domains/javascript.py:163
+#: sphinx/domains/python.py:560
 msgid "class"
 msgstr "ক্লাস"
 
-#: sphinx/domains/javascript.py:105 sphinx/domains/python.py:244
+#: sphinx/domains/javascript.py:106 sphinx/domains/python.py:254
 #, python-format
 msgid "%s() (built-in function)"
 msgstr "%s() (বিল্ট-ইন ফাংশন)"
 
-#: sphinx/domains/javascript.py:106 sphinx/domains/python.py:308
+#: sphinx/domains/javascript.py:107 sphinx/domains/python.py:318
 #, python-format
 msgid "%s() (%s method)"
 msgstr "%s() (%s মেথড)"
 
-#: sphinx/domains/javascript.py:108
+#: sphinx/domains/javascript.py:109
 #, python-format
 msgid "%s() (class)"
 msgstr "%s() (ক্লাসে)"
 
-#: sphinx/domains/javascript.py:110
+#: sphinx/domains/javascript.py:111
 #, python-format
 msgid "%s (global variable or constant)"
 msgstr ""
 
-#: sphinx/domains/javascript.py:112 sphinx/domains/python.py:346
+#: sphinx/domains/javascript.py:113 sphinx/domains/python.py:356
 #, python-format
 msgid "%s (%s attribute)"
 msgstr "%s (%s এ্যট্রিবিউট)"
 
-#: sphinx/domains/javascript.py:121
+#: sphinx/domains/javascript.py:122
 #, fuzzy
 msgid "Arguments"
 msgstr "প্যারামিটার"
 
-#: sphinx/domains/javascript.py:124
+#: sphinx/domains/javascript.py:125
 msgid "Throws"
 msgstr ""
 
-#: sphinx/domains/javascript.py:163 sphinx/domains/python.py:524
+#: sphinx/domains/javascript.py:164 sphinx/domains/python.py:559
 msgid "data"
 msgstr "ডাটা"
 
-#: sphinx/domains/javascript.py:164 sphinx/domains/python.py:530
+#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:565
 msgid "attribute"
 msgstr "এ্যট্রিবিউট"
 
-#: sphinx/domains/python.py:98
+#: sphinx/domains/python.py:100
 #, fuzzy
 msgid "Variables"
 msgstr "ভ্যারিয়েবল"
 
-#: sphinx/domains/python.py:101
+#: sphinx/domains/python.py:104
 msgid "Raises"
 msgstr "রেইজেস"
 
-#: sphinx/domains/python.py:245 sphinx/domains/python.py:302
-#: sphinx/domains/python.py:314 sphinx/domains/python.py:327
+#: sphinx/domains/python.py:255 sphinx/domains/python.py:312
+#: sphinx/domains/python.py:324 sphinx/domains/python.py:337
 #, python-format
 msgid "%s() (in module %s)"
 msgstr "%s() (%s মডিউলে)"
 
-#: sphinx/domains/python.py:248
+#: sphinx/domains/python.py:258
 #, python-format
 msgid "%s (built-in variable)"
 msgstr "%s (বিল্ট-ইন ভ্যারিয়েবল)"
 
-#: sphinx/domains/python.py:249 sphinx/domains/python.py:340
+#: sphinx/domains/python.py:259 sphinx/domains/python.py:350
 #, python-format
 msgid "%s (in module %s)"
 msgstr "%s (%s মডিউলে)"
 
-#: sphinx/domains/python.py:265
+#: sphinx/domains/python.py:275
 #, python-format
 msgid "%s (built-in class)"
 msgstr "%s (বিল্ট-ইন ক্লাস)"
 
-#: sphinx/domains/python.py:266
+#: sphinx/domains/python.py:276
 #, python-format
 msgid "%s (class in %s)"
 msgstr "%s (%s ক্লাসে)"
 
-#: sphinx/domains/python.py:306
+#: sphinx/domains/python.py:316
 #, python-format
 msgid "%s() (%s.%s method)"
 msgstr "%s (%s.%s মেথড)"
 
-#: sphinx/domains/python.py:318
+#: sphinx/domains/python.py:328
 #, python-format
 msgid "%s() (%s.%s static method)"
 msgstr "%s (%s.%s স্ট্যাটিক মেথড)"
 
-#: sphinx/domains/python.py:321
+#: sphinx/domains/python.py:331
 #, python-format
 msgid "%s() (%s static method)"
 msgstr "%s() (%s স্ট্যাটিক মেথড)"
 
-#: sphinx/domains/python.py:331
+#: sphinx/domains/python.py:341
 #, python-format
 msgid "%s() (%s.%s class method)"
 msgstr "%s() (%s.%s ক্লাস মেথড)"
 
-#: sphinx/domains/python.py:334
+#: sphinx/domains/python.py:344
 #, python-format
 msgid "%s() (%s class method)"
 msgstr "%s() (%s ক্লাস মেথড)"
 
-#: sphinx/domains/python.py:344
+#: sphinx/domains/python.py:354
 #, python-format
 msgid "%s (%s.%s attribute)"
 msgstr "%s (%s.%s এ্যট্রিবিউট)"
 
-#: sphinx/domains/python.py:392
-msgid "Platforms: "
-msgstr "প্লাটফরম:"
-
-#: sphinx/domains/python.py:398
+#: sphinx/domains/python.py:433
 #, python-format
 msgid "%s (module)"
 msgstr "%s (মডিউল)"
 
-#: sphinx/domains/python.py:455
+#: sphinx/domains/python.py:490
 #, fuzzy
 msgid "Python Module Index"
 msgstr "মডিউল ইনডেক্স"
 
-#: sphinx/domains/python.py:456
+#: sphinx/domains/python.py:491
 msgid "modules"
 msgstr "মডিউল সমূহ"
 
-#: sphinx/domains/python.py:501
+#: sphinx/domains/python.py:536
 msgid "Deprecated"
 msgstr "ডেপ্রিকেটেড"
 
-#: sphinx/domains/python.py:526 sphinx/locale/__init__.py:178
+#: sphinx/domains/python.py:561 sphinx/locale/__init__.py:179
 msgid "exception"
 msgstr "এক্সেপশন"
 
-#: sphinx/domains/python.py:527
+#: sphinx/domains/python.py:562
 msgid "method"
 msgstr "মেথড"
 
-#: sphinx/domains/python.py:528
+#: sphinx/domains/python.py:563
 msgid "class method"
 msgstr "ক্লাস মেথড"
 
-#: sphinx/domains/python.py:529
+#: sphinx/domains/python.py:564
 msgid "static method"
 msgstr "স্ট্যাটিক মেথড"
 
-#: sphinx/domains/python.py:531 sphinx/locale/__init__.py:174
+#: sphinx/domains/python.py:566 sphinx/locale/__init__.py:175
 msgid "module"
 msgstr "মডিউল"
 
-#: sphinx/domains/python.py:657
+#: sphinx/domains/python.py:694
 #, fuzzy
 msgid " (deprecated)"
 msgstr "ডেপ্রিকেটেড"
 msgid "role"
 msgstr "মডিউল"
 
-#: sphinx/domains/std.py:68 sphinx/domains/std.py:84
+#: sphinx/domains/std.py:70 sphinx/domains/std.py:86
 #, python-format
 msgid "environment variable; %s"
 msgstr "এনভায়রনমেন্ট ভ্যারিয়েবল; %s"
 
-#: sphinx/domains/std.py:160
+#: sphinx/domains/std.py:162
 #, python-format
 msgid "%scommand line option; %s"
 msgstr "%sকমান্ড লাইন অপশন; %s"
 
-#: sphinx/domains/std.py:328
+#: sphinx/domains/std.py:393
 msgid "glossary term"
 msgstr "শব্দকোষ"
 
-#: sphinx/domains/std.py:329
+#: sphinx/domains/std.py:394
 msgid "grammar token"
 msgstr "ব্যকরণ টোকেন"
 
-#: sphinx/domains/std.py:330
+#: sphinx/domains/std.py:395
 msgid "reference label"
 msgstr ""
 
-#: sphinx/domains/std.py:331
+#: sphinx/domains/std.py:396
 msgid "environment variable"
 msgstr "এনভায়রনমেন্ট ভ্যারিয়েবল"
 
-#: sphinx/domains/std.py:332
+#: sphinx/domains/std.py:397
 msgid "program option"
 msgstr "প্রোগ্রাম অপশন"
 
-#: sphinx/domains/std.py:360 sphinx/themes/basic/genindex-single.html:11
-#: sphinx/themes/basic/genindex-split.html:11
-#: sphinx/themes/basic/genindex-split.html:14
-#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:14
-#: sphinx/themes/basic/genindex.html:50 sphinx/themes/basic/layout.html:125
-#: sphinx/writers/latex.py:174
-msgid "Index"
-msgstr "ইনডেক্স"
-
-#: sphinx/domains/std.py:361
+#: sphinx/domains/std.py:428
 msgid "Module Index"
 msgstr "মডিউল ইনডেক্স"
 
-#: sphinx/domains/std.py:362 sphinx/themes/basic/defindex.html:25
+#: sphinx/domains/std.py:429 sphinx/themes/basic/defindex.html:25
 msgid "Search Page"
 msgstr "অনুসন্ধান পাতা"
 
-#: sphinx/ext/autodoc.py:923
+#: sphinx/ext/autodoc.py:998
 #, python-format
 msgid "   Bases: %s"
 msgstr "বেস: %s"
 
-#: sphinx/ext/autodoc.py:959
+#: sphinx/ext/autodoc.py:1034
 #, python-format
 msgid "alias of :class:`%s`"
 msgstr ":class:`%s` এর উপনাম"
 msgid "Deprecated since version %s"
 msgstr "%s ভার্সন থেকে ডেপ্রিকেটেড"
 
-#: sphinx/locale/__init__.py:175
+#: sphinx/locale/__init__.py:176
 msgid "keyword"
 msgstr "কিওয়ার্ড"
 
-#: sphinx/locale/__init__.py:176
+#: sphinx/locale/__init__.py:177
 msgid "operator"
 msgstr "অপারেটর"
 
-#: sphinx/locale/__init__.py:177
+#: sphinx/locale/__init__.py:178
 msgid "object"
 msgstr "অবজেক্ট"
 
-#: sphinx/locale/__init__.py:179
+#: sphinx/locale/__init__.py:180
 msgid "statement"
 msgstr "স্ট্যাটমেন্ট"
 
-#: sphinx/locale/__init__.py:180
+#: sphinx/locale/__init__.py:181
 msgid "built-in function"
 msgstr "বিল্ট-ইন ফাংশন"
 
 msgid "Table Of Contents"
 msgstr "সূচীপত্র"
 
-#: sphinx/themes/agogo/layout.html:49 sphinx/themes/basic/layout.html:128
+#: sphinx/themes/agogo/layout.html:49 sphinx/themes/basic/layout.html:137
 #: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:20
 msgid "Search"
 msgstr "অনুসন্ধান"
 msgid "all functions, classes, terms"
 msgstr "সকল ফাংশন, ক্লাস, টার্ম"
 
-#: sphinx/themes/basic/genindex-single.html:14
+#: sphinx/themes/basic/genindex-single.html:35
 #, python-format
 msgid "Index &ndash; %(key)s"
 msgstr "ইনডেক্স &ndash; %(key)s"
 
-#: sphinx/themes/basic/genindex-single.html:46
+#: sphinx/themes/basic/genindex-single.html:63
 #: sphinx/themes/basic/genindex-split.html:24
 #: sphinx/themes/basic/genindex-split.html:38
-#: sphinx/themes/basic/genindex.html:56
+#: sphinx/themes/basic/genindex.html:74
 msgid "Full index on one page"
 msgstr "এক পাতায় সম্পূর্ণ ইনডেক্স"
 
 msgid "can be huge"
 msgstr "খুব বড় হতে পারে"
 
-#: sphinx/themes/basic/layout.html:23
+#: sphinx/themes/basic/layout.html:29
 msgid "Navigation"
 msgstr "নেভিগেশন"
 
-#: sphinx/themes/basic/layout.html:113
+#: sphinx/themes/basic/layout.html:122
 #, python-format
 msgid "Search within %(docstitle)s"
 msgstr "%(docstitle)s এর মধ্যে খুঁজুন"
 
-#: sphinx/themes/basic/layout.html:122
+#: sphinx/themes/basic/layout.html:131
 msgid "About these documents"
 msgstr "এই ডকুমেন্ট সম্পর্কে"
 
-#: sphinx/themes/basic/layout.html:131
+#: sphinx/themes/basic/layout.html:140
 msgid "Copyright"
 msgstr "কপিরাইট"
 
-#: sphinx/themes/basic/layout.html:180
+#: sphinx/themes/basic/layout.html:189
 #, python-format
 msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
 msgstr "&copy; <a href=\"%(path)s\">কপিরাইট</a> %(copyright)s."
 
-#: sphinx/themes/basic/layout.html:182
+#: sphinx/themes/basic/layout.html:191
 #, python-format
 msgid "&copy; Copyright %(copyright)s."
 msgstr "&copy; কপিরাইট %(copyright)s."
 
-#: sphinx/themes/basic/layout.html:186
+#: sphinx/themes/basic/layout.html:195
 #, python-format
 msgid "Last updated on %(last_updated)s."
 msgstr "%(last_updated)s সর্বশেষ পরিবর্তন করা হয়েছে।"
 
-#: sphinx/themes/basic/layout.html:189
+#: sphinx/themes/basic/layout.html:198
 #, python-format
 msgid ""
 "Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
 msgstr "খুঁজুন"
 
 #: sphinx/themes/basic/search.html:40
-#: sphinx/themes/basic/static/searchtools.js:504
 msgid "Search Results"
 msgstr "অনুসন্ধানের ফলাফল"
 
 msgid "Other changes"
 msgstr "অন্যান্য পরিবর্তন"
 
-#: sphinx/themes/basic/static/doctools.js:154 sphinx/writers/html.py:491
-#: sphinx/writers/html.py:496
+#: sphinx/themes/basic/static/doctools.js:154 sphinx/writers/html.py:505
+#: sphinx/writers/html.py:511
 msgid "Permalink to this headline"
 msgstr "এই শিরোনামের পার্মালিঙ্ক"
 
-#: sphinx/themes/basic/static/doctools.js:160 sphinx/writers/html.py:88
+#: sphinx/themes/basic/static/doctools.js:160 sphinx/writers/html.py:92
 msgid "Permalink to this definition"
 msgstr "এই সংজ্ঞার পার্মালিঙ্ক"
 
 msgid "Hide Search Matches"
 msgstr "অনুসন্ধানের ম্যাচগুলো লুকান"
 
-#: sphinx/themes/basic/static/searchtools.js:287
-msgid "Searching"
-msgstr "অনুসন্ধান চলছে"
-
-#: sphinx/themes/basic/static/searchtools.js:292
-msgid "Preparing search..."
-msgstr "অনুসন্ধানের প্রস্তুতি চলছে..."
-
-#: sphinx/themes/basic/static/searchtools.js:366
-msgid ", in "
-msgstr ", -"
-
-#: sphinx/themes/basic/static/searchtools.js:506
-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 ""
-"আপনার অনুসন্ধানে কোন ফলাফল পাওয়া যায়নি। আপনার অনুসন্ধানের শব্দগুলোর "
-"সঠিক বানান ও বিভাগ নির্বাচন নিশ্চিত করুন।"
-
-#: sphinx/themes/basic/static/searchtools.js:508
-#, python-format
-msgid "Search finished, found %s page(s) matching the search query."
-msgstr "অনুসন্ধান শেষ হয়েছে, ফলাফলে %s-টি পাতা পাওয়া গেছে।"
-
-#: sphinx/themes/default/static/sidebar.js:66
+#: sphinx/themes/default/static/sidebar.js:69
 msgid "Expand sidebar"
 msgstr ""
 
-#: sphinx/themes/default/static/sidebar.js:79
-#: sphinx/themes/default/static/sidebar.js:107
+#: sphinx/themes/default/static/sidebar.js:82
+#: sphinx/themes/default/static/sidebar.js:110
 msgid "Collapse sidebar"
 msgstr ""
 
 msgid "Contents"
 msgstr ""
 
-#: sphinx/writers/latex.py:172
+#: sphinx/writers/latex.py:176
 msgid "Release"
 msgstr "রিলিজ"
 
-#: sphinx/writers/latex.py:576 sphinx/writers/manpage.py:178
+#: sphinx/writers/latex.py:590 sphinx/writers/manpage.py:182
 msgid "Footnotes"
 msgstr "পাদটীকা"
 
-#: sphinx/writers/latex.py:649
+#: sphinx/writers/latex.py:672
 msgid "continued from previous page"
 msgstr "পূর্ববর্তী পাতা হতে চলমান"
 
-#: sphinx/writers/latex.py:654
+#: sphinx/writers/latex.py:677
 msgid "Continued on next page"
 msgstr "পরবর্তী পাতাতে চলমান"
 
-#: sphinx/writers/text.py:422
+#: sphinx/writers/text.py:430
 msgid "[image]"
 msgstr "[ছবি]"
 
-#~ msgid "Variable"
-#~ msgstr "ভ্যারিয়েবল"
+#~ msgid "Platforms: "
+#~ msgstr "প্লাটফরম:"
 
-#~ msgid "Parameter"
-#~ msgstr "প্যারামিটার"
+#~ msgid "Searching"
+#~ msgstr "অনুসন্ধান চলছে"
 
-#~ msgid "C function"
-#~ msgstr "C ফাংশন"
+#~ msgid "Preparing search..."
+#~ msgstr "অনুসন্ধানের প্রস্তুতি চলছে..."
 
-#~ msgid "here"
-#~ msgstr "এখানে"
+#~ msgid ", in "
+#~ msgstr ", -"
 
-#~ msgid "Platform: %s"
-#~ msgstr "প্লাটফরম: %s"
+#~ 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 ""
+#~ "আপনার অনুসন্ধানে কোন ফলাফল পাওয়া যায়নি।"
+#~ " আপনার অনুসন্ধানের শব্দগুলোর সঠিক বানান"
+#~ " ও বিভাগ নির্বাচন নিশ্চিত করুন।"
 
+#~ msgid "Search finished, found %s page(s) matching the search query."
+#~ msgstr "অনুসন্ধান শেষ হয়েছে, ফলাফলে %s-টি পাতা পাওয়া গেছে।"
+