Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-sphinxcontrib-httpdomain for 
openSUSE:Factory checked in at 2021-10-16 22:47:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-sphinxcontrib-httpdomain (Old)
 and      /work/SRC/openSUSE:Factory/.python-sphinxcontrib-httpdomain.new.1890 
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-sphinxcontrib-httpdomain"

Sat Oct 16 22:47:38 2021 rev:24 rq:925737 version:1.8.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-sphinxcontrib-httpdomain/python-sphinxcontrib-httpdomain.changes
  2021-07-20 15:40:07.977544157 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-sphinxcontrib-httpdomain.new.1890/python-sphinxcontrib-httpdomain.changes
        2021-10-16 22:48:23.460729878 +0200
@@ -1,0 +2,15 @@
+Sat Oct 16 19:25:22 UTC 2021 - Dirk M??ller <dmuel...@suse.com>
+
+- update to 1.8.0:
+  - Make the generated routing table referencable using the 'routingtable'
+    label. [:pull:`19` by David Douard]
+  - Add support for parallel sphinx builds. Increases sphinx version 
requirement to 1.6
+    [:pull:`31` by Daniel Hofmann]
+  - Remove references to the generic ``:py:obj:`` role [:pull:`54` by Stephen 
Finucane]
+  - Remove imports and calls to depracated function force_decode who was 
removed
+    starting with sphinx 4.0 [:pull:`49` by Florian Masy]
+  - Be explicit about what versions of Python are supports (2.7, and 3.5+). 
This will
+    be the last version to support Python 2.7 and 3.5, version 2.0 will 
require 3.6+.
+- remove 49-remove_force_decode.patch (upstream) 
+  
+-------------------------------------------------------------------

Old:
----
  1.7.0.tar.gz
  49-remove_force_decode.patch

New:
----
  1.8.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-sphinxcontrib-httpdomain.spec ++++++
--- /var/tmp/diff_new_pack.REmBp4/_old  2021-10-16 22:48:23.792730158 +0200
+++ /var/tmp/diff_new_pack.REmBp4/_new  2021-10-16 22:48:23.792730158 +0200
@@ -19,15 +19,12 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %global skip_python2 1
 Name:           python-sphinxcontrib-httpdomain
-Version:        1.7.0
+Version:        1.8.0
 Release:        0
 Summary:        Sphinx domain for HTTP APIs
 License:        BSD-2-Clause
 URL:            https://github.com/sphinx-contrib/httpdomain
 Source:         
https://github.com/sphinx-contrib/httpdomain/archive/%{version}.tar.gz
-# PATCH-FIX-UPSTREAM 49-remove_force_decode.patch 
gh#sphinx-contrib/httpdomain#49 mc...@suse.com
-# Finally remove use of force_decode function (removed from Sphinx).
-Patch0:         49-remove_force_decode.patch
 BuildRequires:  %{python_module Flask >= 0.11}
 BuildRequires:  %{python_module Sphinx >= 1.5}
 BuildRequires:  %{python_module bottle >= 0.11.0}

++++++ 1.7.0.tar.gz -> 1.8.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httpdomain-1.7.0/.travis.yml 
new/httpdomain-1.8.0/.travis.yml
--- old/httpdomain-1.7.0/.travis.yml    2018-07-01 13:45:36.000000000 +0200
+++ new/httpdomain-1.8.0/.travis.yml    2021-09-23 15:14:40.000000000 +0200
@@ -1,11 +1,16 @@
 language: python
 python: [3.6, 3.5, 2.7]
+branches:
+  only:
+  - main
 install:
 - pip install tox-travis
 script:
 - tox
 - '[[ "$TRAVIS_TAG" = "" ]] || [[ "$TRAVIS_TAG" = "$(python setup.py 
--version)" ]]'
 - |
+  env | grep TRAVIS | sort
+  set -x
   if git show --format=%B --quiet 
"${TRAVIS_PULL_REQUEST_SHA:-${TRAVIS_TAG:-${TRAVIS_COMMIT}}}" \
      | grep '\[changelog skip\]' > /dev/null; then
     echo "Skip changelog checker..."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httpdomain-1.7.0/README.rst 
new/httpdomain-1.8.0/README.rst
--- old/httpdomain-1.7.0/README.rst     2018-07-01 13:45:36.000000000 +0200
+++ new/httpdomain-1.8.0/README.rst     2021-09-23 15:14:40.000000000 +0200
@@ -9,7 +9,7 @@
    :target: https://sphinxcontrib-httpdomain.readthedocs.io/
    :alt: Documentation Status
 
-.. image:: https://travis-ci.org/sphinx-contrib/httpdomain.svg?branch=master
+.. image:: https://travis-ci.org/sphinx-contrib/httpdomain.svg?branch=main
    :alt: Build Status
    :target: https://travis-ci.org/sphinx-contrib/httpdomain
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httpdomain-1.7.0/doc/changelog.rst 
new/httpdomain-1.8.0/doc/changelog.rst
--- old/httpdomain-1.7.0/doc/changelog.rst      2018-07-01 13:45:36.000000000 
+0200
+++ new/httpdomain-1.8.0/doc/changelog.rst      2021-09-23 15:14:40.000000000 
+0200
@@ -3,6 +3,22 @@
 Changelog
 ---------
 
+Version 1.8.0
+`````````````
+
+Released on September 23, 2020
+
+- Make the generated routing table referencable using the 'routingtable'
+  label. [:pull:`19` by David Douard]
+- Add support for parallel sphinx builds. Increases sphinx version requirement 
to 1.6
+  [:pull:`31` by Daniel Hofmann]
+- Remove references to the generic ``:py:obj:`` role [:pull:`54` by Stephen 
Finucane]
+- Remove imports and calls to depracated function force_decode who was removed
+  starting with sphinx 4.0 [:pull:`49` by Florian Masy]
+- Be explicit about what versions of Python are supports (2.7, and 3.5+). This 
will
+  be the last version to support Python 2.7 and 3.5, version 2.0 will require 
3.6+.
+
+
 Version 1.7.0
 `````````````
 
@@ -11,7 +27,7 @@
 - Implemented ``:autoquickref:`` option that use available informations to
   build a ``quickref``. [:pull:`9` by Alexandre Bonnetain]
 - Improved :mod:`sphinxcontrib.autohttp.tornado` compatibility with Tornado
-  4.5 and newer. `Tornado 4.5 
<http://www.tornadoweb.org/en/stable/releases/v4.5.0.html>`
+  4.5 and newer. `Tornado 4.5 
<http://www.tornadoweb.org/en/stable/releases/v4.5.0.html>`_
   introduced the ``Rule`` class and made ``URLSpec`` a subclass of it, so 
certain
   rule attributes required updating. [:issue:`7`, :pull:`11` by Robert Zeigler]
 
@@ -24,7 +40,7 @@
 - Remove references to the ``sphinx.util.compat`` module which was deprecated
   in Sphinx 1.6 and removed in 1.7.  [:issue:`5`, :pull:`4` by Jeremy Cline]
 - Made :mod:`sphinxcontrib.autohttp.tornado` compatible with Tornado 4.5 and
-  newer.  `Tornado 4.5 
<http://www.tornadoweb.org/en/stable/releases/v4.5.0.html>`
+  newer.  `Tornado 4.5 
<http://www.tornadoweb.org/en/stable/releases/v4.5.0.html>`_
   removed the ``handlers`` attribute from ``tornado.web.Application``.
   [:pull:`3` by Dave Shawley]
 
@@ -127,7 +143,7 @@
 - Fixed broken Python 2.6 compatibility.  [:oldpull:`41` by Kien Pham]
 - Added missing link to six_ dependency.
 
-.. _six: http://pythonhosted.org/six/
+.. _six: https://six.readthedocs.io//
 
 
 Version 1.2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httpdomain-1.7.0/doc/conf.py 
new/httpdomain-1.8.0/doc/conf.py
--- old/httpdomain-1.7.0/doc/conf.py    2018-07-01 13:45:36.000000000 +0200
+++ new/httpdomain-1.8.0/doc/conf.py    2021-09-23 15:14:40.000000000 +0200
@@ -69,9 +69,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '1.7'
+version = '1.8'
 # The full version, including alpha/beta/rc tags.
-release = '1.7.0'
+release = '1.8.0'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httpdomain-1.7.0/doc/index.rst 
new/httpdomain-1.8.0/doc/index.rst
--- old/httpdomain-1.7.0/doc/index.rst  2018-07-01 13:45:36.000000000 +0200
+++ new/httpdomain-1.8.0/doc/index.rst  2021-09-23 15:14:40.000000000 +0200
@@ -1,8 +1,3 @@
-.. sphinxcontrib-httpdomain documentation master file, created by
-   sphinx-quickstart on Thu Jun  2 13:27:52 2011.
-   You can adapt this file completely to your liking, but it should at least
-   contain the root `toctree` directive.
-
 .. module:: sphinxcontrib.httpdomain
 
 :mod:`sphinxcontrib.httpdomain` --- Sphinx domain for documenting HTTP APIs
@@ -16,7 +11,7 @@
    :target: https://sphinxcontrib-httpdomain.readthedocs.io/
    :alt: Documentation Status
 
-.. image:: https://travis-ci.org/sphinx-contrib/httpdomain.svg?branch=master
+.. image:: https://travis-ci.org/sphinx-contrib/httpdomain.svg?branch=main
    :alt: Build Status
    :target: https://travis-ci.org/sphinx-contrib/httpdomain
 
@@ -31,7 +26,7 @@
    Module :mod:`sphinxcontrib.autohttp.flask`
       Reflection for Flask_ webapps.
 
-   Module :mod:`sphinxcontrib.autohttp.flaskqref` 
+   Module :mod:`sphinxcontrib.autohttp.flaskqref`
       Quick reference rendering with :mod:`sphinxcontrib.autohttp.flask`
 
    Module :mod:`sphinxcontrib.autohttp.bottle`
@@ -205,6 +200,14 @@
 
     :http:get:`/users/(int:user_id)/posts/(tag)`
 
+If you want to reference the generated routing table, you can use:
+
+.. sourcecode:: rst
+
+   :ref:`routingtable`
+
+.. versionadded:: 1.8.0
+
 
 .. _directives:
 
@@ -797,7 +800,7 @@
 This generates a quick API reference table for the route documentation
 produced by :mod:`sphinxcontrib.autohttp.flask`
 
-To use it, both :mod:`sphinxcontrib.autohttp.flask` and 
:mod:`sphinxcontrib.autohttp.flaskqref` need to be added into the extensions 
+To use it, both :mod:`sphinxcontrib.autohttp.flask` and 
:mod:`sphinxcontrib.autohttp.flaskqref` need to be added into the extensions
 of your configuration (:file:`conf.py`) file::
 
     extensions = ['sphinxcontrib.autohttp.flask',
@@ -809,7 +812,8 @@
 
    Generates HTTP API references from a Flask application and places these
    in a list-table with quick reference links. The usage and options are 
identical
-   to that of :mod:`sphinxcontrib.autohttp.flask`
+   to that of :mod:`sphinxcontrib.autohttp.flask` with the addition of the
+   ``autoquickref`` option.
 
 
 Basic usage
@@ -818,8 +822,9 @@
 You typically would place the quick reference table near the top of your docco
 and use *.. autoflask::* further down.
 
-Routes that are to be included in the quick reference table require 
-the following rst comment to be added to their doc string:
+Unless you use the ``autoquickref`` option, routes that are to be included in
+the quick reference table require the following rst comment to be added to 
their
+doc string:
 
 .. sourcecode:: rst
 
@@ -830,11 +835,15 @@
 
 ``<resource>``
    This is the resource name of the operation.  The name maybe the same for a 
number
-   of operations and enables grouping these together. 
+   of operations and enables grouping these together.
 
 ``<short description>``
    A brief description what the operation does.
 
+If you use the ``autoquickref`` option, all routes must be inside blueprints.
+The ``<resource>`` will be set to the blueprint's name, and the ``<short
+description>`` will be set to the first line of the docstring.
+
 For example:
 
 .. sourcecode:: python
@@ -844,8 +853,8 @@
         """User profile page.
 
         .. :quickref: User; Get Profile Page
-     
-        my docco here   
+
+        my docco here
         """
         return 'hi, ' + user
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httpdomain-1.7.0/setup.py 
new/httpdomain-1.8.0/setup.py
--- old/httpdomain-1.7.0/setup.py       2018-07-01 13:45:36.000000000 +0200
+++ new/httpdomain-1.8.0/setup.py       2021-09-23 15:14:40.000000000 +0200
@@ -5,7 +5,7 @@
 
 
 requires = [
-    'Sphinx >= 1.5',
+    'Sphinx >= 1.6',
     'six',
 ]
 
@@ -20,15 +20,16 @@
 
 setup(
     name='sphinxcontrib-httpdomain',
-    version='1.7.0',
+    version='1.8.0',
     url='https://github.com/sphinx-contrib/httpdomain',
     download_url='https://pypi.org/project/sphinxcontrib-httpdomain/',
     license='BSD',
-    author='Hong Minhee',
-    author_email='\x68\x6f\x6e\x67.minhee' '@' '\x67\x6d\x61\x69\x6c.com',
+    author='Hong Minhee, Ash Berlin-Taylor',
+    author_email='Hong Minhee <\x68\x6f\x6e\x67.minhee' '@' 
'\x67\x6d\x61\x69\x6c.com>, Ash Berlin-Taylor <ash_git...@firemirror.com>',
     description='Sphinx domain for documenting HTTP APIs',
     long_description=readme(),
     zip_safe=False,
+    python_requires='>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*',
     classifiers=[
         'Development Status :: 5 - Production/Stable',
         'Environment :: Console',
@@ -40,6 +41,9 @@
         'Programming Language :: Python :: 2.7',
         'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: 3.6',
+        'Programming Language :: Python :: 3.7',
+        'Programming Language :: Python :: 3.8',
+        'Programming Language :: Python :: 3.9',
         'Topic :: Documentation',
         'Topic :: Utilities',
     ],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httpdomain-1.7.0/sphinxcontrib/autohttp/bottle.py 
new/httpdomain-1.8.0/sphinxcontrib/autohttp/bottle.py
--- old/httpdomain-1.7.0/sphinxcontrib/autohttp/bottle.py       2018-07-01 
13:45:36.000000000 +0200
+++ new/httpdomain-1.8.0/sphinxcontrib/autohttp/bottle.py       2021-09-23 
15:14:40.000000000 +0200
@@ -17,7 +17,6 @@
 from docutils.parsers.rst import directives, Directive
 from docutils.statemachine import ViewList
 
-from sphinx.util import force_decode
 from sphinx.util.nodes import nested_parse_with_titles
 from sphinx.util.docstrings import prepare_docstring
 from sphinx.pycode import ModuleAnalyzer
@@ -89,11 +88,10 @@
                 continue
             view = target.callback
             docstring = view.__doc__ or ''
-            if not isinstance(docstring, six.text_type):
-                analyzer = ModuleAnalyzer.for_module(view.__module__)
-                docstring = force_decode(docstring, analyzer.encoding)
+            
             if not docstring and 'include-empty-docstring' not in self.options:
                 continue
+            
             docstring = prepare_docstring(docstring)
             for line in http_directive(method, path, docstring):
                 yield line
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httpdomain-1.7.0/sphinxcontrib/autohttp/flask.py 
new/httpdomain-1.8.0/sphinxcontrib/autohttp/flask.py
--- old/httpdomain-1.7.0/sphinxcontrib/autohttp/flask.py        2018-07-01 
13:45:36.000000000 +0200
+++ new/httpdomain-1.8.0/sphinxcontrib/autohttp/flask.py        2021-09-23 
15:14:40.000000000 +0200
@@ -19,7 +19,6 @@
 from docutils.parsers.rst import directives, Directive
 from docutils.statemachine import ViewList
 
-from sphinx.util import force_decode
 from sphinx.util.nodes import nested_parse_with_titles
 from sphinx.util.docstrings import prepare_docstring
 from sphinx.pycode import ModuleAnalyzer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/httpdomain-1.7.0/sphinxcontrib/autohttp/flask_base.py 
new/httpdomain-1.8.0/sphinxcontrib/autohttp/flask_base.py
--- old/httpdomain-1.7.0/sphinxcontrib/autohttp/flask_base.py   2018-07-01 
13:45:36.000000000 +0200
+++ new/httpdomain-1.8.0/sphinxcontrib/autohttp/flask_base.py   2021-09-23 
15:14:40.000000000 +0200
@@ -17,7 +17,6 @@
 
 from docutils.parsers.rst import directives, Directive
 
-from sphinx.util import force_decode
 from sphinx.util.docstrings import prepare_docstring
 from sphinx.pycode import ModuleAnalyzer
 
@@ -236,9 +235,6 @@
             if view_func and view_func.__doc__:
                 view_doc = view_func.__doc__
 
-            if not isinstance(view_doc, six.text_type):
-                analyzer = ModuleAnalyzer.for_module(view.__module__)
-                view_doc = force_decode(view_doc, analyzer.encoding)
 
             if not view_doc and 'include-empty-docstring' not in self.options:
                 continue
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httpdomain-1.7.0/sphinxcontrib/autohttp/tornado.py 
new/httpdomain-1.8.0/sphinxcontrib/autohttp/tornado.py
--- old/httpdomain-1.7.0/sphinxcontrib/autohttp/tornado.py      2018-07-01 
13:45:36.000000000 +0200
+++ new/httpdomain-1.8.0/sphinxcontrib/autohttp/tornado.py      2021-09-23 
15:14:40.000000000 +0200
@@ -18,7 +18,6 @@
 from docutils.parsers.rst import directives, Directive
 from docutils.statemachine import ViewList
 
-from sphinx.util import force_decode
 from sphinx.util.nodes import nested_parse_with_titles
 from sphinx.util.docstrings import prepare_docstring
 from sphinx.pycode import ModuleAnalyzer
@@ -129,11 +128,10 @@
                 continue
 
             docstring = getattr(handler, method).__doc__ or ''
-            #if not isinstance(docstring, unicode):
-            #    analyzer = ModuleAnalyzer.for_module(view.__module__)
-            #    docstring = force_decode(docstring, analyzer.encoding)
+            
             if not docstring and 'include-empty-docstring' not in self.options:
                 continue
+            
             docstring = prepare_docstring(docstring)
             for line in http_directive(method, normalize_path(path), 
docstring):
                 yield line
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httpdomain-1.7.0/sphinxcontrib/httpdomain.py 
new/httpdomain-1.8.0/sphinxcontrib/httpdomain.py
--- old/httpdomain-1.7.0/sphinxcontrib/httpdomain.py    2018-07-01 
13:45:36.000000000 +0200
+++ new/httpdomain-1.8.0/sphinxcontrib/httpdomain.py    2021-09-23 
15:14:40.000000000 +0200
@@ -22,18 +22,27 @@
 from sphinx.roles import XRefRole
 from sphinx.domains import Domain, ObjType, Index
 from sphinx.directives import ObjectDescription, directives
+from sphinx.util import logging
 from sphinx.util.nodes import make_refnode
 from sphinx.util.docfields import GroupedField, TypedField
+from sphinx.util.docutils import Reporter, LoggingReporter
+from sphinx.locale import _
 
-# The env.get_doctree() lookup results in a pickle.load() call which is
-# expensive enough to dominate the runtime entirely when the number of 
endpoints
-# and references is large enough. The doctrees are generated during the read-
-# phase and we can cache their lookup during the write-phase significantly
-# improving performance.
-# Currently sphinxcontrib-httpdomain does not declare to support parallel read
-# support (parallel_read_safe is the default False) so we can simply use a
-# module global to hold the cache.
-_doctree_cache = {}
+logger = logging.getLogger(__name__)
+
+
+class DummyDocument(object):
+    """Used where the signature requires a docutils.node.Document but only its 
reporter
+    is being used.
+
+    Up until the current Sphinx 2.3.1 calls to env.get_doctree() (which would 
get
+    us said docutils.node.Document) result in pickle.load() calls which are 
expensive
+    enough to dominate the runtime entirely when the number of endpoints and 
references
+    is large enough.
+    """
+
+    def __init__(self, reporter):
+        self.reporter = reporter
 
 
 class DocRef(object):
@@ -55,7 +64,7 @@
     In 2014, RFC2616 was replaced by multiple RFCs (7230-7237)."""
 
     def __init__(self, section):
-        url = 'http://www.w3.org/Protocols/rfc2616/rfc2616-sec{0:d}.html'
+        url = 'https://www.w3.org/Protocols/rfc2616/rfc2616-sec{0:d}.html'
         url = url.format(int(section))
         super(RFC2616Ref, self).__init__(url, 'sec', section)
 
@@ -71,7 +80,7 @@
 class EventSourceRef(DocRef):
 
     def __init__(self, section):
-        url = 'http://www.w3.org/TR/eventsource/'
+        url = 'https://www.w3.org/TR/eventsource/'
         super(EventSourceRef, self).__init__(url, section, '')
 
 
@@ -79,7 +88,7 @@
     """Represents a reference to W3 Cross-Origin Resource Sharing 
recommendation."""
 
     def __init__(self, name, type):
-        url = 'http://www.w3.org/TR/cors/'
+        url = 'https://www.w3.org/TR/cors/'
         super(CORSRef, self).__init__(url, name, '-' + type)
 
 
@@ -259,27 +268,24 @@
     doc_field_types = [
         TypedField('parameter', label='Parameters',
                    names=('param', 'parameter', 'arg', 'argument'),
-                   typerolename='obj', typenames=('paramtype', 'type')),
+                   typenames=('paramtype', 'type')),
         TypedField('jsonparameter', label='JSON Parameters',
                    names=('jsonparameter', 'jsonparam', 'json'),
-                   typerolename='obj', typenames=('jsonparamtype', 
'jsontype')),
+                   typenames=('jsonparamtype', 'jsontype')),
         TypedField('requestjsonobject', label='Request JSON Object',
                    names=('reqjsonobj', 'reqjson', '<jsonobj', '<json'),
-                   typerolename='obj', typenames=('reqjsonobj', '<jsonobj')),
+                   typenames=('reqjsonobj', '<jsonobj')),
         TypedField('requestjsonarray', label='Request JSON Array of Objects',
                    names=('reqjsonarr', '<jsonarr'),
-                   typerolename='obj',
                    typenames=('reqjsonarrtype', '<jsonarrtype')),
         TypedField('responsejsonobject', label='Response JSON Object',
                    names=('resjsonobj', 'resjson', '>jsonobj', '>json'),
-                   typerolename='obj', typenames=('resjsonobj', '>jsonobj')),
+                   typenames=('resjsonobj', '>jsonobj')),
         TypedField('responsejsonarray', label='Response JSON Array of Objects',
                    names=('resjsonarr', '>jsonarr'),
-                   typerolename='obj',
                    typenames=('resjsonarrtype', '>jsonarrtype')),
         TypedField('queryparameter', label='Query Parameters',
                    names=('queryparameter', 'queryparam', 'qparam', 'query'),
-                   typerolename='obj',
                    typenames=('queryparamtype', 'querytype', 'qtype')),
         GroupedField('formparameter', label='Form Parameters',
                      names=('formparameter', 'formparam', 'fparam', 'form')),
@@ -410,6 +416,9 @@
             title = self.method.upper() + ' ' + title
         return title, target
 
+    def result_nodes(self, document, env, node, is_ref):
+        return [node], []
+
 
 class HTTPXRefMethodRole(XRefRole):
 
@@ -485,19 +494,19 @@
         elif status is None:
             return report_unknown_code()
         elif code == 226:
-            url = 'http://www.ietf.org/rfc/rfc3229.txt'
+            url = 'https://www.ietf.org/rfc/rfc3229.txt'
         elif code == 418:
-            url = 'http://www.ietf.org/rfc/rfc2324.txt'
+            url = 'https://www.ietf.org/rfc/rfc2324.txt'
         elif code == 429:
-            url = 'http://tools.ietf.org/html/rfc6585#section-4'
+            url = 'https://tools.ietf.org/html/rfc6585#section-4'
         elif code == 449:
-            url = 
'http://msdn.microsoft.com/en-us/library/dd891478(v=prot.10).aspx'
+            url = 
'https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-wdv/83ecf19f-e0f8-4706-aae5-ba618f52f100'
         elif code == 451:
-            url = 'http://www.ietf.org/rfc/rfc7725.txt'
+            url = 'https://www.ietf.org/rfc/rfc7725.txt'
         elif code in WEBDAV_STATUS_CODES:
-            url = 'http://tools.ietf.org/html/rfc4918#section-11.%d' % 
(WEBDAV_STATUS_CODES.index(code) + 1)
+            url = 'https://tools.ietf.org/html/rfc4918#section-11.%d' % 
(WEBDAV_STATUS_CODES.index(code) + 1)
         elif code in HTTP_STATUS_CODES:
-            url = 'http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html' \
+            url = 'https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html' \
                   '#sec10.' + ('%d.%d' % (code // 100, 1 + code % 100))
         else:
             url = ''
@@ -573,17 +582,17 @@
     label = 'HTTP'
 
     object_types = {
-        'options': ObjType('options', 'options', 'obj'),
-        'head': ObjType('head', 'head', 'obj'),
-        'post': ObjType('post', 'post', 'obj'),
-        'get': ObjType('get', 'get', 'obj'),
-        'put': ObjType('put', 'put', 'obj'),
-        'patch': ObjType('patch', 'patch', 'obj'),
-        'delete': ObjType('delete', 'delete', 'obj'),
-        'trace': ObjType('trace', 'trace', 'obj'),
-        'connect': ObjType('connect', 'connect', 'obj'),
-        'copy': ObjType('copy', 'copy', 'obj'),
-        'any': ObjType('any', 'any', 'obj')
+        'options': ObjType('options', 'options'),
+        'head': ObjType('head', 'head'),
+        'post': ObjType('post', 'post'),
+        'get': ObjType('get', 'get'),
+        'put': ObjType('put', 'put'),
+        'patch': ObjType('patch', 'patch'),
+        'delete': ObjType('delete', 'delete'),
+        'trace': ObjType('trace', 'trace'),
+        'connect': ObjType('connect', 'connect'),
+        'copy': ObjType('copy', 'copy'),
+        'any': ObjType('any', 'any')
     }
 
     directives = {
@@ -653,10 +662,10 @@
             if role is None:
                 return None
 
-            if fromdocname not in _doctree_cache:
-                _doctree_cache[fromdocname] = env.get_doctree(fromdocname)
-            doctree = _doctree_cache[fromdocname]
-
+            reporter = LoggingReporter(env.doc2path(fromdocname),
+                                       report_level=Reporter.WARNING_LEVEL,
+                                       halt_level=Reporter.SEVERE_LEVEL)
+            doctree = DummyDocument(reporter)
             resnode = role.result_nodes(doctree, env, node, None)[0][0]
             if isinstance(resnode, addnodes.pending_xref):
                 text = node[0][0]
@@ -691,6 +700,27 @@
                 anchor = http_resource_anchor(method, path)
                 yield (path, path, method, info[0], anchor, 1)
 
+    def merge_domaindata(self, docnames, otherdata):
+        """Merge domaindata from the workers/chunks when they return.
+
+        Called once per parallelization chunk.
+        Only used when sphinx is run in parallel mode.
+
+        :param docnames: a Set of the docnames that are part of the current 
chunk to merge
+        :param otherdata: the partial data calculated by the current chunk
+        """
+        for typ in self.object_types:
+            self_data = self.data[typ]
+            other_data = otherdata[typ]
+            for entry_point_name, entry_point_data in other_data.items():
+                if entry_point_name in self_data:
+                    logger.warning('duplicate HTTP %s method definition %s in 
%s, '
+                                   'other instance is in %s' %
+                                   (typ, entry_point_name,
+                                    
self.env.doc2path(other_data[entry_point_name][0]),
+                                    
self.env.doc2path(self_data[entry_point_name][0])))
+                else:
+                    self_data[entry_point_name] = entry_point_data
 
 class HTTPLexer(RegexLexer):
     """Lexer for HTTP sessions."""
@@ -757,8 +787,16 @@
     }
 
 
+def register_routingtable_as_label(app, document):
+    labels = app.env.domaindata['std']['labels']
+    labels['routingtable'] = 'http-routingtable', '', _('HTTP Routing Table')
+    anonlabels = app.env.domaindata['std']['anonlabels']
+    anonlabels['routingtable'] = 'http-routingtable', ''
+
+
 def setup(app):
     app.add_domain(HTTPDomain)
+    app.connect('doctree-read', register_routingtable_as_label)
 
     try:
         get_lexer_by_name('http')
@@ -769,3 +807,5 @@
     app.add_config_value('http_index_localname', 'HTTP Routing Table', True)
     app.add_config_value('http_strict_mode', True, None)
     app.add_config_value('http_headers_ignore_prefixes', ['X-'], None)
+    return {"parallel_read_safe": True,
+            "parallel_write_safe": True}

Reply via email to