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: `contrib/experimental/great_expectations_experimental/expectations/expect_queried_slowly_changing_table_to_have_no_gaps.py`
Content:
```
1 from datetime import datetime, timedelta
2 from typing import Optional, Union
3 
4 from great_expectations.core.expectation_configuration import ExpectationConfiguration
5 from great_expectations.core.util import convert_to_json_serializable
6 from great_expectations.exceptions.exceptions import (
7     InvalidExpectationConfigurationError,
8 )
9 from great_expectations.execution_engine import ExecutionEngine
10 from great_expectations.expectations.expectation import (
11     ExpectationValidationResult,
12     QueryExpectation,
13 )
14 
15 
16 class ExpectQueriedSlowlyChangingTableToHaveNoGaps(QueryExpectation):
17     """Expect Slowly changing table type II to have no gaps between the 'end date' of each row, and the next 'start date' in the next row.
18 
19     Args:
20         template_dict: dict with the following keys: \
21             primary_key (primary key column name or multiple columns, comma separated), \
22             open_date_column (name of the column representing open date), \
23             close_date_column (name of the column representing clode date)
24         threshold: an optional parameter - default is zero. \
25             if the ratio of "gaps" to total table rows is higher than threshold - error will be raised.
26     """
27 
28     metric_dependencies = ("query.template_values",)
29 
30     query = """
31     SELECT SUM(CASE WHEN {close_date_column} != COALESCE(next_start_date, {close_date_column}) THEN 1 ELSE 0 END),
32     COUNT(1)
33     FROM(SELECT {primary_key}, {close_date_column}, LEAD({open_date_column}) OVER(PARTITION BY {primary_key} ORDER BY
34     {open_date_column}) AS next_start_date
35     FROM {active_batch})
36     """
37 
38     success_keys = (
39         "template_dict",
40         "threshold",
41         "query",
42     )
43 
44     domain_keys = (
45         "template_dict",
46         "query",
47         "batch_id",
48         "row_condition",
49         "condition_parser",
50     )
51 
52     default_kwarg_values = {
53         "result_format": "BASIC",
54         "include_config": True,
55         "catch_exceptions": False,
56         "meta": None,
57         "threshold": 0,
58         "query": query,
59     }
60 
61     library_metadata = {"tags": ["query-based"], "contributors": ["@itaise"]}
62 
63     def _validate(
64         self,
65         configuration: ExpectationConfiguration,
66         metrics: dict,
67         runtime_configuration: dict = None,
68         execution_engine: ExecutionEngine = None,
69     ) -> Union[ExpectationValidationResult, dict]:
70         threshold = configuration["kwargs"].get("threshold")
71         if not threshold:
72             threshold = self.default_kwarg_values["threshold"]
73 
74         metrics = convert_to_json_serializable(data=metrics)
75         holes_count, total_count = list(
76             metrics.get("query.template_values")[0].values()
77         )[0]
78         error_rate = holes_count / total_count
79 
80         return {
81             "success": error_rate <= threshold,
82             "result": {
83                 "threshold": threshold,
84                 "holes_count": holes_count,
85                 "total_count": total_count,
86             },
87         }
88 
89     today = datetime(year=2022, month=8, day=10)
90     one_day_ago = today - timedelta(days=1)
91     two_day_ago = today - timedelta(days=2)
92     three_day_ago = today - timedelta(days=3)
93     four_day_ago = today - timedelta(days=4)
94     five_day_ago = today - timedelta(days=5)
95     six_day_ago = today - timedelta(days=6)
96     seven_day_ago = today - timedelta(days=7)
97     eight_day_ago = today - timedelta(days=8)
98     nine_day_ago = today - timedelta(days=9)
99     ten_day_ago = today - timedelta(days=10)
100 
101     examples = [
102         {
103             "data": [
104                 {
105                     "dataset_name": "test",
106                     "data": {
107                         "msid": [
108                             "aaa",
109                             "aaa",
110                             "aaa",
111                             "aaa",
112                             "aaa",
113                             "aaa",
114                             "aaa",
115                             "aaa",
116                             "aaa",
117                         ],
118                         "uuid": [
119                             "aaa",
120                             "aaa",
121                             "aaa",
122                             "aaa",
123                             "aaa",
124                             "aaa",
125                             "aaa",
126                             "aaa",
127                             "aaa",
128                         ],
129                         "col1": [1, 2, 2, 3, 4, 5, 6, 7, 8],
130                         "col2": ["a", "a", "b", "b", "a", "a", "a", "a", "a"],
131                         "start_date": [
132                             ten_day_ago,
133                             nine_day_ago,
134                             eight_day_ago,
135                             seven_day_ago,
136                             six_day_ago,
137                             five_day_ago,
138                             four_day_ago,
139                             three_day_ago,
140                             two_day_ago,
141                         ],
142                         "end_date": [
143                             nine_day_ago,
144                             eight_day_ago,
145                             seven_day_ago,
146                             six_day_ago,
147                             five_day_ago,
148                             four_day_ago,
149                             three_day_ago,
150                             two_day_ago,
151                             one_day_ago,
152                         ],
153                         "start_date_2": [
154                             ten_day_ago,
155                             seven_day_ago,
156                             six_day_ago,
157                             five_day_ago,
158                             four_day_ago,
159                             three_day_ago,
160                             two_day_ago,
161                             two_day_ago,
162                             two_day_ago,
163                         ],
164                         "end_date_2": [
165                             nine_day_ago,
166                             six_day_ago,
167                             six_day_ago,
168                             five_day_ago,
169                             four_day_ago,
170                             three_day_ago,
171                             two_day_ago,
172                             two_day_ago,
173                             two_day_ago,
174                         ],
175                     },
176                 },
177             ],
178             "tests": [
179                 {
180                     "title": "basic_positive_test",
181                     "exact_match_out": False,
182                     "include_in_gallery": True,
183                     "in": {
184                         "template_dict": {
185                             "primary_key": "msid,uuid",
186                             "open_date_column": "start_date",
187                             "close_date_column": "end_date",
188                         }
189                     },
190                     "out": {"success": True},
191                     "only_for": ["sqlite"],
192                 },
193                 {
194                     "title": "basic_negative_test",
195                     "exact_match_out": False,
196                     "include_in_gallery": True,
197                     "in": {
198                         "template_dict": {
199                             "primary_key": "msid,uuid",
200                             "open_date_column": "start_date_2",
201                             "close_date_column": "end_date_2",
202                         },
203                         "threshold": 0.1,
204                     },
205                     "out": {"success": False},
206                     "only_for": ["sqlite"],
207                 },
208             ],
209             "test_backends": [
210                 {
211                     "backend": "sqlalchemy",
212                     "dialects": ["sqlite"],
213                 }
214             ],
215         },
216     ]
217 
218     def validate_configuration(
219         self, configuration: Optional[ExpectationConfiguration]
220     ) -> None:
221         super().validate_configuration(configuration)
222         threshold = configuration["kwargs"].get("threshold")
223         if not threshold:
224             threshold = self.default_kwarg_values["threshold"]
225 
226         try:
227             assert isinstance(threshold, int) or isinstance(threshold, float)
228             assert threshold >= 0
229             assert threshold <= 1
230 
231         except AssertionError as e:
232             raise InvalidExpectationConfigurationError(str(e))
233 
234 
235 if __name__ == "__main__":
236     ExpectQueriedSlowlyChangingTableToHaveNoGaps().print_diagnostic_checklist()
237
```
--- 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/contrib/experimental/great_expectations_experimental/expectations/expect_queried_slowly_changing_table_to_have_no_gaps.py b/contrib/experimental/great_expectations_experimental/expectations/expect_queried_slowly_changing_table_to_have_no_gaps.py
--- a/contrib/experimental/great_expectations_experimental/expectations/expect_queried_slowly_changing_table_to_have_no_gaps.py
+++ b/contrib/experimental/great_expectations_experimental/expectations/expect_queried_slowly_changing_table_to_have_no_gaps.py
@@ -72,10 +72,12 @@
             threshold = self.default_kwarg_values["threshold"]
 
         metrics = convert_to_json_serializable(data=metrics)
+        holes_count: int
+        total_count: int
         holes_count, total_count = list(
             metrics.get("query.template_values")[0].values()
-        )[0]
-        error_rate = holes_count / total_count
+        )
+        error_rate = float(holes_count) / total_count
 
         return {
             "success": error_rate <= threshold,

{"golden_diff": "diff --git a/contrib/experimental/great_expectations_experimental/expectations/expect_queried_slowly_changing_table_to_have_no_gaps.py b/contrib/experimental/great_expectations_experimental/expectations/expect_queried_slowly_changing_table_to_have_no_gaps.py\n--- a/contrib/experimental/great_expectations_experimental/expectations/expect_queried_slowly_changing_table_to_have_no_gaps.py\n+++ b/contrib/experimental/great_expectations_experimental/expectations/expect_queried_slowly_changing_table_to_have_no_gaps.py\n@@ -72,10 +72,12 @@\n             threshold = self.default_kwarg_values[\"threshold\"]\n \n         metrics = convert_to_json_serializable(data=metrics)\n+        holes_count: int\n+        total_count: int\n         holes_count, total_count = list(\n             metrics.get(\"query.template_values\")[0].values()\n-        )[0]\n-        error_rate = holes_count / total_count\n+        )\n+        error_rate = float(holes_count) / total_count\n \n         return {\n             \"success\": error_rate <= threshold,\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": "from datetime import datetime, timedelta\nfrom typing import Optional, Union\n\nfrom great_expectations.core.expectation_configuration import ExpectationConfiguration\nfrom great_expectations.core.util import convert_to_json_serializable\nfrom great_expectations.exceptions.exceptions import (\n    InvalidExpectationConfigurationError,\n)\nfrom great_expectations.execution_engine import ExecutionEngine\nfrom great_expectations.expectations.expectation import (\n    ExpectationValidationResult,\n    QueryExpectation,\n)\n\n\nclass ExpectQueriedSlowlyChangingTableToHaveNoGaps(QueryExpectation):\n    \"\"\"Expect Slowly changing table type II to have no gaps between the 'end date' of each row, and the next 'start date' in the next row.\n\n    Args:\n        template_dict: dict with the following keys: \\\n            primary_key (primary key column name or multiple columns, comma separated), \\\n            open_date_column (name of the column representing open date), \\\n            close_date_column (name of the column representing clode date)\n        threshold: an optional parameter - default is zero. \\\n            if the ratio of \"gaps\" to total table rows is higher than threshold - error will be raised.\n    \"\"\"\n\n    metric_dependencies = (\"query.template_values\",)\n\n    query = \"\"\"\n    SELECT SUM(CASE WHEN {close_date_column} != COALESCE(next_start_date, {close_date_column}) THEN 1 ELSE 0 END),\n    COUNT(1)\n    FROM(SELECT {primary_key}, {close_date_column}, LEAD({open_date_column}) OVER(PARTITION BY {primary_key} ORDER BY\n    {open_date_column}) AS next_start_date\n    FROM {active_batch})\n    \"\"\"\n\n    success_keys = (\n        \"template_dict\",\n        \"threshold\",\n        \"query\",\n    )\n\n    domain_keys = (\n        \"template_dict\",\n        \"query\",\n        \"batch_id\",\n        \"row_condition\",\n        \"condition_parser\",\n    )\n\n    default_kwarg_values = {\n        \"result_format\": \"BASIC\",\n        \"include_config\": True,\n        \"catch_exceptions\": False,\n        \"meta\": None,\n        \"threshold\": 0,\n        \"query\": query,\n    }\n\n    library_metadata = {\"tags\": [\"query-based\"], \"contributors\": [\"@itaise\"]}\n\n    def _validate(\n        self,\n        configuration: ExpectationConfiguration,\n        metrics: dict,\n        runtime_configuration: dict = None,\n        execution_engine: ExecutionEngine = None,\n    ) -> Union[ExpectationValidationResult, dict]:\n        threshold = configuration[\"kwargs\"].get(\"threshold\")\n        if not threshold:\n            threshold = self.default_kwarg_values[\"threshold\"]\n\n        metrics = convert_to_json_serializable(data=metrics)\n        holes_count, total_count = list(\n            metrics.get(\"query.template_values\")[0].values()\n        )[0]\n        error_rate = holes_count / total_count\n\n        return {\n            \"success\": error_rate <= threshold,\n            \"result\": {\n                \"threshold\": threshold,\n                \"holes_count\": holes_count,\n                \"total_count\": total_count,\n            },\n        }\n\n    today = datetime(year=2022, month=8, day=10)\n    one_day_ago = today - timedelta(days=1)\n    two_day_ago = today - timedelta(days=2)\n    three_day_ago = today - timedelta(days=3)\n    four_day_ago = today - timedelta(days=4)\n    five_day_ago = today - timedelta(days=5)\n    six_day_ago = today - timedelta(days=6)\n    seven_day_ago = today - timedelta(days=7)\n    eight_day_ago = today - timedelta(days=8)\n    nine_day_ago = today - timedelta(days=9)\n    ten_day_ago = today - timedelta(days=10)\n\n    examples = [\n        {\n            \"data\": [\n                {\n                    \"dataset_name\": \"test\",\n                    \"data\": {\n                        \"msid\": [\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                        ],\n                        \"uuid\": [\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                        ],\n                        \"col1\": [1, 2, 2, 3, 4, 5, 6, 7, 8],\n                        \"col2\": [\"a\", \"a\", \"b\", \"b\", \"a\", \"a\", \"a\", \"a\", \"a\"],\n                        \"start_date\": [\n                            ten_day_ago,\n                            nine_day_ago,\n                            eight_day_ago,\n                            seven_day_ago,\n                            six_day_ago,\n                            five_day_ago,\n                            four_day_ago,\n                            three_day_ago,\n                            two_day_ago,\n                        ],\n                        \"end_date\": [\n                            nine_day_ago,\n                            eight_day_ago,\n                            seven_day_ago,\n                            six_day_ago,\n                            five_day_ago,\n                            four_day_ago,\n                            three_day_ago,\n                            two_day_ago,\n                            one_day_ago,\n                        ],\n                        \"start_date_2\": [\n                            ten_day_ago,\n                            seven_day_ago,\n                            six_day_ago,\n                            five_day_ago,\n                            four_day_ago,\n                            three_day_ago,\n                            two_day_ago,\n                            two_day_ago,\n                            two_day_ago,\n                        ],\n                        \"end_date_2\": [\n                            nine_day_ago,\n                            six_day_ago,\n                            six_day_ago,\n                            five_day_ago,\n                            four_day_ago,\n                            three_day_ago,\n                            two_day_ago,\n                            two_day_ago,\n                            two_day_ago,\n                        ],\n                    },\n                },\n            ],\n            \"tests\": [\n                {\n                    \"title\": \"basic_positive_test\",\n                    \"exact_match_out\": False,\n                    \"include_in_gallery\": True,\n                    \"in\": {\n                        \"template_dict\": {\n                            \"primary_key\": \"msid,uuid\",\n                            \"open_date_column\": \"start_date\",\n                            \"close_date_column\": \"end_date\",\n                        }\n                    },\n                    \"out\": {\"success\": True},\n                    \"only_for\": [\"sqlite\"],\n                },\n                {\n                    \"title\": \"basic_negative_test\",\n                    \"exact_match_out\": False,\n                    \"include_in_gallery\": True,\n                    \"in\": {\n                        \"template_dict\": {\n                            \"primary_key\": \"msid,uuid\",\n                            \"open_date_column\": \"start_date_2\",\n                            \"close_date_column\": \"end_date_2\",\n                        },\n                        \"threshold\": 0.1,\n                    },\n                    \"out\": {\"success\": False},\n                    \"only_for\": [\"sqlite\"],\n                },\n            ],\n            \"test_backends\": [\n                {\n                    \"backend\": \"sqlalchemy\",\n                    \"dialects\": [\"sqlite\"],\n                }\n            ],\n        },\n    ]\n\n    def validate_configuration(\n        self, configuration: Optional[ExpectationConfiguration]\n    ) -> None:\n        super().validate_configuration(configuration)\n        threshold = configuration[\"kwargs\"].get(\"threshold\")\n        if not threshold:\n            threshold = self.default_kwarg_values[\"threshold\"]\n\n        try:\n            assert isinstance(threshold, int) or isinstance(threshold, float)\n            assert threshold >= 0\n            assert threshold <= 1\n\n        except AssertionError as e:\n            raise InvalidExpectationConfigurationError(str(e))\n\n\nif __name__ == \"__main__\":\n    ExpectQueriedSlowlyChangingTableToHaveNoGaps().print_diagnostic_checklist()\n", "path": "contrib/experimental/great_expectations_experimental/expectations/expect_queried_slowly_changing_table_to_have_no_gaps.py"}], "after_files": [{"content": "from datetime import datetime, timedelta\nfrom typing import Optional, Union\n\nfrom great_expectations.core.expectation_configuration import ExpectationConfiguration\nfrom great_expectations.core.util import convert_to_json_serializable\nfrom great_expectations.exceptions.exceptions import (\n    InvalidExpectationConfigurationError,\n)\nfrom great_expectations.execution_engine import ExecutionEngine\nfrom great_expectations.expectations.expectation import (\n    ExpectationValidationResult,\n    QueryExpectation,\n)\n\n\nclass ExpectQueriedSlowlyChangingTableToHaveNoGaps(QueryExpectation):\n    \"\"\"Expect Slowly changing table type II to have no gaps between the 'end date' of each row, and the next 'start date' in the next row.\n\n    Args:\n        template_dict: dict with the following keys: \\\n            primary_key (primary key column name or multiple columns, comma separated), \\\n            open_date_column (name of the column representing open date), \\\n            close_date_column (name of the column representing clode date)\n        threshold: an optional parameter - default is zero. \\\n            if the ratio of \"gaps\" to total table rows is higher than threshold - error will be raised.\n    \"\"\"\n\n    metric_dependencies = (\"query.template_values\",)\n\n    query = \"\"\"\n    SELECT SUM(CASE WHEN {close_date_column} != COALESCE(next_start_date, {close_date_column}) THEN 1 ELSE 0 END),\n    COUNT(1)\n    FROM(SELECT {primary_key}, {close_date_column}, LEAD({open_date_column}) OVER(PARTITION BY {primary_key} ORDER BY\n    {open_date_column}) AS next_start_date\n    FROM {active_batch})\n    \"\"\"\n\n    success_keys = (\n        \"template_dict\",\n        \"threshold\",\n        \"query\",\n    )\n\n    domain_keys = (\n        \"template_dict\",\n        \"query\",\n        \"batch_id\",\n        \"row_condition\",\n        \"condition_parser\",\n    )\n\n    default_kwarg_values = {\n        \"result_format\": \"BASIC\",\n        \"include_config\": True,\n        \"catch_exceptions\": False,\n        \"meta\": None,\n        \"threshold\": 0,\n        \"query\": query,\n    }\n\n    library_metadata = {\"tags\": [\"query-based\"], \"contributors\": [\"@itaise\"]}\n\n    def _validate(\n        self,\n        configuration: ExpectationConfiguration,\n        metrics: dict,\n        runtime_configuration: dict = None,\n        execution_engine: ExecutionEngine = None,\n    ) -> Union[ExpectationValidationResult, dict]:\n        threshold = configuration[\"kwargs\"].get(\"threshold\")\n        if not threshold:\n            threshold = self.default_kwarg_values[\"threshold\"]\n\n        metrics = convert_to_json_serializable(data=metrics)\n        holes_count: int\n        total_count: int\n        holes_count, total_count = list(\n            metrics.get(\"query.template_values\")[0].values()\n        )\n        error_rate = float(holes_count) / total_count\n\n        return {\n            \"success\": error_rate <= threshold,\n            \"result\": {\n                \"threshold\": threshold,\n                \"holes_count\": holes_count,\n                \"total_count\": total_count,\n            },\n        }\n\n    today = datetime(year=2022, month=8, day=10)\n    one_day_ago = today - timedelta(days=1)\n    two_day_ago = today - timedelta(days=2)\n    three_day_ago = today - timedelta(days=3)\n    four_day_ago = today - timedelta(days=4)\n    five_day_ago = today - timedelta(days=5)\n    six_day_ago = today - timedelta(days=6)\n    seven_day_ago = today - timedelta(days=7)\n    eight_day_ago = today - timedelta(days=8)\n    nine_day_ago = today - timedelta(days=9)\n    ten_day_ago = today - timedelta(days=10)\n\n    examples = [\n        {\n            \"data\": [\n                {\n                    \"dataset_name\": \"test\",\n                    \"data\": {\n                        \"msid\": [\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                        ],\n                        \"uuid\": [\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                            \"aaa\",\n                        ],\n                        \"col1\": [1, 2, 2, 3, 4, 5, 6, 7, 8],\n                        \"col2\": [\"a\", \"a\", \"b\", \"b\", \"a\", \"a\", \"a\", \"a\", \"a\"],\n                        \"start_date\": [\n                            ten_day_ago,\n                            nine_day_ago,\n                            eight_day_ago,\n                            seven_day_ago,\n                            six_day_ago,\n                            five_day_ago,\n                            four_day_ago,\n                            three_day_ago,\n                            two_day_ago,\n                        ],\n                        \"end_date\": [\n                            nine_day_ago,\n                            eight_day_ago,\n                            seven_day_ago,\n                            six_day_ago,\n                            five_day_ago,\n                            four_day_ago,\n                            three_day_ago,\n                            two_day_ago,\n                            one_day_ago,\n                        ],\n                        \"start_date_2\": [\n                            ten_day_ago,\n                            seven_day_ago,\n                            six_day_ago,\n                            five_day_ago,\n                            four_day_ago,\n                            three_day_ago,\n                            two_day_ago,\n                            two_day_ago,\n                            two_day_ago,\n                        ],\n                        \"end_date_2\": [\n                            nine_day_ago,\n                            six_day_ago,\n                            six_day_ago,\n                            five_day_ago,\n                            four_day_ago,\n                            three_day_ago,\n                            two_day_ago,\n                            two_day_ago,\n                            two_day_ago,\n                        ],\n                    },\n                },\n            ],\n            \"tests\": [\n                {\n                    \"title\": \"basic_positive_test\",\n                    \"exact_match_out\": False,\n                    \"include_in_gallery\": True,\n                    \"in\": {\n                        \"template_dict\": {\n                            \"primary_key\": \"msid,uuid\",\n                            \"open_date_column\": \"start_date\",\n                            \"close_date_column\": \"end_date\",\n                        }\n                    },\n                    \"out\": {\"success\": True},\n                    \"only_for\": [\"sqlite\"],\n                },\n                {\n                    \"title\": \"basic_negative_test\",\n                    \"exact_match_out\": False,\n                    \"include_in_gallery\": True,\n                    \"in\": {\n                        \"template_dict\": {\n                            \"primary_key\": \"msid,uuid\",\n                            \"open_date_column\": \"start_date_2\",\n                            \"close_date_column\": \"end_date_2\",\n                        },\n                        \"threshold\": 0.1,\n                    },\n                    \"out\": {\"success\": False},\n                    \"only_for\": [\"sqlite\"],\n                },\n            ],\n            \"test_backends\": [\n                {\n                    \"backend\": \"sqlalchemy\",\n                    \"dialects\": [\"sqlite\"],\n                }\n            ],\n        },\n    ]\n\n    def validate_configuration(\n        self, configuration: Optional[ExpectationConfiguration]\n    ) -> None:\n        super().validate_configuration(configuration)\n        threshold = configuration[\"kwargs\"].get(\"threshold\")\n        if not threshold:\n            threshold = self.default_kwarg_values[\"threshold\"]\n\n        try:\n            assert isinstance(threshold, int) or isinstance(threshold, float)\n            assert threshold >= 0\n            assert threshold <= 1\n\n        except AssertionError as e:\n            raise InvalidExpectationConfigurationError(str(e))\n\n\nif __name__ == \"__main__\":\n    ExpectQueriedSlowlyChangingTableToHaveNoGaps().print_diagnostic_checklist()\n", "path": "contrib/experimental/great_expectations_experimental/expectations/expect_queried_slowly_changing_table_to_have_no_gaps.py"}]}