We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Use cleaner solution for non-truncating division in python 2
Prefer `from __future__ import division` to `1.*x/y`

--- 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 # -*- coding: utf-8 -*-
2 #
3 # great_expectations documentation build configuration file, created by
4 # sphinx-quickstart on Thu Jun  8 23:00:19 2017.
5 #
6 # This file is execfile()d with the current directory set to its
7 # containing dir.
8 #
9 # Note that not all possible configuration values are present in this
10 # autogenerated file.
11 #
12 # All configuration values have a default; values that are commented out
13 # serve to show the default.
14 
15 # If extensions (or modules to document with autodoc) are in another directory,
16 # add these directories to sys.path here. If the directory is relative to the
17 # documentation root, use os.path.abspath to make it absolute, like shown here.
18 #
19 
20 import os
21 import re
22 import sys
23 import uuid
24 from collections import namedtuple
25 
26 from sphinx.ext.autodoc import between
27 
28 sys.path.insert(0, os.path.abspath("../"))
29 
30 
31 # -- General configuration ------------------------------------------------
32 
33 # If your documentation needs a minimal Sphinx version, state it here.
34 #
35 # needs_sphinx = '1.0'
36 
37 # Add any Sphinx extension module names here, as strings. They can be
38 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
39 # ones.
40 extensions = [
41     # 'sphinx_rtd_theme',
42     # "sphinx.ext.autodoc",
43     "sphinx.ext.todo",
44     "sphinx.ext.coverage",
45     # 'sphinx.ext.mathjax'
46     "sphinx.ext.napoleon",
47     "sphinxcontrib.contentui",
48     "sphinx_gitstamp",
49     "sphinx.ext.autosectionlabel",
50     "sphinxcontrib.discourse",
51     "autoapi.extension",
52 ]
53 
54 autoapi_type = "python"
55 autoapi_dirs = ["../great_expectations"]
56 autoapi_add_toctree_entry = False
57 
58 # Add any paths that contain templates here, relative to this directory.
59 templates_path = ["_templates"]
60 
61 # discourse url connect
62 discourse_url = "https://discuss.greatexpectations.io/"
63 
64 # The suffix(es) of source filenames.
65 # You can specify multiple suffix as a list of string:
66 #
67 # source_suffix = ['.rst', '.md']
68 source_suffix = ".rst"
69 
70 # The master toctree document.
71 index_doc = "index"
72 
73 # General information about the project.
74 project = "great_expectations"
75 copyright = "2020, The Great Expectations Team. "
76 author = "The Great Expectations Team"
77 gitstamp_fmt = "%d %b %Y"
78 
79 # The version info for the project you're documenting, acts as replacement for
80 # |version| and |release|, also used in various other places throughout the
81 # built documents.
82 #
83 # The short X.Y version.
84 version = ""
85 # The full version, including alpha/beta/rc tags.
86 release = ""
87 
88 # The language for content autogenerated by Sphinx. Refer to documentation
89 # for a list of supported languages.
90 #
91 # This is also used if you do content translation via gettext catalogs.
92 # Usually you set "language" from the command line for these cases.
93 language = None
94 
95 # List of patterns, relative to source directory, that match files and
96 # directories to ignore when looking for source files.
97 # This patterns also effect to html_static_path and html_extra_path
98 exclude_patterns = []
99 
100 # The name of the Pygments (syntax highlighting) style to use.
101 pygments_style = "paraiso-dark"
102 
103 # If true, `todo` and `todoList` produce output, else they produce nothing.
104 todo_include_todos = True
105 
106 # -- Options for HTML output ----------------------------------------------
107 
108 # The theme to use for HTML and HTML Help pages.  See the documentation for
109 # a list of builtin themes.
110 #
111 # html_theme = 'alabaster'
112 html_theme = "sphinx_rtd_theme"
113 
114 # Theme options are theme-specific and customize the look and feel of a theme
115 # further.  For a list of options available for each theme, see the
116 # documentation.
117 #
118 html_theme_options = {
119     "logo_only": True,
120     "collapse_navigation": False,
121     "navigation_depth": 4,
122 }
123 
124 html_static_path = [
125     "_static",
126     "_static/style.css",
127     "_static/hk-grotesk-pro/HKGroteskPro-Bold.woff2",
128     "_static/hk-grotesk-pro/HKGroteskPro-Regular.woff2",
129     "_static/hk-grotesk-pro/HKGroteskPro-SemiBold.woff2",
130     "_static/hk-grotesk-pro/HKGroteskPro-Medium.woff2",
131     "_static/header-logo.png",
132     "_static/discuss-logo.png",
133 ]
134 html_css_files = ["style.css"]
135 
136 # html_logo = '../pip-logo.png'
137 
138 # Add any paths that contain custom static files (such as style sheets) here,
139 # relative to this directory. They are copied after the builtin static files,
140 # so a file named "default.css" will overwrite the builtin "default.css".
141 
142 
143 # -- Options for Napoleon Extension --------------------------------------------
144 
145 # Parse Google style docstrings.
146 # See http://google.github.io/styleguide/pyguide.html
147 napoleon_google_docstring = True
148 
149 # Parse NumPy style docstrings.
150 # See https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt
151 napoleon_numpy_docstring = True
152 
153 # Should special members (like __membername__) and private members
154 # (like _membername) members be included in the documentation if they
155 # have docstrings.
156 napoleon_include_private_with_doc = False
157 napoleon_include_special_with_doc = True
158 
159 # If True, docstring sections will use the ".. admonition::" directive.
160 # If False, docstring sections will use the ".. rubric::" directive.
161 # One may look better than the other depending on what HTML theme is used.
162 napoleon_use_admonition_for_examples = False
163 napoleon_use_admonition_for_notes = False
164 napoleon_use_admonition_for_references = False
165 
166 # If True, use Sphinx :ivar: directive for instance variables:
167 #     :ivar attr1: Description of attr1.
168 #     :type attr1: type
169 # If False, use Sphinx .. attribute:: directive for instance variables:
170 #     .. attribute:: attr1
171 #
172 #        *type*
173 #
174 #        Description of attr1.
175 napoleon_use_ivar = False
176 
177 # If True, use Sphinx :param: directive for function parameters:
178 #     :param arg1: Description of arg1.
179 #     :type arg1: type
180 # If False, output function parameters using the :parameters: field:
181 #     :parameters: **arg1** (*type*) -- Description of arg1.
182 napoleon_use_param = True
183 
184 # If True, use Sphinx :rtype: directive for the return type:
185 #     :returns: Description of return value.
186 #     :rtype: type
187 # If False, output the return type inline with the return description:
188 #     :returns: *type* -- Description of return value.
189 napoleon_use_rtype = True
190 
191 
192 # -- Options for HTMLHelp output ------------------------------------------
193 
194 # Output file base name for HTML help builder.
195 htmlhelp_basename = "great_expectationsdoc"
196 
197 
198 # -- Options for LaTeX output ---------------------------------------------
199 
200 latex_elements = {
201     # The paper size ('letterpaper' or 'a4paper').
202     #
203     # 'papersize': 'letterpaper',
204     # The font size ('10pt', '11pt' or '12pt').
205     #
206     # 'pointsize': '10pt',
207     # Additional stuff for the LaTeX preamble.
208     #
209     # 'preamble': '',
210     # Latex figure (float) alignment
211     #
212     # 'figure_align': 'htbp',
213 }
214 
215 # Grouping the document tree into LaTeX files. List of tuples
216 # (source start file, target name, title,
217 #  author, documentclass [howto, manual, or own class]).
218 latex_documents = [
219     (
220         index_doc,
221         "great_expectations.tex",
222         "great_expectations Documentation",
223         "The Great Expectations Team",
224         "manual",
225     ),
226 ]
227 
228 
229 # -- Options for manual page output ---------------------------------------
230 
231 # One entry per manual page. List of tuples
232 # (source start file, name, description, authors, manual section).
233 man_pages = [
234     (index_doc, "great_expectations", "great_expectations Documentation", [author], 1)
235 ]
236 
237 
238 # -- Options for Texinfo output -------------------------------------------
239 
240 # Grouping the document tree into Texinfo files. List of tuples
241 # (source start file, target name, title, author,
242 #  dir menu entry, description, category)
243 texinfo_documents = [
244     (
245         index_doc,
246         "great_expectations",
247         "great_expectations Documentation",
248         author,
249         "great_expectations",
250         "Always know what to expect from your data.",
251         "Miscellaneous",
252     ),
253 ]
254 
255 
256 autodoc_member_order = "bysource"
257 
258 
259 def process_docstring(app, what, name, obj, options, lines):
260 
261     from docs.feature_annotation_parser import parse_feature_annotation
262 
263     docstring = "\n".join(lines)
264     annotation_list = parse_feature_annotation(docstring)
265 
266     process_between = between(marker="--ge-feature-maturity-info--", exclude=True)
267     process_between(app, what, name, obj, options, lines)
268 
269     if not annotation_list:
270         return
271 
272     feature_annotation_admonition = """
273 .. admonition:: `Feature Maturity <https://docs.greatexpectations.io/en/latest/features>`_
274 
275     """
276 
277     feature_annotation_template = """
278     |   |icon-{icon_hash}| **{title}** - `How-to Guide <{how_to_guide_url}>`_
279     |       {description}
280     |       **Maturity**: {maturity}
281     |       **Details**:
282     |           **API Stability**: {maturity_details[api_stability]}
283     |           **Implementation Completeness**: {maturity_details[implementation_completeness]}
284     |           **Unit Test Coverage**: {maturity_details[unit_test_coverage]}
285     |           **Integration Infrastructure/Test Coverage**: {maturity_details[integration_infrastructure_test_coverage]}
286     |           **Documentation Completeness**: {maturity_details[documentation_completeness]}
287     |           **Bug Risk**: {maturity_details[bug_risk]}\
288 """
289     expectation_completeness_template = """
290     |           **Expectation Completeness**: {maturity_details[expectation_completeness]}\
291 """
292     icon_template = """
293     .. |icon-{icon_hash}| image:: {icon}
294               :height: 15px
295 """
296 
297     for annotation in annotation_list:
298         icon_hash = uuid.uuid1().hex
299         annotation["icon_hash"] = icon_hash
300         description = (
301             annotation.get("description")
302             or annotation.get("short_description")
303             or f"*TODO: {annotation.get('title')} Description*"
304         )
305         how_to_guide_url = (
306             annotation.get("how_to_guide_url")
307             or "https://docs.greatexpectations.io/en/latest/how_to_guides.html"
308         )
309         annotation["how_to_guide_url"] = how_to_guide_url
310         annotation["description"] = description
311 
312         if annotation["maturity_details"].get("expectation_completeness"):
313             feature_annotation_admonition += (
314                 feature_annotation_template
315                 + expectation_completeness_template
316                 + icon_template
317             ).format(**annotation)
318         else:
319             feature_annotation_admonition += (
320                 feature_annotation_template + icon_template
321             ).format(**annotation)
322 
323     lines += feature_annotation_admonition.splitlines()
324 
325 
326 def setup(app):
327     app.connect("autodoc-process-docstring", process_docstring)
328
```
--- 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
@@ -46,7 +46,7 @@
     "sphinx.ext.napoleon",
     "sphinxcontrib.contentui",
     "sphinx_gitstamp",
-    "sphinx.ext.autosectionlabel",
+    # "sphinx.ext.autosectionlabel",
     "sphinxcontrib.discourse",
     "autoapi.extension",
 ]
@@ -54,6 +54,7 @@
 autoapi_type = "python"
 autoapi_dirs = ["../great_expectations"]
 autoapi_add_toctree_entry = False
+# autoapi_keep_files = True
 
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ["_templates"]

{"golden_diff": "diff --git a/docs/conf.py b/docs/conf.py\n--- a/docs/conf.py\n+++ b/docs/conf.py\n@@ -46,7 +46,7 @@\n     \"sphinx.ext.napoleon\",\n     \"sphinxcontrib.contentui\",\n     \"sphinx_gitstamp\",\n-    \"sphinx.ext.autosectionlabel\",\n+    # \"sphinx.ext.autosectionlabel\",\n     \"sphinxcontrib.discourse\",\n     \"autoapi.extension\",\n ]\n@@ -54,6 +54,7 @@\n autoapi_type = \"python\"\n autoapi_dirs = [\"../great_expectations\"]\n autoapi_add_toctree_entry = False\n+# autoapi_keep_files = True\n \n # Add any paths that contain templates here, relative to this directory.\n templates_path = [\"_templates\"]\n", "issue": "Use cleaner solution for non-truncating division in python 2\nPrefer `from __future__ import division` to `1.*x/y`\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\n#\n# great_expectations documentation build configuration file, created by\n# sphinx-quickstart on Thu Jun  8 23:00:19 2017.\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\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.\n#\n\nimport os\nimport re\nimport sys\nimport uuid\nfrom collections import namedtuple\n\nfrom sphinx.ext.autodoc import between\n\nsys.path.insert(0, os.path.abspath(\"../\"))\n\n\n# -- General configuration ------------------------------------------------\n\n# If your documentation needs a minimal Sphinx version, state it here.\n#\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_rtd_theme',\n    # \"sphinx.ext.autodoc\",\n    \"sphinx.ext.todo\",\n    \"sphinx.ext.coverage\",\n    # 'sphinx.ext.mathjax'\n    \"sphinx.ext.napoleon\",\n    \"sphinxcontrib.contentui\",\n    \"sphinx_gitstamp\",\n    \"sphinx.ext.autosectionlabel\",\n    \"sphinxcontrib.discourse\",\n    \"autoapi.extension\",\n]\n\nautoapi_type = \"python\"\nautoapi_dirs = [\"../great_expectations\"]\nautoapi_add_toctree_entry = False\n\n# Add any paths that contain templates here, relative to this directory.\ntemplates_path = [\"_templates\"]\n\n# discourse url connect\ndiscourse_url = \"https://discuss.greatexpectations.io/\"\n\n# The suffix(es) of source filenames.\n# You can specify multiple suffix as a list of string:\n#\n# source_suffix = ['.rst', '.md']\nsource_suffix = \".rst\"\n\n# The master toctree document.\nindex_doc = \"index\"\n\n# General information about the project.\nproject = \"great_expectations\"\ncopyright = \"2020, The Great Expectations Team. \"\nauthor = \"The Great Expectations Team\"\ngitstamp_fmt = \"%d %b %Y\"\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 = \"\"\n# The full version, including alpha/beta/rc tags.\nrelease = \"\"\n\n# The language for content autogenerated by Sphinx. Refer to documentation\n# for a list of supported languages.\n#\n# This is also used if you do content translation via gettext catalogs.\n# Usually you set \"language\" from the command line for these cases.\nlanguage = None\n\n# List of patterns, relative to source directory, that match files and\n# directories to ignore when looking for source files.\n# This patterns also effect to html_static_path and html_extra_path\nexclude_patterns = []\n\n# The name of the Pygments (syntax highlighting) style to use.\npygments_style = \"paraiso-dark\"\n\n# If true, `todo` and `todoList` produce output, else they produce nothing.\ntodo_include_todos = True\n\n# -- Options for HTML output ----------------------------------------------\n\n# The theme to use for HTML and HTML Help pages.  See the documentation for\n# a list of builtin themes.\n#\n# html_theme = 'alabaster'\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#\nhtml_theme_options = {\n    \"logo_only\": True,\n    \"collapse_navigation\": False,\n    \"navigation_depth\": 4,\n}\n\nhtml_static_path = [\n    \"_static\",\n    \"_static/style.css\",\n    \"_static/hk-grotesk-pro/HKGroteskPro-Bold.woff2\",\n    \"_static/hk-grotesk-pro/HKGroteskPro-Regular.woff2\",\n    \"_static/hk-grotesk-pro/HKGroteskPro-SemiBold.woff2\",\n    \"_static/hk-grotesk-pro/HKGroteskPro-Medium.woff2\",\n    \"_static/header-logo.png\",\n    \"_static/discuss-logo.png\",\n]\nhtml_css_files = [\"style.css\"]\n\n# html_logo = '../pip-logo.png'\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\".\n\n\n# -- Options for Napoleon Extension --------------------------------------------\n\n# Parse Google style docstrings.\n# See http://google.github.io/styleguide/pyguide.html\nnapoleon_google_docstring = True\n\n# Parse NumPy style docstrings.\n# See https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt\nnapoleon_numpy_docstring = True\n\n# Should special members (like __membername__) and private members\n# (like _membername) members be included in the documentation if they\n# have docstrings.\nnapoleon_include_private_with_doc = False\nnapoleon_include_special_with_doc = True\n\n# If True, docstring sections will use the \".. admonition::\" directive.\n# If False, docstring sections will use the \".. rubric::\" directive.\n# One may look better than the other depending on what HTML theme is used.\nnapoleon_use_admonition_for_examples = False\nnapoleon_use_admonition_for_notes = False\nnapoleon_use_admonition_for_references = False\n\n# If True, use Sphinx :ivar: directive for instance variables:\n#     :ivar attr1: Description of attr1.\n#     :type attr1: type\n# If False, use Sphinx .. attribute:: directive for instance variables:\n#     .. attribute:: attr1\n#\n#        *type*\n#\n#        Description of attr1.\nnapoleon_use_ivar = False\n\n# If True, use Sphinx :param: directive for function parameters:\n#     :param arg1: Description of arg1.\n#     :type arg1: type\n# If False, output function parameters using the :parameters: field:\n#     :parameters: **arg1** (*type*) -- Description of arg1.\nnapoleon_use_param = True\n\n# If True, use Sphinx :rtype: directive for the return type:\n#     :returns: Description of return value.\n#     :rtype: type\n# If False, output the return type inline with the return description:\n#     :returns: *type* -- Description of return value.\nnapoleon_use_rtype = True\n\n\n# -- Options for HTMLHelp output ------------------------------------------\n\n# Output file base name for HTML help builder.\nhtmlhelp_basename = \"great_expectationsdoc\"\n\n\n# -- Options for LaTeX output ---------------------------------------------\n\nlatex_elements = {\n    # The paper size ('letterpaper' or 'a4paper').\n    #\n    # 'papersize': 'letterpaper',\n    # The font size ('10pt', '11pt' or '12pt').\n    #\n    # 'pointsize': '10pt',\n    # Additional stuff for the LaTeX preamble.\n    #\n    # 'preamble': '',\n    # Latex figure (float) alignment\n    #\n    # 'figure_align': 'htbp',\n}\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    (\n        index_doc,\n        \"great_expectations.tex\",\n        \"great_expectations Documentation\",\n        \"The Great Expectations Team\",\n        \"manual\",\n    ),\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_doc, \"great_expectations\", \"great_expectations Documentation\", [author], 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    (\n        index_doc,\n        \"great_expectations\",\n        \"great_expectations Documentation\",\n        author,\n        \"great_expectations\",\n        \"Always know what to expect from your data.\",\n        \"Miscellaneous\",\n    ),\n]\n\n\nautodoc_member_order = \"bysource\"\n\n\ndef process_docstring(app, what, name, obj, options, lines):\n\n    from docs.feature_annotation_parser import parse_feature_annotation\n\n    docstring = \"\\n\".join(lines)\n    annotation_list = parse_feature_annotation(docstring)\n\n    process_between = between(marker=\"--ge-feature-maturity-info--\", exclude=True)\n    process_between(app, what, name, obj, options, lines)\n\n    if not annotation_list:\n        return\n\n    feature_annotation_admonition = \"\"\"\n.. admonition:: `Feature Maturity <https://docs.greatexpectations.io/en/latest/features>`_\n\n    \"\"\"\n\n    feature_annotation_template = \"\"\"\n    |   |icon-{icon_hash}| **{title}** - `How-to Guide <{how_to_guide_url}>`_\n    |       {description}\n    |       **Maturity**: {maturity}\n    |       **Details**:\n    |           **API Stability**: {maturity_details[api_stability]}\n    |           **Implementation Completeness**: {maturity_details[implementation_completeness]}\n    |           **Unit Test Coverage**: {maturity_details[unit_test_coverage]}\n    |           **Integration Infrastructure/Test Coverage**: {maturity_details[integration_infrastructure_test_coverage]}\n    |           **Documentation Completeness**: {maturity_details[documentation_completeness]}\n    |           **Bug Risk**: {maturity_details[bug_risk]}\\\n\"\"\"\n    expectation_completeness_template = \"\"\"\n    |           **Expectation Completeness**: {maturity_details[expectation_completeness]}\\\n\"\"\"\n    icon_template = \"\"\"\n    .. |icon-{icon_hash}| image:: {icon}\n              :height: 15px\n\"\"\"\n\n    for annotation in annotation_list:\n        icon_hash = uuid.uuid1().hex\n        annotation[\"icon_hash\"] = icon_hash\n        description = (\n            annotation.get(\"description\")\n            or annotation.get(\"short_description\")\n            or f\"*TODO: {annotation.get('title')} Description*\"\n        )\n        how_to_guide_url = (\n            annotation.get(\"how_to_guide_url\")\n            or \"https://docs.greatexpectations.io/en/latest/how_to_guides.html\"\n        )\n        annotation[\"how_to_guide_url\"] = how_to_guide_url\n        annotation[\"description\"] = description\n\n        if annotation[\"maturity_details\"].get(\"expectation_completeness\"):\n            feature_annotation_admonition += (\n                feature_annotation_template\n                + expectation_completeness_template\n                + icon_template\n            ).format(**annotation)\n        else:\n            feature_annotation_admonition += (\n                feature_annotation_template + icon_template\n            ).format(**annotation)\n\n    lines += feature_annotation_admonition.splitlines()\n\n\ndef setup(app):\n    app.connect(\"autodoc-process-docstring\", process_docstring)\n", "path": "docs/conf.py"}], "after_files": [{"content": "# -*- coding: utf-8 -*-\n#\n# great_expectations documentation build configuration file, created by\n# sphinx-quickstart on Thu Jun  8 23:00:19 2017.\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\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.\n#\n\nimport os\nimport re\nimport sys\nimport uuid\nfrom collections import namedtuple\n\nfrom sphinx.ext.autodoc import between\n\nsys.path.insert(0, os.path.abspath(\"../\"))\n\n\n# -- General configuration ------------------------------------------------\n\n# If your documentation needs a minimal Sphinx version, state it here.\n#\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_rtd_theme',\n    # \"sphinx.ext.autodoc\",\n    \"sphinx.ext.todo\",\n    \"sphinx.ext.coverage\",\n    # 'sphinx.ext.mathjax'\n    \"sphinx.ext.napoleon\",\n    \"sphinxcontrib.contentui\",\n    \"sphinx_gitstamp\",\n    # \"sphinx.ext.autosectionlabel\",\n    \"sphinxcontrib.discourse\",\n    \"autoapi.extension\",\n]\n\nautoapi_type = \"python\"\nautoapi_dirs = [\"../great_expectations\"]\nautoapi_add_toctree_entry = False\n# autoapi_keep_files = True\n\n# Add any paths that contain templates here, relative to this directory.\ntemplates_path = [\"_templates\"]\n\n# discourse url connect\ndiscourse_url = \"https://discuss.greatexpectations.io/\"\n\n# The suffix(es) of source filenames.\n# You can specify multiple suffix as a list of string:\n#\n# source_suffix = ['.rst', '.md']\nsource_suffix = \".rst\"\n\n# The master toctree document.\nindex_doc = \"index\"\n\n# General information about the project.\nproject = \"great_expectations\"\ncopyright = \"2020, The Great Expectations Team. \"\nauthor = \"The Great Expectations Team\"\ngitstamp_fmt = \"%d %b %Y\"\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 = \"\"\n# The full version, including alpha/beta/rc tags.\nrelease = \"\"\n\n# The language for content autogenerated by Sphinx. Refer to documentation\n# for a list of supported languages.\n#\n# This is also used if you do content translation via gettext catalogs.\n# Usually you set \"language\" from the command line for these cases.\nlanguage = None\n\n# List of patterns, relative to source directory, that match files and\n# directories to ignore when looking for source files.\n# This patterns also effect to html_static_path and html_extra_path\nexclude_patterns = []\n\n# The name of the Pygments (syntax highlighting) style to use.\npygments_style = \"paraiso-dark\"\n\n# If true, `todo` and `todoList` produce output, else they produce nothing.\ntodo_include_todos = True\n\n# -- Options for HTML output ----------------------------------------------\n\n# The theme to use for HTML and HTML Help pages.  See the documentation for\n# a list of builtin themes.\n#\n# html_theme = 'alabaster'\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#\nhtml_theme_options = {\n    \"logo_only\": True,\n    \"collapse_navigation\": False,\n    \"navigation_depth\": 4,\n}\n\nhtml_static_path = [\n    \"_static\",\n    \"_static/style.css\",\n    \"_static/hk-grotesk-pro/HKGroteskPro-Bold.woff2\",\n    \"_static/hk-grotesk-pro/HKGroteskPro-Regular.woff2\",\n    \"_static/hk-grotesk-pro/HKGroteskPro-SemiBold.woff2\",\n    \"_static/hk-grotesk-pro/HKGroteskPro-Medium.woff2\",\n    \"_static/header-logo.png\",\n    \"_static/discuss-logo.png\",\n]\nhtml_css_files = [\"style.css\"]\n\n# html_logo = '../pip-logo.png'\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\".\n\n\n# -- Options for Napoleon Extension --------------------------------------------\n\n# Parse Google style docstrings.\n# See http://google.github.io/styleguide/pyguide.html\nnapoleon_google_docstring = True\n\n# Parse NumPy style docstrings.\n# See https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt\nnapoleon_numpy_docstring = True\n\n# Should special members (like __membername__) and private members\n# (like _membername) members be included in the documentation if they\n# have docstrings.\nnapoleon_include_private_with_doc = False\nnapoleon_include_special_with_doc = True\n\n# If True, docstring sections will use the \".. admonition::\" directive.\n# If False, docstring sections will use the \".. rubric::\" directive.\n# One may look better than the other depending on what HTML theme is used.\nnapoleon_use_admonition_for_examples = False\nnapoleon_use_admonition_for_notes = False\nnapoleon_use_admonition_for_references = False\n\n# If True, use Sphinx :ivar: directive for instance variables:\n#     :ivar attr1: Description of attr1.\n#     :type attr1: type\n# If False, use Sphinx .. attribute:: directive for instance variables:\n#     .. attribute:: attr1\n#\n#        *type*\n#\n#        Description of attr1.\nnapoleon_use_ivar = False\n\n# If True, use Sphinx :param: directive for function parameters:\n#     :param arg1: Description of arg1.\n#     :type arg1: type\n# If False, output function parameters using the :parameters: field:\n#     :parameters: **arg1** (*type*) -- Description of arg1.\nnapoleon_use_param = True\n\n# If True, use Sphinx :rtype: directive for the return type:\n#     :returns: Description of return value.\n#     :rtype: type\n# If False, output the return type inline with the return description:\n#     :returns: *type* -- Description of return value.\nnapoleon_use_rtype = True\n\n\n# -- Options for HTMLHelp output ------------------------------------------\n\n# Output file base name for HTML help builder.\nhtmlhelp_basename = \"great_expectationsdoc\"\n\n\n# -- Options for LaTeX output ---------------------------------------------\n\nlatex_elements = {\n    # The paper size ('letterpaper' or 'a4paper').\n    #\n    # 'papersize': 'letterpaper',\n    # The font size ('10pt', '11pt' or '12pt').\n    #\n    # 'pointsize': '10pt',\n    # Additional stuff for the LaTeX preamble.\n    #\n    # 'preamble': '',\n    # Latex figure (float) alignment\n    #\n    # 'figure_align': 'htbp',\n}\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    (\n        index_doc,\n        \"great_expectations.tex\",\n        \"great_expectations Documentation\",\n        \"The Great Expectations Team\",\n        \"manual\",\n    ),\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_doc, \"great_expectations\", \"great_expectations Documentation\", [author], 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    (\n        index_doc,\n        \"great_expectations\",\n        \"great_expectations Documentation\",\n        author,\n        \"great_expectations\",\n        \"Always know what to expect from your data.\",\n        \"Miscellaneous\",\n    ),\n]\n\n\nautodoc_member_order = \"bysource\"\n\n\ndef process_docstring(app, what, name, obj, options, lines):\n\n    from docs.feature_annotation_parser import parse_feature_annotation\n\n    docstring = \"\\n\".join(lines)\n    annotation_list = parse_feature_annotation(docstring)\n\n    process_between = between(marker=\"--ge-feature-maturity-info--\", exclude=True)\n    process_between(app, what, name, obj, options, lines)\n\n    if not annotation_list:\n        return\n\n    feature_annotation_admonition = \"\"\"\n.. admonition:: `Feature Maturity <https://docs.greatexpectations.io/en/latest/features>`_\n\n    \"\"\"\n\n    feature_annotation_template = \"\"\"\n    |   |icon-{icon_hash}| **{title}** - `How-to Guide <{how_to_guide_url}>`_\n    |       {description}\n    |       **Maturity**: {maturity}\n    |       **Details**:\n    |           **API Stability**: {maturity_details[api_stability]}\n    |           **Implementation Completeness**: {maturity_details[implementation_completeness]}\n    |           **Unit Test Coverage**: {maturity_details[unit_test_coverage]}\n    |           **Integration Infrastructure/Test Coverage**: {maturity_details[integration_infrastructure_test_coverage]}\n    |           **Documentation Completeness**: {maturity_details[documentation_completeness]}\n    |           **Bug Risk**: {maturity_details[bug_risk]}\\\n\"\"\"\n    expectation_completeness_template = \"\"\"\n    |           **Expectation Completeness**: {maturity_details[expectation_completeness]}\\\n\"\"\"\n    icon_template = \"\"\"\n    .. |icon-{icon_hash}| image:: {icon}\n              :height: 15px\n\"\"\"\n\n    for annotation in annotation_list:\n        icon_hash = uuid.uuid1().hex\n        annotation[\"icon_hash\"] = icon_hash\n        description = (\n            annotation.get(\"description\")\n            or annotation.get(\"short_description\")\n            or f\"*TODO: {annotation.get('title')} Description*\"\n        )\n        how_to_guide_url = (\n            annotation.get(\"how_to_guide_url\")\n            or \"https://docs.greatexpectations.io/en/latest/how_to_guides.html\"\n        )\n        annotation[\"how_to_guide_url\"] = how_to_guide_url\n        annotation[\"description\"] = description\n\n        if annotation[\"maturity_details\"].get(\"expectation_completeness\"):\n            feature_annotation_admonition += (\n                feature_annotation_template\n                + expectation_completeness_template\n                + icon_template\n            ).format(**annotation)\n        else:\n            feature_annotation_admonition += (\n                feature_annotation_template + icon_template\n            ).format(**annotation)\n\n    lines += feature_annotation_admonition.splitlines()\n\n\ndef setup(app):\n    app.connect(\"autodoc-process-docstring\", process_docstring)\n", "path": "docs/conf.py"}]}