We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Downloadable documentation is missing for versions 2.0 and 2.1 on readthedocs.org
For some reason downloadable documentation on https://readthedocs.org/projects/scrapy/downloads/ is available only up to version 1.8.

That's a minor issue, but I think that I'm not the only one who prefers to read technical papers in the pdf format (to be able to take notes).


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `docs/conf.py`
Content:
```
1 # Scrapy documentation build configuration file, created by
2 # sphinx-quickstart on Mon Nov 24 12:02:52 2008.
3 #
4 # This file is execfile()d with the current directory set to its containing dir.
5 #
6 # The contents of this file are pickled, so don't put values in the namespace
7 # that aren't pickleable (module imports are okay, they're removed automatically).
8 #
9 # All configuration values have a default; values that are commented out
10 # serve to show the default.
11 
12 import sys
13 from datetime import datetime
14 from os import path
15 
16 # If your extensions are in another directory, add it here. If the directory
17 # is relative to the documentation root, use os.path.abspath to make it
18 # absolute, like shown here.
19 sys.path.append(path.join(path.dirname(__file__), "_ext"))
20 sys.path.insert(0, path.dirname(path.dirname(__file__)))
21 
22 
23 # General configuration
24 # ---------------------
25 
26 # Add any Sphinx extension module names here, as strings. They can be extensions
27 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
28 extensions = [
29     'hoverxref.extension',
30     'notfound.extension',
31     'scrapydocs',
32     'sphinx.ext.autodoc',
33     'sphinx.ext.coverage',
34     'sphinx.ext.intersphinx',
35     'sphinx.ext.viewcode',
36 ]
37 
38 # Add any paths that contain templates here, relative to this directory.
39 templates_path = ['_templates']
40 
41 # The suffix of source filenames.
42 source_suffix = '.rst'
43 
44 # The encoding of source files.
45 #source_encoding = 'utf-8'
46 
47 # The master toctree document.
48 master_doc = 'index'
49 
50 # General information about the project.
51 project = 'Scrapy'
52 copyright = '2008–{}, Scrapy developers'.format(datetime.now().year)
53 
54 # The version info for the project you're documenting, acts as replacement for
55 # |version| and |release|, also used in various other places throughout the
56 # built documents.
57 #
58 # The short X.Y version.
59 try:
60     import scrapy
61     version = '.'.join(map(str, scrapy.version_info[:2]))
62     release = scrapy.__version__
63 except ImportError:
64     version = ''
65     release = ''
66 
67 # The language for content autogenerated by Sphinx. Refer to documentation
68 # for a list of supported languages.
69 language = 'en'
70 
71 # There are two options for replacing |today|: either, you set today to some
72 # non-false value, then it is used:
73 #today = ''
74 # Else, today_fmt is used as the format for a strftime call.
75 #today_fmt = '%B %d, %Y'
76 
77 # List of documents that shouldn't be included in the build.
78 #unused_docs = []
79 
80 exclude_patterns = ['build']
81 
82 # List of directories, relative to source directory, that shouldn't be searched
83 # for source files.
84 exclude_trees = ['.build']
85 
86 # The reST default role (used for this markup: `text`) to use for all documents.
87 #default_role = None
88 
89 # If true, '()' will be appended to :func: etc. cross-reference text.
90 #add_function_parentheses = True
91 
92 # If true, the current module name will be prepended to all description
93 # unit titles (such as .. function::).
94 #add_module_names = True
95 
96 # If true, sectionauthor and moduleauthor directives will be shown in the
97 # output. They are ignored by default.
98 #show_authors = False
99 
100 # The name of the Pygments (syntax highlighting) style to use.
101 pygments_style = 'sphinx'
102 
103 
104 # Options for HTML output
105 # -----------------------
106 
107 # The theme to use for HTML and HTML Help pages.  See the documentation for
108 # a list of builtin themes.
109 html_theme = 'sphinx_rtd_theme'
110 
111 # Theme options are theme-specific and customize the look and feel of a theme
112 # further.  For a list of options available for each theme, see the
113 # documentation.
114 #html_theme_options = {}
115 
116 # Add any paths that contain custom themes here, relative to this directory.
117 # Add path to the RTD explicitly to robustify builds (otherwise might
118 # fail in a clean Debian build env)
119 import sphinx_rtd_theme
120 html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
121 
122 
123 # The style sheet to use for HTML and HTML Help pages. A file of that name
124 # must exist either in Sphinx' static/ path, or in one of the custom paths
125 # given in html_static_path.
126 # html_style = 'scrapydoc.css'
127 
128 # The name for this set of Sphinx documents.  If None, it defaults to
129 # "<project> v<release> documentation".
130 #html_title = None
131 
132 # A shorter title for the navigation bar.  Default is the same as html_title.
133 #html_short_title = None
134 
135 # The name of an image file (relative to this directory) to place at the top
136 # of the sidebar.
137 #html_logo = None
138 
139 # The name of an image file (within the static path) to use as favicon of the
140 # docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
141 # pixels large.
142 #html_favicon = None
143 
144 # Add any paths that contain custom static files (such as style sheets) here,
145 # relative to this directory. They are copied after the builtin static files,
146 # so a file named "default.css" will overwrite the builtin "default.css".
147 html_static_path = ['_static']
148 
149 # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
150 # using the given strftime format.
151 html_last_updated_fmt = '%b %d, %Y'
152 
153 # Custom sidebar templates, maps document names to template names.
154 #html_sidebars = {}
155 
156 # Additional templates that should be rendered to pages, maps page names to
157 # template names.
158 #html_additional_pages = {}
159 
160 # If false, no module index is generated.
161 #html_use_modindex = True
162 
163 # If false, no index is generated.
164 #html_use_index = True
165 
166 # If true, the index is split into individual pages for each letter.
167 #html_split_index = False
168 
169 # If true, the reST sources are included in the HTML build as _sources/<name>.
170 html_copy_source = True
171 
172 # If true, an OpenSearch description file will be output, and all pages will
173 # contain a <link> tag referring to it.  The value of this option must be the
174 # base URL from which the finished HTML is served.
175 #html_use_opensearch = ''
176 
177 # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
178 #html_file_suffix = ''
179 
180 # Output file base name for HTML help builder.
181 htmlhelp_basename = 'Scrapydoc'
182 
183 
184 # Options for LaTeX output
185 # ------------------------
186 
187 # The paper size ('letter' or 'a4').
188 #latex_paper_size = 'letter'
189 
190 # The font size ('10pt', '11pt' or '12pt').
191 #latex_font_size = '10pt'
192 
193 # Grouping the document tree into LaTeX files. List of tuples
194 # (source start file, target name, title, author, document class [howto/manual]).
195 latex_documents = [
196   ('index', 'Scrapy.tex', 'Scrapy Documentation',
197    'Scrapy developers', 'manual'),
198 ]
199 
200 # The name of an image file (relative to this directory) to place at the top of
201 # the title page.
202 #latex_logo = None
203 
204 # For "manual" documents, if this is true, then toplevel headings are parts,
205 # not chapters.
206 #latex_use_parts = False
207 
208 # Additional stuff for the LaTeX preamble.
209 #latex_preamble = ''
210 
211 # Documents to append as an appendix to all manuals.
212 #latex_appendices = []
213 
214 # If false, no module index is generated.
215 #latex_use_modindex = True
216 
217 
218 # Options for the linkcheck builder
219 # ---------------------------------
220 
221 # A list of regular expressions that match URIs that should not be checked when
222 # doing a linkcheck build.
223 linkcheck_ignore = [
224     'http://localhost:\d+', 'http://hg.scrapy.org',
225     'http://directory.google.com/'
226 ]
227 
228 
229 # Options for the Coverage extension
230 # ----------------------------------
231 coverage_ignore_pyobjects = [
232     # Contract’s add_pre_hook and add_post_hook are not documented because
233     # they should be transparent to contract developers, for whom pre_hook and
234     # post_hook should be the actual concern.
235     r'\bContract\.add_(pre|post)_hook$',
236 
237     # ContractsManager is an internal class, developers are not expected to
238     # interact with it directly in any way.
239     r'\bContractsManager\b$',
240 
241     # For default contracts we only want to document their general purpose in
242     # their __init__ method, the methods they reimplement to achieve that purpose
243     # should be irrelevant to developers using those contracts.
244     r'\w+Contract\.(adjust_request_args|(pre|post)_process)$',
245 
246     # Methods of downloader middlewares are not documented, only the classes
247     # themselves, since downloader middlewares are controlled through Scrapy
248     # settings.
249     r'^scrapy\.downloadermiddlewares\.\w*?\.(\w*?Middleware|DownloaderStats)\.',
250 
251     # Base classes of downloader middlewares are implementation details that
252     # are not meant for users.
253     r'^scrapy\.downloadermiddlewares\.\w*?\.Base\w*?Middleware',
254 
255     # Private exception used by the command-line interface implementation.
256     r'^scrapy\.exceptions\.UsageError',
257 
258     # Methods of BaseItemExporter subclasses are only documented in
259     # BaseItemExporter.
260     r'^scrapy\.exporters\.(?!BaseItemExporter\b)\w*?\.',
261 
262     # Extension behavior is only modified through settings. Methods of
263     # extension classes, as well as helper functions, are implementation
264     # details that are not documented.
265     r'^scrapy\.extensions\.[a-z]\w*?\.[A-Z]\w*?\.',  # methods
266     r'^scrapy\.extensions\.[a-z]\w*?\.[a-z]',  # helper functions
267 
268     # Never documented before, and deprecated now.
269     r'^scrapy\.item\.DictItem$',
270     r'^scrapy\.linkextractors\.FilteringLinkExtractor$',
271 
272     # Implementation detail of LxmlLinkExtractor
273     r'^scrapy\.linkextractors\.lxmlhtml\.LxmlParserLinkExtractor',
274 ]
275 
276 
277 # Options for the InterSphinx extension
278 # -------------------------------------
279 
280 intersphinx_mapping = {
281     'coverage': ('https://coverage.readthedocs.io/en/stable', None),
282     'cssselect': ('https://cssselect.readthedocs.io/en/latest', None),
283     'pytest': ('https://docs.pytest.org/en/latest', None),
284     'python': ('https://docs.python.org/3', None),
285     'sphinx': ('https://www.sphinx-doc.org/en/master', None),
286     'tox': ('https://tox.readthedocs.io/en/latest', None),
287     'twisted': ('https://twistedmatrix.com/documents/current', None),
288     'twistedapi': ('https://twistedmatrix.com/documents/current/api', None),
289 }
290 
291 
292 # Options for sphinx-hoverxref options
293 # ------------------------------------
294 
295 hoverxref_auto_ref = True
296 hoverxref_role_types = {
297     "class": "tooltip",
298     "confval": "tooltip",
299     "hoverxref": "tooltip",
300     "mod": "tooltip",
301     "ref": "tooltip",
302 }
303
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/docs/conf.py b/docs/conf.py
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -100,6 +100,9 @@
 # The name of the Pygments (syntax highlighting) style to use.
 pygments_style = 'sphinx'
 
+# List of Sphinx warnings that will not be raised
+suppress_warnings = ['epub.unknown_project_files']
+
 
 # Options for HTML output
 # -----------------------

{"golden_diff": "diff --git a/docs/conf.py b/docs/conf.py\n--- a/docs/conf.py\n+++ b/docs/conf.py\n@@ -100,6 +100,9 @@\n # The name of the Pygments (syntax highlighting) style to use.\n pygments_style = 'sphinx'\n \n+# List of Sphinx warnings that will not be raised\n+suppress_warnings = ['epub.unknown_project_files']\n+\n \n # Options for HTML output\n # -----------------------\n", "issue": "Downloadable documentation is missing for versions 2.0 and 2.1 on readthedocs.org\nFor some reason downloadable documentation on https://readthedocs.org/projects/scrapy/downloads/ is available only up to version 1.8.\r\n\r\nThat's a minor issue, but I think that I'm not the only one who prefers to read technical papers in the pdf format (to be able to take notes).\r\n\n", "before_files": [{"content": "# Scrapy documentation build configuration file, created by\n# sphinx-quickstart on Mon Nov 24 12:02:52 2008.\n#\n# This file is execfile()d with the current directory set to its containing dir.\n#\n# The contents of this file are pickled, so don't put values in the namespace\n# that aren't pickleable (module imports are okay, they're removed automatically).\n#\n# All configuration values have a default; values that are commented out\n# serve to show the default.\n\nimport sys\nfrom datetime import datetime\nfrom os import path\n\n# If your extensions are in another directory, add it here. If the directory\n# is relative to the documentation root, use os.path.abspath to make it\n# absolute, like shown here.\nsys.path.append(path.join(path.dirname(__file__), \"_ext\"))\nsys.path.insert(0, path.dirname(path.dirname(__file__)))\n\n\n# General configuration\n# ---------------------\n\n# Add any Sphinx extension module names here, as strings. They can be extensions\n# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.\nextensions = [\n    'hoverxref.extension',\n    'notfound.extension',\n    'scrapydocs',\n    'sphinx.ext.autodoc',\n    'sphinx.ext.coverage',\n    'sphinx.ext.intersphinx',\n    'sphinx.ext.viewcode',\n]\n\n# Add any paths that contain templates here, relative to this directory.\ntemplates_path = ['_templates']\n\n# The suffix of source filenames.\nsource_suffix = '.rst'\n\n# The encoding of source files.\n#source_encoding = 'utf-8'\n\n# The master toctree document.\nmaster_doc = 'index'\n\n# General information about the project.\nproject = 'Scrapy'\ncopyright = '2008\u2013{}, Scrapy developers'.format(datetime.now().year)\n\n# The version info for the project you're documenting, acts as replacement for\n# |version| and |release|, also used in various other places throughout the\n# built documents.\n#\n# The short X.Y version.\ntry:\n    import scrapy\n    version = '.'.join(map(str, scrapy.version_info[:2]))\n    release = scrapy.__version__\nexcept ImportError:\n    version = ''\n    release = ''\n\n# The language for content autogenerated by Sphinx. Refer to documentation\n# for a list of supported languages.\nlanguage = 'en'\n\n# There are two options for replacing |today|: either, you set today to some\n# non-false value, then it is used:\n#today = ''\n# Else, today_fmt is used as the format for a strftime call.\n#today_fmt = '%B %d, %Y'\n\n# List of documents that shouldn't be included in the build.\n#unused_docs = []\n\nexclude_patterns = ['build']\n\n# List of directories, relative to source directory, that shouldn't be searched\n# for source files.\nexclude_trees = ['.build']\n\n# The reST default role (used for this markup: `text`) to use for all documents.\n#default_role = None\n\n# If true, '()' will be appended to :func: etc. cross-reference text.\n#add_function_parentheses = True\n\n# If true, the current module name will be prepended to all description\n# unit titles (such as .. function::).\n#add_module_names = True\n\n# If true, sectionauthor and moduleauthor directives will be shown in the\n# output. They are ignored by default.\n#show_authors = False\n\n# The name of the Pygments (syntax highlighting) style to use.\npygments_style = 'sphinx'\n\n\n# Options for HTML output\n# -----------------------\n\n# The theme to use for HTML and HTML Help pages.  See the documentation for\n# a list of builtin themes.\nhtml_theme = 'sphinx_rtd_theme'\n\n# Theme options are theme-specific and customize the look and feel of a theme\n# further.  For a list of options available for each theme, see the\n# documentation.\n#html_theme_options = {}\n\n# Add any paths that contain custom themes here, relative to this directory.\n# Add path to the RTD explicitly to robustify builds (otherwise might\n# fail in a clean Debian build env)\nimport sphinx_rtd_theme\nhtml_theme_path = [sphinx_rtd_theme.get_html_theme_path()]\n\n\n# The style sheet to use for HTML and HTML Help pages. A file of that name\n# must exist either in Sphinx' static/ path, or in one of the custom paths\n# given in html_static_path.\n# html_style = 'scrapydoc.css'\n\n# The name for this set of Sphinx documents.  If None, it defaults to\n# \"<project> v<release> documentation\".\n#html_title = None\n\n# A shorter title for the navigation bar.  Default is the same as html_title.\n#html_short_title = None\n\n# The name of an image file (relative to this directory) to place at the top\n# of the sidebar.\n#html_logo = None\n\n# The name of an image file (within the static path) to use as favicon of the\n# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32\n# pixels large.\n#html_favicon = None\n\n# Add any paths that contain custom static files (such as style sheets) here,\n# relative to this directory. They are copied after the builtin static files,\n# so a file named \"default.css\" will overwrite the builtin \"default.css\".\nhtml_static_path = ['_static']\n\n# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,\n# using the given strftime format.\nhtml_last_updated_fmt = '%b %d, %Y'\n\n# Custom sidebar templates, maps document names to template names.\n#html_sidebars = {}\n\n# Additional templates that should be rendered to pages, maps page names to\n# template names.\n#html_additional_pages = {}\n\n# If false, no module index is generated.\n#html_use_modindex = True\n\n# If false, no index is generated.\n#html_use_index = True\n\n# If true, the index is split into individual pages for each letter.\n#html_split_index = False\n\n# If true, the reST sources are included in the HTML build as _sources/<name>.\nhtml_copy_source = True\n\n# If true, an OpenSearch description file will be output, and all pages will\n# contain a <link> tag referring to it.  The value of this option must be the\n# base URL from which the finished HTML is served.\n#html_use_opensearch = ''\n\n# If nonempty, this is the file name suffix for HTML files (e.g. \".xhtml\").\n#html_file_suffix = ''\n\n# Output file base name for HTML help builder.\nhtmlhelp_basename = 'Scrapydoc'\n\n\n# Options for LaTeX output\n# ------------------------\n\n# The paper size ('letter' or 'a4').\n#latex_paper_size = 'letter'\n\n# The font size ('10pt', '11pt' or '12pt').\n#latex_font_size = '10pt'\n\n# Grouping the document tree into LaTeX files. List of tuples\n# (source start file, target name, title, author, document class [howto/manual]).\nlatex_documents = [\n  ('index', 'Scrapy.tex', 'Scrapy Documentation',\n   'Scrapy developers', 'manual'),\n]\n\n# The name of an image file (relative to this directory) to place at the top of\n# the title page.\n#latex_logo = None\n\n# For \"manual\" documents, if this is true, then toplevel headings are parts,\n# not chapters.\n#latex_use_parts = False\n\n# Additional stuff for the LaTeX preamble.\n#latex_preamble = ''\n\n# Documents to append as an appendix to all manuals.\n#latex_appendices = []\n\n# If false, no module index is generated.\n#latex_use_modindex = True\n\n\n# Options for the linkcheck builder\n# ---------------------------------\n\n# A list of regular expressions that match URIs that should not be checked when\n# doing a linkcheck build.\nlinkcheck_ignore = [\n    'http://localhost:\\d+', 'http://hg.scrapy.org',\n    'http://directory.google.com/'\n]\n\n\n# Options for the Coverage extension\n# ----------------------------------\ncoverage_ignore_pyobjects = [\n    # Contract\u2019s add_pre_hook and add_post_hook are not documented because\n    # they should be transparent to contract developers, for whom pre_hook and\n    # post_hook should be the actual concern.\n    r'\\bContract\\.add_(pre|post)_hook$',\n\n    # ContractsManager is an internal class, developers are not expected to\n    # interact with it directly in any way.\n    r'\\bContractsManager\\b$',\n\n    # For default contracts we only want to document their general purpose in\n    # their __init__ method, the methods they reimplement to achieve that purpose\n    # should be irrelevant to developers using those contracts.\n    r'\\w+Contract\\.(adjust_request_args|(pre|post)_process)$',\n\n    # Methods of downloader middlewares are not documented, only the classes\n    # themselves, since downloader middlewares are controlled through Scrapy\n    # settings.\n    r'^scrapy\\.downloadermiddlewares\\.\\w*?\\.(\\w*?Middleware|DownloaderStats)\\.',\n\n    # Base classes of downloader middlewares are implementation details that\n    # are not meant for users.\n    r'^scrapy\\.downloadermiddlewares\\.\\w*?\\.Base\\w*?Middleware',\n\n    # Private exception used by the command-line interface implementation.\n    r'^scrapy\\.exceptions\\.UsageError',\n\n    # Methods of BaseItemExporter subclasses are only documented in\n    # BaseItemExporter.\n    r'^scrapy\\.exporters\\.(?!BaseItemExporter\\b)\\w*?\\.',\n\n    # Extension behavior is only modified through settings. Methods of\n    # extension classes, as well as helper functions, are implementation\n    # details that are not documented.\n    r'^scrapy\\.extensions\\.[a-z]\\w*?\\.[A-Z]\\w*?\\.',  # methods\n    r'^scrapy\\.extensions\\.[a-z]\\w*?\\.[a-z]',  # helper functions\n\n    # Never documented before, and deprecated now.\n    r'^scrapy\\.item\\.DictItem$',\n    r'^scrapy\\.linkextractors\\.FilteringLinkExtractor$',\n\n    # Implementation detail of LxmlLinkExtractor\n    r'^scrapy\\.linkextractors\\.lxmlhtml\\.LxmlParserLinkExtractor',\n]\n\n\n# Options for the InterSphinx extension\n# -------------------------------------\n\nintersphinx_mapping = {\n    'coverage': ('https://coverage.readthedocs.io/en/stable', None),\n    'cssselect': ('https://cssselect.readthedocs.io/en/latest', None),\n    'pytest': ('https://docs.pytest.org/en/latest', None),\n    'python': ('https://docs.python.org/3', None),\n    'sphinx': ('https://www.sphinx-doc.org/en/master', None),\n    'tox': ('https://tox.readthedocs.io/en/latest', None),\n    'twisted': ('https://twistedmatrix.com/documents/current', None),\n    'twistedapi': ('https://twistedmatrix.com/documents/current/api', None),\n}\n\n\n# Options for sphinx-hoverxref options\n# ------------------------------------\n\nhoverxref_auto_ref = True\nhoverxref_role_types = {\n    \"class\": \"tooltip\",\n    \"confval\": \"tooltip\",\n    \"hoverxref\": \"tooltip\",\n    \"mod\": \"tooltip\",\n    \"ref\": \"tooltip\",\n}\n", "path": "docs/conf.py"}], "after_files": [{"content": "# Scrapy documentation build configuration file, created by\n# sphinx-quickstart on Mon Nov 24 12:02:52 2008.\n#\n# This file is execfile()d with the current directory set to its containing dir.\n#\n# The contents of this file are pickled, so don't put values in the namespace\n# that aren't pickleable (module imports are okay, they're removed automatically).\n#\n# All configuration values have a default; values that are commented out\n# serve to show the default.\n\nimport sys\nfrom datetime import datetime\nfrom os import path\n\n# If your extensions are in another directory, add it here. If the directory\n# is relative to the documentation root, use os.path.abspath to make it\n# absolute, like shown here.\nsys.path.append(path.join(path.dirname(__file__), \"_ext\"))\nsys.path.insert(0, path.dirname(path.dirname(__file__)))\n\n\n# General configuration\n# ---------------------\n\n# Add any Sphinx extension module names here, as strings. They can be extensions\n# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.\nextensions = [\n    'hoverxref.extension',\n    'notfound.extension',\n    'scrapydocs',\n    'sphinx.ext.autodoc',\n    'sphinx.ext.coverage',\n    'sphinx.ext.intersphinx',\n    'sphinx.ext.viewcode',\n]\n\n# Add any paths that contain templates here, relative to this directory.\ntemplates_path = ['_templates']\n\n# The suffix of source filenames.\nsource_suffix = '.rst'\n\n# The encoding of source files.\n#source_encoding = 'utf-8'\n\n# The master toctree document.\nmaster_doc = 'index'\n\n# General information about the project.\nproject = 'Scrapy'\ncopyright = '2008\u2013{}, Scrapy developers'.format(datetime.now().year)\n\n# The version info for the project you're documenting, acts as replacement for\n# |version| and |release|, also used in various other places throughout the\n# built documents.\n#\n# The short X.Y version.\ntry:\n    import scrapy\n    version = '.'.join(map(str, scrapy.version_info[:2]))\n    release = scrapy.__version__\nexcept ImportError:\n    version = ''\n    release = ''\n\n# The language for content autogenerated by Sphinx. Refer to documentation\n# for a list of supported languages.\nlanguage = 'en'\n\n# There are two options for replacing |today|: either, you set today to some\n# non-false value, then it is used:\n#today = ''\n# Else, today_fmt is used as the format for a strftime call.\n#today_fmt = '%B %d, %Y'\n\n# List of documents that shouldn't be included in the build.\n#unused_docs = []\n\nexclude_patterns = ['build']\n\n# List of directories, relative to source directory, that shouldn't be searched\n# for source files.\nexclude_trees = ['.build']\n\n# The reST default role (used for this markup: `text`) to use for all documents.\n#default_role = None\n\n# If true, '()' will be appended to :func: etc. cross-reference text.\n#add_function_parentheses = True\n\n# If true, the current module name will be prepended to all description\n# unit titles (such as .. function::).\n#add_module_names = True\n\n# If true, sectionauthor and moduleauthor directives will be shown in the\n# output. They are ignored by default.\n#show_authors = False\n\n# The name of the Pygments (syntax highlighting) style to use.\npygments_style = 'sphinx'\n\n# List of Sphinx warnings that will not be raised\nsuppress_warnings = ['epub.unknown_project_files']\n\n\n# Options for HTML output\n# -----------------------\n\n# The theme to use for HTML and HTML Help pages.  See the documentation for\n# a list of builtin themes.\nhtml_theme = 'sphinx_rtd_theme'\n\n# Theme options are theme-specific and customize the look and feel of a theme\n# further.  For a list of options available for each theme, see the\n# documentation.\n#html_theme_options = {}\n\n# Add any paths that contain custom themes here, relative to this directory.\n# Add path to the RTD explicitly to robustify builds (otherwise might\n# fail in a clean Debian build env)\nimport sphinx_rtd_theme\nhtml_theme_path = [sphinx_rtd_theme.get_html_theme_path()]\n\n\n# The style sheet to use for HTML and HTML Help pages. A file of that name\n# must exist either in Sphinx' static/ path, or in one of the custom paths\n# given in html_static_path.\n# html_style = 'scrapydoc.css'\n\n# The name for this set of Sphinx documents.  If None, it defaults to\n# \"<project> v<release> documentation\".\n#html_title = None\n\n# A shorter title for the navigation bar.  Default is the same as html_title.\n#html_short_title = None\n\n# The name of an image file (relative to this directory) to place at the top\n# of the sidebar.\n#html_logo = None\n\n# The name of an image file (within the static path) to use as favicon of the\n# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32\n# pixels large.\n#html_favicon = None\n\n# Add any paths that contain custom static files (such as style sheets) here,\n# relative to this directory. They are copied after the builtin static files,\n# so a file named \"default.css\" will overwrite the builtin \"default.css\".\nhtml_static_path = ['_static']\n\n# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,\n# using the given strftime format.\nhtml_last_updated_fmt = '%b %d, %Y'\n\n# Custom sidebar templates, maps document names to template names.\n#html_sidebars = {}\n\n# Additional templates that should be rendered to pages, maps page names to\n# template names.\n#html_additional_pages = {}\n\n# If false, no module index is generated.\n#html_use_modindex = True\n\n# If false, no index is generated.\n#html_use_index = True\n\n# If true, the index is split into individual pages for each letter.\n#html_split_index = False\n\n# If true, the reST sources are included in the HTML build as _sources/<name>.\nhtml_copy_source = True\n\n# If true, an OpenSearch description file will be output, and all pages will\n# contain a <link> tag referring to it.  The value of this option must be the\n# base URL from which the finished HTML is served.\n#html_use_opensearch = ''\n\n# If nonempty, this is the file name suffix for HTML files (e.g. \".xhtml\").\n#html_file_suffix = ''\n\n# Output file base name for HTML help builder.\nhtmlhelp_basename = 'Scrapydoc'\n\n\n# Options for LaTeX output\n# ------------------------\n\n# The paper size ('letter' or 'a4').\n#latex_paper_size = 'letter'\n\n# The font size ('10pt', '11pt' or '12pt').\n#latex_font_size = '10pt'\n\n# Grouping the document tree into LaTeX files. List of tuples\n# (source start file, target name, title, author, document class [howto/manual]).\nlatex_documents = [\n  ('index', 'Scrapy.tex', 'Scrapy Documentation',\n   'Scrapy developers', 'manual'),\n]\n\n# The name of an image file (relative to this directory) to place at the top of\n# the title page.\n#latex_logo = None\n\n# For \"manual\" documents, if this is true, then toplevel headings are parts,\n# not chapters.\n#latex_use_parts = False\n\n# Additional stuff for the LaTeX preamble.\n#latex_preamble = ''\n\n# Documents to append as an appendix to all manuals.\n#latex_appendices = []\n\n# If false, no module index is generated.\n#latex_use_modindex = True\n\n\n# Options for the linkcheck builder\n# ---------------------------------\n\n# A list of regular expressions that match URIs that should not be checked when\n# doing a linkcheck build.\nlinkcheck_ignore = [\n    'http://localhost:\\d+', 'http://hg.scrapy.org',\n    'http://directory.google.com/'\n]\n\n\n# Options for the Coverage extension\n# ----------------------------------\ncoverage_ignore_pyobjects = [\n    # Contract\u2019s add_pre_hook and add_post_hook are not documented because\n    # they should be transparent to contract developers, for whom pre_hook and\n    # post_hook should be the actual concern.\n    r'\\bContract\\.add_(pre|post)_hook$',\n\n    # ContractsManager is an internal class, developers are not expected to\n    # interact with it directly in any way.\n    r'\\bContractsManager\\b$',\n\n    # For default contracts we only want to document their general purpose in\n    # their __init__ method, the methods they reimplement to achieve that purpose\n    # should be irrelevant to developers using those contracts.\n    r'\\w+Contract\\.(adjust_request_args|(pre|post)_process)$',\n\n    # Methods of downloader middlewares are not documented, only the classes\n    # themselves, since downloader middlewares are controlled through Scrapy\n    # settings.\n    r'^scrapy\\.downloadermiddlewares\\.\\w*?\\.(\\w*?Middleware|DownloaderStats)\\.',\n\n    # Base classes of downloader middlewares are implementation details that\n    # are not meant for users.\n    r'^scrapy\\.downloadermiddlewares\\.\\w*?\\.Base\\w*?Middleware',\n\n    # Private exception used by the command-line interface implementation.\n    r'^scrapy\\.exceptions\\.UsageError',\n\n    # Methods of BaseItemExporter subclasses are only documented in\n    # BaseItemExporter.\n    r'^scrapy\\.exporters\\.(?!BaseItemExporter\\b)\\w*?\\.',\n\n    # Extension behavior is only modified through settings. Methods of\n    # extension classes, as well as helper functions, are implementation\n    # details that are not documented.\n    r'^scrapy\\.extensions\\.[a-z]\\w*?\\.[A-Z]\\w*?\\.',  # methods\n    r'^scrapy\\.extensions\\.[a-z]\\w*?\\.[a-z]',  # helper functions\n\n    # Never documented before, and deprecated now.\n    r'^scrapy\\.item\\.DictItem$',\n    r'^scrapy\\.linkextractors\\.FilteringLinkExtractor$',\n\n    # Implementation detail of LxmlLinkExtractor\n    r'^scrapy\\.linkextractors\\.lxmlhtml\\.LxmlParserLinkExtractor',\n]\n\n\n# Options for the InterSphinx extension\n# -------------------------------------\n\nintersphinx_mapping = {\n    'coverage': ('https://coverage.readthedocs.io/en/stable', None),\n    'cssselect': ('https://cssselect.readthedocs.io/en/latest', None),\n    'pytest': ('https://docs.pytest.org/en/latest', None),\n    'python': ('https://docs.python.org/3', None),\n    'sphinx': ('https://www.sphinx-doc.org/en/master', None),\n    'tox': ('https://tox.readthedocs.io/en/latest', None),\n    'twisted': ('https://twistedmatrix.com/documents/current', None),\n    'twistedapi': ('https://twistedmatrix.com/documents/current/api', None),\n}\n\n\n# Options for sphinx-hoverxref options\n# ------------------------------------\n\nhoverxref_auto_ref = True\nhoverxref_role_types = {\n    \"class\": \"tooltip\",\n    \"confval\": \"tooltip\",\n    \"hoverxref\": \"tooltip\",\n    \"mod\": \"tooltip\",\n    \"ref\": \"tooltip\",\n}\n", "path": "docs/conf.py"}]}