We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
PostgreSQL Cache: Deadlock
```
(psycopg2.extensions.TransactionRollbackError) deadlock detected
DETAIL:  Process 12750 waits for ShareLock on transaction 632693475; blocked by process 10080.
Process 10080 waits for ShareLock on transaction 632693479; blocked by process 12750.
HINT:  See server log for query details.
CONTEXT:  while deleting tuple (426,1) in relation "cache"
 [SQL: 'DELETE FROM cache WHERE ttl IS NOT NULL AND now() > ttl;']
```
Check compliance with Dockerflow spec
See https://github.com/mozilla-services/Dockerflow

* `$PORT` env variable
* Copy to `/app`
* `app` group:user
* `USER` directive
* `ENTRYPOINT` directive
* ...

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `setup.py`
Content:
```
1 import codecs
2 import os
3 from setuptools import setup, find_packages
4 
5 here = os.path.abspath(os.path.dirname(__file__))
6 
7 
8 def read_file(filename):
9     """Open a related file and return its content."""
10     with codecs.open(os.path.join(here, filename), encoding='utf-8') as f:
11         content = f.read()
12     return content
13 
14 
15 README = read_file('README.rst')
16 CHANGELOG = read_file('CHANGELOG.rst')
17 CONTRIBUTORS = read_file('CONTRIBUTORS.rst')
18 
19 REQUIREMENTS = [
20     'bcrypt',
21     'colander >= 1.4.0',
22     'cornice >= 2.4',
23     'cornice_swagger >= 0.5.1',
24     'jsonschema',
25     'jsonpatch',
26     'logging-color-formatter >= 1.0.1',  # Message interpolations.
27     'python-dateutil',
28     'pyramid > 1.8, < 1.9b1',
29     'pyramid_multiauth >= 0.8',  # User on policy selected event.
30     'transaction',
31     # pyramid_tm changed the location of their tween in 2.x and one of
32     # our tests fails on 2.0.
33     'pyramid_tm >= 2.1',
34     'requests',
35     'waitress',
36     'ujson >= 1.35'
37 ]
38 
39 POSTGRESQL_REQUIRES = [
40     'SQLAlchemy',
41     'psycopg2 > 2.5',
42     'zope.sqlalchemy',
43 ]
44 
45 REDIS_REQUIRES = [
46     'kinto_redis'
47 ]
48 
49 SETUP_REQUIRES = [
50     'pytest-runner'
51 ]
52 
53 TEST_REQUIREMENTS = [
54     'bravado_core',
55     'pytest',
56     'WebTest'
57 ]
58 
59 DEPENDENCY_LINKS = [
60 ]
61 
62 MONITORING_REQUIRES = [
63     'raven',
64     'statsd',
65     'newrelic',
66     'werkzeug',
67 ]
68 
69 ENTRY_POINTS = {
70     'paste.app_factory': [
71         'main = kinto:main',
72     ],
73     'console_scripts': [
74         'kinto = kinto.__main__:main'
75     ],
76 }
77 
78 
79 setup(name='kinto',
80       version='7.3.2.dev0',
81       description='Kinto Web Service - Store, Sync, Share, and Self-Host.',
82       long_description="{}\n\n{}\n\n{}".format(README, CHANGELOG, CONTRIBUTORS),
83       license='Apache License (2.0)',
84       classifiers=[
85           "Programming Language :: Python",
86           "Programming Language :: Python :: 3",
87           "Programming Language :: Python :: 3.5",
88           "Programming Language :: Python :: 3.6",
89           "Programming Language :: Python :: Implementation :: CPython",
90           "Topic :: Internet :: WWW/HTTP",
91           "Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
92           "License :: OSI Approved :: Apache Software License"
93       ],
94       keywords="web sync json storage services",
95       author='Mozilla Services',
96       author_email='storage-team@mozilla.com',
97       url='https://github.com/Kinto/kinto',
98       packages=find_packages(),
99       package_data={'': ['*.rst', '*.py', '*.yaml']},
100       include_package_data=True,
101       zip_safe=False,
102       setup_requires=SETUP_REQUIRES,
103       tests_require=TEST_REQUIREMENTS,
104       install_requires=REQUIREMENTS,
105       extras_require={
106           'redis': REDIS_REQUIRES,
107           'postgresql': POSTGRESQL_REQUIRES,
108           'monitoring': MONITORING_REQUIRES,
109       },
110       test_suite="tests",
111       dependency_links=DEPENDENCY_LINKS,
112       entry_points=ENTRY_POINTS)
113
```

Path: `docs/conf.py`
Content:
```
1 #
2 # Kinto documentation build configuration file, created by
3 # sphinx-quickstart on Mon Feb  2 15:08:06 2015.
4 #
5 # This file is execfile()d with the current directory set to its
6 # containing dir.
7 #
8 # Note that not all possible configuration values are present in this
9 # autogenerated file.
10 #
11 # All configuration values have a default; values that are commented out
12 # serve to show the default.
13 
14 import os
15 import sys
16 
17 __HERE__ = os.path.dirname(os.path.abspath(__file__))
18 
19 on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
20 
21 if not on_rtd:  # only import and set the theme if we're building docs locally
22     import sphinx_rtd_theme
23     html_theme = 'sphinx_rtd_theme'
24     html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
25 
26 # otherwise, readthedocs.io uses their theme by default, so no need to specify
27 # it
28 
29 # If extensions (or modules to document with autodoc) are in another directory,
30 # add these directories to sys.path here. If the directory is relative to the
31 # documentation root, use os.path.abspath to make it absolute, like shown here.
32 sys.path.insert(0, os.path.abspath(os.path.join('..')))
33 
34 # -- General configuration ------------------------------------------------
35 
36 # If your documentation needs a minimal Sphinx version, state it here.
37 # needs_sphinx = '1.0'
38 
39 # Add any Sphinx extension module names here, as strings. They can be
40 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
41 # ones.
42 extensions = [
43     'sphinx.ext.autodoc',
44     'sphinxcontrib.httpdomain',
45     'sphinx.ext.extlinks',
46     'sphinx.ext.intersphinx',
47 ]
48 
49 # Add any paths that contain templates here, relative to this directory.
50 templates_path = ['_templates']
51 html_additional_pages = {
52     'index': 'indexcontent.html',
53 }
54 
55 
56 # The suffix of source filenames.
57 source_suffix = '.rst'
58 
59 # The encoding of source files.
60 # source_encoding = 'utf-8-sig'
61 
62 # The master toctree document.
63 master_doc = 'index'
64 
65 # General information about the project.
66 project = 'Kinto'
67 copyright = '2015-2017 — Mozilla Services'
68 
69 # The version info for the project you're documenting, acts as replacement for
70 # |version| and |release|, also used in various other places throughout the
71 # built documents.
72 #
73 # The short X.Y version.
74 version = '7.0'
75 # The full version, including alpha/beta/rc tags.
76 release = '7.3.1'
77 
78 # List of patterns, relative to source directory, that match files and
79 # directories to ignore when looking for source files.
80 exclude_patterns = ['_build']
81 
82 # The name of the Pygments (syntax highlighting) style to use.
83 pygments_style = 'sphinx'
84 
85 # Add any paths that contain custom static files (such as style sheets) here,
86 # relative to this directory. They are copied after the builtin static files,
87 # so a file named "default.css" will overwrite the builtin "default.css".
88 html_static_path = ['_static']
89 
90 # Output file base name for HTML help builder.
91 htmlhelp_basename = 'Kintodoc'
92 
93 
94 # -- Options for autodoc --------------------------------------------------
95 
96 autodoc_member_order = 'bysource'
97 # Enable nitpicky mode - which ensures that all references in the docs
98 # resolve.
99 # See: http://stackoverflow.com/a/30624034/186202
100 nitpicky = True
101 nitpick_ignore = [
102     ('py:obj', 'Exception'),
103     ('py:obj', 'bool'),
104     ('py:obj', 'cornice.Service'),
105     ('py:obj', 'dict'),
106     ('py:obj', 'float'),
107     ('py:obj', 'int'),
108     ('py:obj', 'list'),
109     ('py:obj', 'str'),
110     ('py:obj', 'tuple'),
111     # Member autodoc fails with those:
112     # kinto.core.resource.schema
113     ('py:class', 'Integer'),
114     ('py:class', 'String'),
115     # kinto.core.resource
116     ('py:class', 'Model'),
117     ('py:class', 'ResourceSchema'),
118     ('py:class', 'ShareableModel'),
119     ('py:class', 'ShareableViewSet'),
120     ('py:class', 'ViewSet'),
121     ('py:class', 'Sequence')
122 ]
123 
124 
125 # -- Options of extlinks --------------------------------------------------
126 
127 extlinks = {
128     'github': ('https://github.com/%s/', ''),
129     'rtd': ('https://%s.readthedocs.io', ''),
130     'blog': ('http://www.servicedenuages.fr/%s', '')
131 }
132 
133 
134 # -- Substitutions
135 
136 rst_epilog = """
137 .. |status-200| replace:: ``200 OK``
138 .. |status-201| replace:: ``201 Created``
139 .. |status-304| replace:: ``304 Not Modified``
140 .. |status-400| replace:: ``400 Bad Request``
141 .. |status-401| replace:: ``401 Unauthorized``
142 .. |status-403| replace:: ``403 Forbidden``
143 .. |status-404| replace:: ``404 Not Found``
144 .. |status-405| replace:: ``405 Method Not Allowed``
145 .. |status-406| replace:: ``406 Not Acceptable``
146 .. |status-409| replace:: ``409 Conflict``
147 .. |status-410| replace:: ``410 Gone``
148 .. |status-412| replace:: ``412 Precondition Failed``
149 .. |status-415| replace:: ``415 Unsupported Media Type``
150 .. |status-503| replace:: ``503 Service Unavailable``
151 """
152 
153 
154 # --
155 def setup(app):
156     # path relative to _static
157     app.add_stylesheet('theme_overrides.css')
158     app.add_javascript('piwik.js')
159 
160 
161 # -- Options for intersphinx --------------------------------------------------
162 
163 intersphinx_mapping = {
164     'colander': ('https://colander.readthedocs.io/en/latest/', None),
165     'cornice': ('https://cornice.readthedocs.io/en/latest/', None),
166     'pyramid': ('https://pyramid.readthedocs.io/en/latest/', None)
167 }
168 
169 # -- Options for LaTeX output ---------------------------------------------
170 
171 latex_elements = {}
172 
173 # Grouping the document tree into LaTeX files. List of tuples
174 # (source start file, target name, title,
175 #  author, documentclass [howto, manual, or own class]).
176 latex_documents = [
177     ('index', 'Kinto.tex', 'Kinto Documentation',
178      'Mozilla Services — Da French Team', 'manual'),
179 ]
180 
181 
182 # -- Options for manual page output ---------------------------------------
183 
184 # One entry per manual page. List of tuples
185 # (source start file, name, description, authors, manual section).
186 man_pages = [
187     ('index', 'kinto', 'Kinto Documentation',
188      ['Mozilla Services — Da French Team'], 1)
189 ]
190 
191 
192 # -- Options for Texinfo output -------------------------------------------
193 
194 # Grouping the document tree into Texinfo files. List of tuples
195 # (source start file, target name, title, author,
196 #  dir menu entry, description, category)
197 texinfo_documents = [
198     ('index', 'Kinto', 'Kinto Documentation',
199      'Mozilla Services — Da French Team', 'Kinto',
200      'A remote storage service with syncing and sharing abilities.',
201      'Miscellaneous'),
202 ]
203
```
--- 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
@@ -71,9 +71,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '7.0'
+version = '7.3'
 # The full version, including alpha/beta/rc tags.
-release = '7.3.1'
+release = '7.3.2'
 
 # List of patterns, relative to source directory, that match files and
 # directories to ignore when looking for source files.
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -77,7 +77,7 @@
 
 
 setup(name='kinto',
-      version='7.3.2.dev0',
+      version='7.3.2',
       description='Kinto Web Service - Store, Sync, Share, and Self-Host.',
       long_description="{}\n\n{}\n\n{}".format(README, CHANGELOG, CONTRIBUTORS),
       license='Apache License (2.0)',

{"golden_diff": "diff --git a/docs/conf.py b/docs/conf.py\n--- a/docs/conf.py\n+++ b/docs/conf.py\n@@ -71,9 +71,9 @@\n # built documents.\n #\n # The short X.Y version.\n-version = '7.0'\n+version = '7.3'\n # The full version, including alpha/beta/rc tags.\n-release = '7.3.1'\n+release = '7.3.2'\n \n # List of patterns, relative to source directory, that match files and\n # directories to ignore when looking for source files.\ndiff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -77,7 +77,7 @@\n \n \n setup(name='kinto',\n-      version='7.3.2.dev0',\n+      version='7.3.2',\n       description='Kinto Web Service - Store, Sync, Share, and Self-Host.',\n       long_description=\"{}\\n\\n{}\\n\\n{}\".format(README, CHANGELOG, CONTRIBUTORS),\n       license='Apache License (2.0)',\n", "issue": "PostgreSQL Cache: Deadlock\n```\r\n(psycopg2.extensions.TransactionRollbackError) deadlock detected\r\nDETAIL:  Process 12750 waits for ShareLock on transaction 632693475; blocked by process 10080.\r\nProcess 10080 waits for ShareLock on transaction 632693479; blocked by process 12750.\r\nHINT:  See server log for query details.\r\nCONTEXT:  while deleting tuple (426,1) in relation \"cache\"\r\n [SQL: 'DELETE FROM cache WHERE ttl IS NOT NULL AND now() > ttl;']\r\n```\nCheck compliance with Dockerflow spec\nSee https://github.com/mozilla-services/Dockerflow\r\n\r\n* `$PORT` env variable\r\n* Copy to `/app`\r\n* `app` group:user\r\n* `USER` directive\r\n* `ENTRYPOINT` directive\r\n* ...\n", "before_files": [{"content": "import codecs\nimport os\nfrom setuptools import setup, find_packages\n\nhere = os.path.abspath(os.path.dirname(__file__))\n\n\ndef read_file(filename):\n    \"\"\"Open a related file and return its content.\"\"\"\n    with codecs.open(os.path.join(here, filename), encoding='utf-8') as f:\n        content = f.read()\n    return content\n\n\nREADME = read_file('README.rst')\nCHANGELOG = read_file('CHANGELOG.rst')\nCONTRIBUTORS = read_file('CONTRIBUTORS.rst')\n\nREQUIREMENTS = [\n    'bcrypt',\n    'colander >= 1.4.0',\n    'cornice >= 2.4',\n    'cornice_swagger >= 0.5.1',\n    'jsonschema',\n    'jsonpatch',\n    'logging-color-formatter >= 1.0.1',  # Message interpolations.\n    'python-dateutil',\n    'pyramid > 1.8, < 1.9b1',\n    'pyramid_multiauth >= 0.8',  # User on policy selected event.\n    'transaction',\n    # pyramid_tm changed the location of their tween in 2.x and one of\n    # our tests fails on 2.0.\n    'pyramid_tm >= 2.1',\n    'requests',\n    'waitress',\n    'ujson >= 1.35'\n]\n\nPOSTGRESQL_REQUIRES = [\n    'SQLAlchemy',\n    'psycopg2 > 2.5',\n    'zope.sqlalchemy',\n]\n\nREDIS_REQUIRES = [\n    'kinto_redis'\n]\n\nSETUP_REQUIRES = [\n    'pytest-runner'\n]\n\nTEST_REQUIREMENTS = [\n    'bravado_core',\n    'pytest',\n    'WebTest'\n]\n\nDEPENDENCY_LINKS = [\n]\n\nMONITORING_REQUIRES = [\n    'raven',\n    'statsd',\n    'newrelic',\n    'werkzeug',\n]\n\nENTRY_POINTS = {\n    'paste.app_factory': [\n        'main = kinto:main',\n    ],\n    'console_scripts': [\n        'kinto = kinto.__main__:main'\n    ],\n}\n\n\nsetup(name='kinto',\n      version='7.3.2.dev0',\n      description='Kinto Web Service - Store, Sync, Share, and Self-Host.',\n      long_description=\"{}\\n\\n{}\\n\\n{}\".format(README, CHANGELOG, CONTRIBUTORS),\n      license='Apache License (2.0)',\n      classifiers=[\n          \"Programming Language :: Python\",\n          \"Programming Language :: Python :: 3\",\n          \"Programming Language :: Python :: 3.5\",\n          \"Programming Language :: Python :: 3.6\",\n          \"Programming Language :: Python :: Implementation :: CPython\",\n          \"Topic :: Internet :: WWW/HTTP\",\n          \"Topic :: Internet :: WWW/HTTP :: WSGI :: Application\",\n          \"License :: OSI Approved :: Apache Software License\"\n      ],\n      keywords=\"web sync json storage services\",\n      author='Mozilla Services',\n      author_email='storage-team@mozilla.com',\n      url='https://github.com/Kinto/kinto',\n      packages=find_packages(),\n      package_data={'': ['*.rst', '*.py', '*.yaml']},\n      include_package_data=True,\n      zip_safe=False,\n      setup_requires=SETUP_REQUIRES,\n      tests_require=TEST_REQUIREMENTS,\n      install_requires=REQUIREMENTS,\n      extras_require={\n          'redis': REDIS_REQUIRES,\n          'postgresql': POSTGRESQL_REQUIRES,\n          'monitoring': MONITORING_REQUIRES,\n      },\n      test_suite=\"tests\",\n      dependency_links=DEPENDENCY_LINKS,\n      entry_points=ENTRY_POINTS)\n", "path": "setup.py"}, {"content": "#\n# Kinto documentation build configuration file, created by\n# sphinx-quickstart on Mon Feb  2 15:08:06 2015.\n#\n# This file is execfile()d with the current directory set to its\n# containing dir.\n#\n# Note that not all possible configuration values are present in this\n# autogenerated file.\n#\n# All configuration values have a default; values that are commented out\n# serve to show the default.\n\nimport os\nimport sys\n\n__HERE__ = os.path.dirname(os.path.abspath(__file__))\n\non_rtd = os.environ.get('READTHEDOCS', None) == 'True'\n\nif not on_rtd:  # only import and set the theme if we're building docs locally\n    import sphinx_rtd_theme\n    html_theme = 'sphinx_rtd_theme'\n    html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]\n\n# otherwise, readthedocs.io uses their theme by default, so no need to specify\n# it\n\n# If extensions (or modules to document with autodoc) are in another directory,\n# add these directories to sys.path here. If the directory is relative to the\n# documentation root, use os.path.abspath to make it absolute, like shown here.\nsys.path.insert(0, os.path.abspath(os.path.join('..')))\n\n# -- General configuration ------------------------------------------------\n\n# If your documentation needs a minimal Sphinx version, state it here.\n# needs_sphinx = '1.0'\n\n# Add any Sphinx extension module names here, as strings. They can be\n# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom\n# ones.\nextensions = [\n    'sphinx.ext.autodoc',\n    'sphinxcontrib.httpdomain',\n    'sphinx.ext.extlinks',\n    'sphinx.ext.intersphinx',\n]\n\n# Add any paths that contain templates here, relative to this directory.\ntemplates_path = ['_templates']\nhtml_additional_pages = {\n    'index': 'indexcontent.html',\n}\n\n\n# The suffix of source filenames.\nsource_suffix = '.rst'\n\n# The encoding of source files.\n# source_encoding = 'utf-8-sig'\n\n# The master toctree document.\nmaster_doc = 'index'\n\n# General information about the project.\nproject = 'Kinto'\ncopyright = '2015-2017 \u2014 Mozilla Services'\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.\nversion = '7.0'\n# The full version, including alpha/beta/rc tags.\nrelease = '7.3.1'\n\n# List of patterns, relative to source directory, that match files and\n# directories to ignore when looking for source files.\nexclude_patterns = ['_build']\n\n# The name of the Pygments (syntax highlighting) style to use.\npygments_style = 'sphinx'\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# Output file base name for HTML help builder.\nhtmlhelp_basename = 'Kintodoc'\n\n\n# -- Options for autodoc --------------------------------------------------\n\nautodoc_member_order = 'bysource'\n# Enable nitpicky mode - which ensures that all references in the docs\n# resolve.\n# See: http://stackoverflow.com/a/30624034/186202\nnitpicky = True\nnitpick_ignore = [\n    ('py:obj', 'Exception'),\n    ('py:obj', 'bool'),\n    ('py:obj', 'cornice.Service'),\n    ('py:obj', 'dict'),\n    ('py:obj', 'float'),\n    ('py:obj', 'int'),\n    ('py:obj', 'list'),\n    ('py:obj', 'str'),\n    ('py:obj', 'tuple'),\n    # Member autodoc fails with those:\n    # kinto.core.resource.schema\n    ('py:class', 'Integer'),\n    ('py:class', 'String'),\n    # kinto.core.resource\n    ('py:class', 'Model'),\n    ('py:class', 'ResourceSchema'),\n    ('py:class', 'ShareableModel'),\n    ('py:class', 'ShareableViewSet'),\n    ('py:class', 'ViewSet'),\n    ('py:class', 'Sequence')\n]\n\n\n# -- Options of extlinks --------------------------------------------------\n\nextlinks = {\n    'github': ('https://github.com/%s/', ''),\n    'rtd': ('https://%s.readthedocs.io', ''),\n    'blog': ('http://www.servicedenuages.fr/%s', '')\n}\n\n\n# -- Substitutions\n\nrst_epilog = \"\"\"\n.. |status-200| replace:: ``200 OK``\n.. |status-201| replace:: ``201 Created``\n.. |status-304| replace:: ``304 Not Modified``\n.. |status-400| replace:: ``400 Bad Request``\n.. |status-401| replace:: ``401 Unauthorized``\n.. |status-403| replace:: ``403 Forbidden``\n.. |status-404| replace:: ``404 Not Found``\n.. |status-405| replace:: ``405 Method Not Allowed``\n.. |status-406| replace:: ``406 Not Acceptable``\n.. |status-409| replace:: ``409 Conflict``\n.. |status-410| replace:: ``410 Gone``\n.. |status-412| replace:: ``412 Precondition Failed``\n.. |status-415| replace:: ``415 Unsupported Media Type``\n.. |status-503| replace:: ``503 Service Unavailable``\n\"\"\"\n\n\n# --\ndef setup(app):\n    # path relative to _static\n    app.add_stylesheet('theme_overrides.css')\n    app.add_javascript('piwik.js')\n\n\n# -- Options for intersphinx --------------------------------------------------\n\nintersphinx_mapping = {\n    'colander': ('https://colander.readthedocs.io/en/latest/', None),\n    'cornice': ('https://cornice.readthedocs.io/en/latest/', None),\n    'pyramid': ('https://pyramid.readthedocs.io/en/latest/', None)\n}\n\n# -- Options for LaTeX output ---------------------------------------------\n\nlatex_elements = {}\n\n# Grouping the document tree into LaTeX files. List of tuples\n# (source start file, target name, title,\n#  author, documentclass [howto, manual, or own class]).\nlatex_documents = [\n    ('index', 'Kinto.tex', 'Kinto Documentation',\n     'Mozilla Services \u2014 Da French Team', 'manual'),\n]\n\n\n# -- Options for manual page output ---------------------------------------\n\n# One entry per manual page. List of tuples\n# (source start file, name, description, authors, manual section).\nman_pages = [\n    ('index', 'kinto', 'Kinto Documentation',\n     ['Mozilla Services \u2014 Da French Team'], 1)\n]\n\n\n# -- Options for Texinfo output -------------------------------------------\n\n# Grouping the document tree into Texinfo files. List of tuples\n# (source start file, target name, title, author,\n#  dir menu entry, description, category)\ntexinfo_documents = [\n    ('index', 'Kinto', 'Kinto Documentation',\n     'Mozilla Services \u2014 Da French Team', 'Kinto',\n     'A remote storage service with syncing and sharing abilities.',\n     'Miscellaneous'),\n]\n", "path": "docs/conf.py"}], "after_files": [{"content": "import codecs\nimport os\nfrom setuptools import setup, find_packages\n\nhere = os.path.abspath(os.path.dirname(__file__))\n\n\ndef read_file(filename):\n    \"\"\"Open a related file and return its content.\"\"\"\n    with codecs.open(os.path.join(here, filename), encoding='utf-8') as f:\n        content = f.read()\n    return content\n\n\nREADME = read_file('README.rst')\nCHANGELOG = read_file('CHANGELOG.rst')\nCONTRIBUTORS = read_file('CONTRIBUTORS.rst')\n\nREQUIREMENTS = [\n    'bcrypt',\n    'colander >= 1.4.0',\n    'cornice >= 2.4',\n    'cornice_swagger >= 0.5.1',\n    'jsonschema',\n    'jsonpatch',\n    'logging-color-formatter >= 1.0.1',  # Message interpolations.\n    'python-dateutil',\n    'pyramid > 1.8, < 1.9b1',\n    'pyramid_multiauth >= 0.8',  # User on policy selected event.\n    'transaction',\n    # pyramid_tm changed the location of their tween in 2.x and one of\n    # our tests fails on 2.0.\n    'pyramid_tm >= 2.1',\n    'requests',\n    'waitress',\n    'ujson >= 1.35'\n]\n\nPOSTGRESQL_REQUIRES = [\n    'SQLAlchemy',\n    'psycopg2 > 2.5',\n    'zope.sqlalchemy',\n]\n\nREDIS_REQUIRES = [\n    'kinto_redis'\n]\n\nSETUP_REQUIRES = [\n    'pytest-runner'\n]\n\nTEST_REQUIREMENTS = [\n    'bravado_core',\n    'pytest',\n    'WebTest'\n]\n\nDEPENDENCY_LINKS = [\n]\n\nMONITORING_REQUIRES = [\n    'raven',\n    'statsd',\n    'newrelic',\n    'werkzeug',\n]\n\nENTRY_POINTS = {\n    'paste.app_factory': [\n        'main = kinto:main',\n    ],\n    'console_scripts': [\n        'kinto = kinto.__main__:main'\n    ],\n}\n\n\nsetup(name='kinto',\n      version='7.3.2',\n      description='Kinto Web Service - Store, Sync, Share, and Self-Host.',\n      long_description=\"{}\\n\\n{}\\n\\n{}\".format(README, CHANGELOG, CONTRIBUTORS),\n      license='Apache License (2.0)',\n      classifiers=[\n          \"Programming Language :: Python\",\n          \"Programming Language :: Python :: 3\",\n          \"Programming Language :: Python :: 3.5\",\n          \"Programming Language :: Python :: 3.6\",\n          \"Programming Language :: Python :: Implementation :: CPython\",\n          \"Topic :: Internet :: WWW/HTTP\",\n          \"Topic :: Internet :: WWW/HTTP :: WSGI :: Application\",\n          \"License :: OSI Approved :: Apache Software License\"\n      ],\n      keywords=\"web sync json storage services\",\n      author='Mozilla Services',\n      author_email='storage-team@mozilla.com',\n      url='https://github.com/Kinto/kinto',\n      packages=find_packages(),\n      package_data={'': ['*.rst', '*.py', '*.yaml']},\n      include_package_data=True,\n      zip_safe=False,\n      setup_requires=SETUP_REQUIRES,\n      tests_require=TEST_REQUIREMENTS,\n      install_requires=REQUIREMENTS,\n      extras_require={\n          'redis': REDIS_REQUIRES,\n          'postgresql': POSTGRESQL_REQUIRES,\n          'monitoring': MONITORING_REQUIRES,\n      },\n      test_suite=\"tests\",\n      dependency_links=DEPENDENCY_LINKS,\n      entry_points=ENTRY_POINTS)\n", "path": "setup.py"}, {"content": "#\n# Kinto documentation build configuration file, created by\n# sphinx-quickstart on Mon Feb  2 15:08:06 2015.\n#\n# This file is execfile()d with the current directory set to its\n# containing dir.\n#\n# Note that not all possible configuration values are present in this\n# autogenerated file.\n#\n# All configuration values have a default; values that are commented out\n# serve to show the default.\n\nimport os\nimport sys\n\n__HERE__ = os.path.dirname(os.path.abspath(__file__))\n\non_rtd = os.environ.get('READTHEDOCS', None) == 'True'\n\nif not on_rtd:  # only import and set the theme if we're building docs locally\n    import sphinx_rtd_theme\n    html_theme = 'sphinx_rtd_theme'\n    html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]\n\n# otherwise, readthedocs.io uses their theme by default, so no need to specify\n# it\n\n# If extensions (or modules to document with autodoc) are in another directory,\n# add these directories to sys.path here. If the directory is relative to the\n# documentation root, use os.path.abspath to make it absolute, like shown here.\nsys.path.insert(0, os.path.abspath(os.path.join('..')))\n\n# -- General configuration ------------------------------------------------\n\n# If your documentation needs a minimal Sphinx version, state it here.\n# needs_sphinx = '1.0'\n\n# Add any Sphinx extension module names here, as strings. They can be\n# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom\n# ones.\nextensions = [\n    'sphinx.ext.autodoc',\n    'sphinxcontrib.httpdomain',\n    'sphinx.ext.extlinks',\n    'sphinx.ext.intersphinx',\n]\n\n# Add any paths that contain templates here, relative to this directory.\ntemplates_path = ['_templates']\nhtml_additional_pages = {\n    'index': 'indexcontent.html',\n}\n\n\n# The suffix of source filenames.\nsource_suffix = '.rst'\n\n# The encoding of source files.\n# source_encoding = 'utf-8-sig'\n\n# The master toctree document.\nmaster_doc = 'index'\n\n# General information about the project.\nproject = 'Kinto'\ncopyright = '2015-2017 \u2014 Mozilla Services'\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.\nversion = '7.3'\n# The full version, including alpha/beta/rc tags.\nrelease = '7.3.2'\n\n# List of patterns, relative to source directory, that match files and\n# directories to ignore when looking for source files.\nexclude_patterns = ['_build']\n\n# The name of the Pygments (syntax highlighting) style to use.\npygments_style = 'sphinx'\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# Output file base name for HTML help builder.\nhtmlhelp_basename = 'Kintodoc'\n\n\n# -- Options for autodoc --------------------------------------------------\n\nautodoc_member_order = 'bysource'\n# Enable nitpicky mode - which ensures that all references in the docs\n# resolve.\n# See: http://stackoverflow.com/a/30624034/186202\nnitpicky = True\nnitpick_ignore = [\n    ('py:obj', 'Exception'),\n    ('py:obj', 'bool'),\n    ('py:obj', 'cornice.Service'),\n    ('py:obj', 'dict'),\n    ('py:obj', 'float'),\n    ('py:obj', 'int'),\n    ('py:obj', 'list'),\n    ('py:obj', 'str'),\n    ('py:obj', 'tuple'),\n    # Member autodoc fails with those:\n    # kinto.core.resource.schema\n    ('py:class', 'Integer'),\n    ('py:class', 'String'),\n    # kinto.core.resource\n    ('py:class', 'Model'),\n    ('py:class', 'ResourceSchema'),\n    ('py:class', 'ShareableModel'),\n    ('py:class', 'ShareableViewSet'),\n    ('py:class', 'ViewSet'),\n    ('py:class', 'Sequence')\n]\n\n\n# -- Options of extlinks --------------------------------------------------\n\nextlinks = {\n    'github': ('https://github.com/%s/', ''),\n    'rtd': ('https://%s.readthedocs.io', ''),\n    'blog': ('http://www.servicedenuages.fr/%s', '')\n}\n\n\n# -- Substitutions\n\nrst_epilog = \"\"\"\n.. |status-200| replace:: ``200 OK``\n.. |status-201| replace:: ``201 Created``\n.. |status-304| replace:: ``304 Not Modified``\n.. |status-400| replace:: ``400 Bad Request``\n.. |status-401| replace:: ``401 Unauthorized``\n.. |status-403| replace:: ``403 Forbidden``\n.. |status-404| replace:: ``404 Not Found``\n.. |status-405| replace:: ``405 Method Not Allowed``\n.. |status-406| replace:: ``406 Not Acceptable``\n.. |status-409| replace:: ``409 Conflict``\n.. |status-410| replace:: ``410 Gone``\n.. |status-412| replace:: ``412 Precondition Failed``\n.. |status-415| replace:: ``415 Unsupported Media Type``\n.. |status-503| replace:: ``503 Service Unavailable``\n\"\"\"\n\n\n# --\ndef setup(app):\n    # path relative to _static\n    app.add_stylesheet('theme_overrides.css')\n    app.add_javascript('piwik.js')\n\n\n# -- Options for intersphinx --------------------------------------------------\n\nintersphinx_mapping = {\n    'colander': ('https://colander.readthedocs.io/en/latest/', None),\n    'cornice': ('https://cornice.readthedocs.io/en/latest/', None),\n    'pyramid': ('https://pyramid.readthedocs.io/en/latest/', None)\n}\n\n# -- Options for LaTeX output ---------------------------------------------\n\nlatex_elements = {}\n\n# Grouping the document tree into LaTeX files. List of tuples\n# (source start file, target name, title,\n#  author, documentclass [howto, manual, or own class]).\nlatex_documents = [\n    ('index', 'Kinto.tex', 'Kinto Documentation',\n     'Mozilla Services \u2014 Da French Team', 'manual'),\n]\n\n\n# -- Options for manual page output ---------------------------------------\n\n# One entry per manual page. List of tuples\n# (source start file, name, description, authors, manual section).\nman_pages = [\n    ('index', 'kinto', 'Kinto Documentation',\n     ['Mozilla Services \u2014 Da French Team'], 1)\n]\n\n\n# -- Options for Texinfo output -------------------------------------------\n\n# Grouping the document tree into Texinfo files. List of tuples\n# (source start file, target name, title, author,\n#  dir menu entry, description, category)\ntexinfo_documents = [\n    ('index', 'Kinto', 'Kinto Documentation',\n     'Mozilla Services \u2014 Da French Team', 'Kinto',\n     'A remote storage service with syncing and sharing abilities.',\n     'Miscellaneous'),\n]\n", "path": "docs/conf.py"}]}