prompt: 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: `great_expectations/data_context/store/configuration_store.py`
  Content:
  ```
  1 import logging
  2 from typing import Optional
  3 
  4 from ruamel.yaml import YAML
  5 from ruamel.yaml.comments import CommentedMap
  6 
  7 import great_expectations.exceptions as ge_exceptions
  8 from great_expectations.data_context.store import GeCloudStoreBackend
  9 from great_expectations.data_context.store.store import Store
  10 from great_expectations.data_context.store.tuple_store_backend import TupleStoreBackend
  11 from great_expectations.data_context.types.base import BaseYamlConfig
  12 from great_expectations.data_context.types.resource_identifiers import (
  13     ConfigurationIdentifier,
  14 )
  15 from great_expectations.data_context.util import load_class
  16 from great_expectations.util import (
  17     filter_properties_dict,
  18     verify_dynamic_loading_support,
  19 )
  20 
  21 yaml = YAML()
  22 
  23 yaml.indent(mapping=2, sequence=4, offset=2)
  24 yaml.default_flow_style = False
  25 
  26 logger = logging.getLogger(__name__)
  27 
  28 
  29 class ConfigurationStore(Store):
  30 
  31     """
  32     Configuration Store provides a way to store any Marshmallow Schema compatible Configuration (using the YAML format).
  33     """
  34 
  35     _key_class = ConfigurationIdentifier
  36 
  37     _configuration_class = BaseYamlConfig
  38 
  39     def __init__(
  40         self,
  41         store_name: str,
  42         store_backend: Optional[dict] = None,
  43         overwrite_existing: bool = False,
  44         runtime_environment: Optional[dict] = None,
  45     ):
  46         if not issubclass(self._configuration_class, BaseYamlConfig):
  47             raise ge_exceptions.DataContextError(
  48                 "Invalid configuration: A configuration_class needs to inherit from the BaseYamlConfig class."
  49             )
  50 
  51         if store_backend is not None:
  52             store_backend_module_name = store_backend.get(
  53                 "module_name", "great_expectations.data_context.store"
  54             )
  55             store_backend_class_name = store_backend.get(
  56                 "class_name", "InMemoryStoreBackend"
  57             )
  58             verify_dynamic_loading_support(module_name=store_backend_module_name)
  59             store_backend_class = load_class(
  60                 store_backend_class_name, store_backend_module_name
  61             )
  62 
  63             # Store Backend Class was loaded successfully; verify that it is of a correct subclass.
  64             if issubclass(store_backend_class, TupleStoreBackend):
  65                 # Provide defaults for this common case
  66                 store_backend["filepath_template"] = store_backend.get(
  67                     "filepath_template", "{0}.yml"
  68                 )
  69 
  70         super().__init__(
  71             store_backend=store_backend,
  72             runtime_environment=runtime_environment,
  73             store_name=store_name,
  74         )
  75 
  76         # Gather the call arguments of the present function (include the "module_name" and add the "class_name"), filter
  77         # out the Falsy values, and set the instance "_config" variable equal to the resulting dictionary.
  78         self._config = {
  79             "store_name": store_name,
  80             "store_backend": store_backend,
  81             "overwrite_existing": overwrite_existing,
  82             "runtime_environment": runtime_environment,
  83             "module_name": self.__class__.__module__,
  84             "class_name": self.__class__.__name__,
  85         }
  86         filter_properties_dict(properties=self._config, clean_falsy=True, inplace=True)
  87 
  88         self._overwrite_existing = overwrite_existing
  89 
  90     def remove_key(self, key):
  91         return self.store_backend.remove_key(key)
  92 
  93     def serialize(self, key, value):
  94         if self.ge_cloud_mode:
  95             # GeCloudStoreBackend expects a json str
  96             config_schema = value.get_schema_class()()
  97             return config_schema.dump(value)
  98         return value.to_yaml_str()
  99 
  100     def deserialize(self, key, value):
  101         config = value
  102         if isinstance(value, str):
  103             config: CommentedMap = yaml.load(value)
  104         try:
  105             return self._configuration_class.from_commented_map(commented_map=config)
  106         except ge_exceptions.InvalidBaseYamlConfigError:
  107             # Just to be explicit about what we intended to catch
  108             raise
  109 
  110     @property
  111     def overwrite_existing(self) -> bool:
  112         return self._overwrite_existing
  113 
  114     @overwrite_existing.setter
  115     def overwrite_existing(self, overwrite_existing: bool):
  116         self._overwrite_existing = overwrite_existing
  117 
  118     @property
  119     def config(self) -> dict:
  120         return self._config
  121 
  122     def self_check(self, pretty_print: bool = True) -> dict:
  123         # Provide visibility into parameters that ConfigurationStore was instantiated with.
  124         report_object: dict = {"config": self.config}
  125 
  126         if pretty_print:
  127             print("Checking for existing keys...")
  128 
  129         report_object["keys"] = sorted(
  130             key.configuration_key for key in self.list_keys()
  131         )
  132 
  133         report_object["len_keys"] = len(report_object["keys"])
  134         len_keys: int = report_object["len_keys"]
  135 
  136         if pretty_print:
  137             if report_object["len_keys"] == 0:
  138                 print(f"\t{len_keys} keys found")
  139             else:
  140                 print(f"\t{len_keys} keys found:")
  141                 for key in report_object["keys"][:10]:
  142                     print("\t\t" + str(key))
  143             if len_keys > 10:
  144                 print("\t\t...")
  145             print()
  146 
  147         self.serialization_self_check(pretty_print=pretty_print)
  148 
  149         return report_object
  150 
  151     def serialization_self_check(self, pretty_print: bool):
  152         raise NotImplementedError
  153
  ```
  --- 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()
  
  ```
  
golden_diff: diff --git a/great_expectations/data_context/store/configuration_store.py b/great_expectations/data_context/store/configuration_store.py
  --- a/great_expectations/data_context/store/configuration_store.py
  +++ b/great_expectations/data_context/store/configuration_store.py
  @@ -63,8 +63,8 @@
               # Store Backend Class was loaded successfully; verify that it is of a correct subclass.
               if issubclass(store_backend_class, TupleStoreBackend):
                   # Provide defaults for this common case
  -                store_backend["filepath_template"] = store_backend.get(
  -                    "filepath_template", "{0}.yml"
  +                store_backend["filepath_suffix"] = store_backend.get(
  +                    "filepath_suffix", ".yml"
                   )
   
           super().__init__(
  
verification_info: {"golden_diff": "diff --git a/great_expectations/data_context/store/configuration_store.py b/great_expectations/data_context/store/configuration_store.py\n--- a/great_expectations/data_context/store/configuration_store.py\n+++ b/great_expectations/data_context/store/configuration_store.py\n@@ -63,8 +63,8 @@\n             # Store Backend Class was loaded successfully; verify that it is of a correct subclass.\n             if issubclass(store_backend_class, TupleStoreBackend):\n                 # Provide defaults for this common case\n-                store_backend[\"filepath_template\"] = store_backend.get(\n-                    \"filepath_template\", \"{0}.yml\"\n+                store_backend[\"filepath_suffix\"] = store_backend.get(\n+                    \"filepath_suffix\", \".yml\"\n                 )\n \n         super().__init__(\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": "import logging\nfrom typing import Optional\n\nfrom ruamel.yaml import YAML\nfrom ruamel.yaml.comments import CommentedMap\n\nimport great_expectations.exceptions as ge_exceptions\nfrom great_expectations.data_context.store import GeCloudStoreBackend\nfrom great_expectations.data_context.store.store import Store\nfrom great_expectations.data_context.store.tuple_store_backend import TupleStoreBackend\nfrom great_expectations.data_context.types.base import BaseYamlConfig\nfrom great_expectations.data_context.types.resource_identifiers import (\n    ConfigurationIdentifier,\n)\nfrom great_expectations.data_context.util import load_class\nfrom great_expectations.util import (\n    filter_properties_dict,\n    verify_dynamic_loading_support,\n)\n\nyaml = YAML()\n\nyaml.indent(mapping=2, sequence=4, offset=2)\nyaml.default_flow_style = False\n\nlogger = logging.getLogger(__name__)\n\n\nclass ConfigurationStore(Store):\n\n    \"\"\"\n    Configuration Store provides a way to store any Marshmallow Schema compatible Configuration (using the YAML format).\n    \"\"\"\n\n    _key_class = ConfigurationIdentifier\n\n    _configuration_class = BaseYamlConfig\n\n    def __init__(\n        self,\n        store_name: str,\n        store_backend: Optional[dict] = None,\n        overwrite_existing: bool = False,\n        runtime_environment: Optional[dict] = None,\n    ):\n        if not issubclass(self._configuration_class, BaseYamlConfig):\n            raise ge_exceptions.DataContextError(\n                \"Invalid configuration: A configuration_class needs to inherit from the BaseYamlConfig class.\"\n            )\n\n        if store_backend is not None:\n            store_backend_module_name = store_backend.get(\n                \"module_name\", \"great_expectations.data_context.store\"\n            )\n            store_backend_class_name = store_backend.get(\n                \"class_name\", \"InMemoryStoreBackend\"\n            )\n            verify_dynamic_loading_support(module_name=store_backend_module_name)\n            store_backend_class = load_class(\n                store_backend_class_name, store_backend_module_name\n            )\n\n            # Store Backend Class was loaded successfully; verify that it is of a correct subclass.\n            if issubclass(store_backend_class, TupleStoreBackend):\n                # Provide defaults for this common case\n                store_backend[\"filepath_template\"] = store_backend.get(\n                    \"filepath_template\", \"{0}.yml\"\n                )\n\n        super().__init__(\n            store_backend=store_backend,\n            runtime_environment=runtime_environment,\n            store_name=store_name,\n        )\n\n        # Gather the call arguments of the present function (include the \"module_name\" and add the \"class_name\"), filter\n        # out the Falsy values, and set the instance \"_config\" variable equal to the resulting dictionary.\n        self._config = {\n            \"store_name\": store_name,\n            \"store_backend\": store_backend,\n            \"overwrite_existing\": overwrite_existing,\n            \"runtime_environment\": runtime_environment,\n            \"module_name\": self.__class__.__module__,\n            \"class_name\": self.__class__.__name__,\n        }\n        filter_properties_dict(properties=self._config, clean_falsy=True, inplace=True)\n\n        self._overwrite_existing = overwrite_existing\n\n    def remove_key(self, key):\n        return self.store_backend.remove_key(key)\n\n    def serialize(self, key, value):\n        if self.ge_cloud_mode:\n            # GeCloudStoreBackend expects a json str\n            config_schema = value.get_schema_class()()\n            return config_schema.dump(value)\n        return value.to_yaml_str()\n\n    def deserialize(self, key, value):\n        config = value\n        if isinstance(value, str):\n            config: CommentedMap = yaml.load(value)\n        try:\n            return self._configuration_class.from_commented_map(commented_map=config)\n        except ge_exceptions.InvalidBaseYamlConfigError:\n            # Just to be explicit about what we intended to catch\n            raise\n\n    @property\n    def overwrite_existing(self) -> bool:\n        return self._overwrite_existing\n\n    @overwrite_existing.setter\n    def overwrite_existing(self, overwrite_existing: bool):\n        self._overwrite_existing = overwrite_existing\n\n    @property\n    def config(self) -> dict:\n        return self._config\n\n    def self_check(self, pretty_print: bool = True) -> dict:\n        # Provide visibility into parameters that ConfigurationStore was instantiated with.\n        report_object: dict = {\"config\": self.config}\n\n        if pretty_print:\n            print(\"Checking for existing keys...\")\n\n        report_object[\"keys\"] = sorted(\n            key.configuration_key for key in self.list_keys()\n        )\n\n        report_object[\"len_keys\"] = len(report_object[\"keys\"])\n        len_keys: int = report_object[\"len_keys\"]\n\n        if pretty_print:\n            if report_object[\"len_keys\"] == 0:\n                print(f\"\\t{len_keys} keys found\")\n            else:\n                print(f\"\\t{len_keys} keys found:\")\n                for key in report_object[\"keys\"][:10]:\n                    print(\"\\t\\t\" + str(key))\n            if len_keys > 10:\n                print(\"\\t\\t...\")\n            print()\n\n        self.serialization_self_check(pretty_print=pretty_print)\n\n        return report_object\n\n    def serialization_self_check(self, pretty_print: bool):\n        raise NotImplementedError\n", "path": "great_expectations/data_context/store/configuration_store.py"}], "after_files": [{"content": "import logging\nfrom typing import Optional\n\nfrom ruamel.yaml import YAML\nfrom ruamel.yaml.comments import CommentedMap\n\nimport great_expectations.exceptions as ge_exceptions\nfrom great_expectations.data_context.store import GeCloudStoreBackend\nfrom great_expectations.data_context.store.store import Store\nfrom great_expectations.data_context.store.tuple_store_backend import TupleStoreBackend\nfrom great_expectations.data_context.types.base import BaseYamlConfig\nfrom great_expectations.data_context.types.resource_identifiers import (\n    ConfigurationIdentifier,\n)\nfrom great_expectations.data_context.util import load_class\nfrom great_expectations.util import (\n    filter_properties_dict,\n    verify_dynamic_loading_support,\n)\n\nyaml = YAML()\n\nyaml.indent(mapping=2, sequence=4, offset=2)\nyaml.default_flow_style = False\n\nlogger = logging.getLogger(__name__)\n\n\nclass ConfigurationStore(Store):\n\n    \"\"\"\n    Configuration Store provides a way to store any Marshmallow Schema compatible Configuration (using the YAML format).\n    \"\"\"\n\n    _key_class = ConfigurationIdentifier\n\n    _configuration_class = BaseYamlConfig\n\n    def __init__(\n        self,\n        store_name: str,\n        store_backend: Optional[dict] = None,\n        overwrite_existing: bool = False,\n        runtime_environment: Optional[dict] = None,\n    ):\n        if not issubclass(self._configuration_class, BaseYamlConfig):\n            raise ge_exceptions.DataContextError(\n                \"Invalid configuration: A configuration_class needs to inherit from the BaseYamlConfig class.\"\n            )\n\n        if store_backend is not None:\n            store_backend_module_name = store_backend.get(\n                \"module_name\", \"great_expectations.data_context.store\"\n            )\n            store_backend_class_name = store_backend.get(\n                \"class_name\", \"InMemoryStoreBackend\"\n            )\n            verify_dynamic_loading_support(module_name=store_backend_module_name)\n            store_backend_class = load_class(\n                store_backend_class_name, store_backend_module_name\n            )\n\n            # Store Backend Class was loaded successfully; verify that it is of a correct subclass.\n            if issubclass(store_backend_class, TupleStoreBackend):\n                # Provide defaults for this common case\n                store_backend[\"filepath_suffix\"] = store_backend.get(\n                    \"filepath_suffix\", \".yml\"\n                )\n\n        super().__init__(\n            store_backend=store_backend,\n            runtime_environment=runtime_environment,\n            store_name=store_name,\n        )\n\n        # Gather the call arguments of the present function (include the \"module_name\" and add the \"class_name\"), filter\n        # out the Falsy values, and set the instance \"_config\" variable equal to the resulting dictionary.\n        self._config = {\n            \"store_name\": store_name,\n            \"store_backend\": store_backend,\n            \"overwrite_existing\": overwrite_existing,\n            \"runtime_environment\": runtime_environment,\n            \"module_name\": self.__class__.__module__,\n            \"class_name\": self.__class__.__name__,\n        }\n        filter_properties_dict(properties=self._config, clean_falsy=True, inplace=True)\n\n        self._overwrite_existing = overwrite_existing\n\n    def remove_key(self, key):\n        return self.store_backend.remove_key(key)\n\n    def serialize(self, key, value):\n        if self.ge_cloud_mode:\n            # GeCloudStoreBackend expects a json str\n            config_schema = value.get_schema_class()()\n            return config_schema.dump(value)\n        return value.to_yaml_str()\n\n    def deserialize(self, key, value):\n        config = value\n        if isinstance(value, str):\n            config: CommentedMap = yaml.load(value)\n        try:\n            return self._configuration_class.from_commented_map(commented_map=config)\n        except ge_exceptions.InvalidBaseYamlConfigError:\n            # Just to be explicit about what we intended to catch\n            raise\n\n    @property\n    def overwrite_existing(self) -> bool:\n        return self._overwrite_existing\n\n    @overwrite_existing.setter\n    def overwrite_existing(self, overwrite_existing: bool):\n        self._overwrite_existing = overwrite_existing\n\n    @property\n    def config(self) -> dict:\n        return self._config\n\n    def self_check(self, pretty_print: bool = True) -> dict:\n        # Provide visibility into parameters that ConfigurationStore was instantiated with.\n        report_object: dict = {\"config\": self.config}\n\n        if pretty_print:\n            print(\"Checking for existing keys...\")\n\n        report_object[\"keys\"] = sorted(\n            key.configuration_key for key in self.list_keys()\n        )\n\n        report_object[\"len_keys\"] = len(report_object[\"keys\"])\n        len_keys: int = report_object[\"len_keys\"]\n\n        if pretty_print:\n            if report_object[\"len_keys\"] == 0:\n                print(f\"\\t{len_keys} keys found\")\n            else:\n                print(f\"\\t{len_keys} keys found:\")\n                for key in report_object[\"keys\"][:10]:\n                    print(\"\\t\\t\" + str(key))\n            if len_keys > 10:\n                print(\"\\t\\t...\")\n            print()\n\n        self.serialization_self_check(pretty_print=pretty_print)\n\n        return report_object\n\n    def serialization_self_check(self, pretty_print: bool):\n        raise NotImplementedError\n", "path": "great_expectations/data_context/store/configuration_store.py"}]}