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/rule_based_profiler/profiler.py`
  Content:
  ```
  1 import uuid
  2 from typing import Dict, List, Optional, Union
  3 
  4 import great_expectations.exceptions as ge_exceptions
  5 from great_expectations import DataContext
  6 from great_expectations.core import ExpectationConfiguration, ExpectationSuite
  7 from great_expectations.data_context.util import instantiate_class_from_config
  8 from great_expectations.rule_based_profiler.domain_builder.domain_builder import (
  9     DomainBuilder,
  10 )
  11 from great_expectations.rule_based_profiler.expectation_configuration_builder.expectation_configuration_builder import (
  12     ExpectationConfigurationBuilder,
  13 )
  14 from great_expectations.rule_based_profiler.parameter_builder.parameter_builder import (
  15     ParameterBuilder,
  16 )
  17 from great_expectations.rule_based_profiler.parameter_builder.parameter_container import (
  18     ParameterContainer,
  19     build_parameter_container_for_variables,
  20 )
  21 from great_expectations.rule_based_profiler.rule.rule import Rule
  22 
  23 
  24 class Profiler:
  25     """
  26     Profiler object serves to profile, or automatically evaluate a set of rules, upon a given
  27     batch / multiple batches of data.
  28     """
  29 
  30     def __init__(
  31         self,
  32         *,
  33         profiler_config: Optional[Dict[str, Dict[str, Dict]]] = None,
  34         data_context: Optional[DataContext] = None,
  35     ):
  36         """
  37         Create a new Profiler using configured rules.
  38         For a rule or an item in a rule configuration, instantiates the following if
  39         available: a domain builder, a parameter builder, and a configuration builder.
  40         These will be used to define profiler computation patterns.
  41 
  42         Args:
  43             variables_configs: Variables from a profiler configuration
  44             rules_configs: Rule configuration as a dictionary
  45             data_context: DataContext object that defines a full runtime environment (data access, etc.)
  46         """
  47         self._data_context = data_context
  48         self._rules = []
  49 
  50         rules_configs: Dict[str, Dict] = profiler_config.get("rules", {})
  51         rule_name: str
  52         rule_config: dict
  53 
  54         for rule_name, rule_config in rules_configs.items():
  55             domain_builder_config: dict = rule_config.get("domain_builder")
  56 
  57             if domain_builder_config is None:
  58                 raise ge_exceptions.ProfilerConfigurationError(
  59                     message=f'Invalid rule "{rule_name}": no domain_builder found.'
  60                 )
  61 
  62             domain_builder: DomainBuilder = instantiate_class_from_config(
  63                 config=domain_builder_config,
  64                 runtime_environment={"data_context": data_context},
  65                 config_defaults={
  66                     "module_name": "great_expectations.rule_based_profiler.domain_builder"
  67                 },
  68             )
  69 
  70             parameter_builders: List[ParameterBuilder] = []
  71 
  72             parameter_builder_configs: dict = rule_config.get("parameter_builders")
  73 
  74             if parameter_builder_configs:
  75                 parameter_builder_config: dict
  76                 for parameter_builder_config in parameter_builder_configs:
  77                     parameter_builders.append(
  78                         instantiate_class_from_config(
  79                             config=parameter_builder_config,
  80                             runtime_environment={"data_context": data_context},
  81                             config_defaults={
  82                                 "module_name": "great_expectations.rule_based_profiler.parameter_builder"
  83                             },
  84                         )
  85                     )
  86 
  87             expectation_configuration_builders: List[
  88                 ExpectationConfigurationBuilder
  89             ] = []
  90 
  91             expectation_configuration_builder_configs: dict = rule_config.get(
  92                 "expectation_configuration_builders"
  93             )
  94 
  95             if expectation_configuration_builder_configs:
  96                 expectation_configuration_builder_config: dict
  97                 for (
  98                     expectation_configuration_builder_config
  99                 ) in expectation_configuration_builder_configs:
  100                     expectation_configuration_builders.append(
  101                         instantiate_class_from_config(
  102                             config=expectation_configuration_builder_config,
  103                             runtime_environment={},
  104                             config_defaults={
  105                                 "class_name": "DefaultExpectationConfigurationBuilder",
  106                                 "module_name": "great_expectations.rule_based_profiler.expectation_configuration_builder",
  107                             },
  108                         )
  109                     )
  110 
  111             variables_configs: Dict[str, Dict] = profiler_config.get("variables", {})
  112             variables: Optional[ParameterContainer] = None
  113 
  114             if variables_configs:
  115                 variables = build_parameter_container_for_variables(
  116                     variables_configs=variables_configs
  117                 )
  118 
  119             self._rules.append(
  120                 Rule(
  121                     name=rule_name,
  122                     domain_builder=domain_builder,
  123                     parameter_builders=parameter_builders,
  124                     expectation_configuration_builders=expectation_configuration_builders,
  125                     variables=variables,
  126                 )
  127             )
  128 
  129     def profile(
  130         self,
  131         *,
  132         expectation_suite_name: Optional[str] = None,
  133     ) -> ExpectationSuite:
  134         """
  135         Args:
  136             :param expectation_suite_name: A name for returned Expectation suite.
  137         :return: Set of rule evaluation results in the form of an ExpectationSuite
  138         """
  139         if expectation_suite_name is None:
  140             expectation_suite_name = (
  141                 f"tmp_suite_{self.__class__.__name__}_{str(uuid.uuid4())[:8]}"
  142             )
  143 
  144         expectation_suite: ExpectationSuite = ExpectationSuite(
  145             expectation_suite_name=expectation_suite_name
  146         )
  147 
  148         rule: Rule
  149         for rule in self._rules:
  150             expectation_configurations: List[ExpectationConfiguration] = rule.generate()
  151             expectation_configuration: ExpectationConfiguration
  152             for expectation_configuration in expectation_configurations:
  153                 expectation_suite.add_expectation(
  154                     expectation_configuration=expectation_configuration
  155                 )
  156 
  157         return expectation_suite
  158
  ```
  --- 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/rule_based_profiler/profiler.py b/great_expectations/rule_based_profiler/profiler.py
  --- a/great_expectations/rule_based_profiler/profiler.py
  +++ b/great_expectations/rule_based_profiler/profiler.py
  @@ -40,8 +40,7 @@
           These will be used to define profiler computation patterns.
   
           Args:
  -            variables_configs: Variables from a profiler configuration
  -            rules_configs: Rule configuration as a dictionary
  +            profiler_config: Variables and Rules configuration as a dictionary
               data_context: DataContext object that defines a full runtime environment (data access, etc.)
           """
           self._data_context = data_context
  
verification_info: {"golden_diff": "diff --git a/great_expectations/rule_based_profiler/profiler.py b/great_expectations/rule_based_profiler/profiler.py\n--- a/great_expectations/rule_based_profiler/profiler.py\n+++ b/great_expectations/rule_based_profiler/profiler.py\n@@ -40,8 +40,7 @@\n         These will be used to define profiler computation patterns.\n \n         Args:\n-            variables_configs: Variables from a profiler configuration\n-            rules_configs: Rule configuration as a dictionary\n+            profiler_config: Variables and Rules configuration as a dictionary\n             data_context: DataContext object that defines a full runtime environment (data access, etc.)\n         \"\"\"\n         self._data_context = data_context\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 uuid\nfrom typing import Dict, List, Optional, Union\n\nimport great_expectations.exceptions as ge_exceptions\nfrom great_expectations import DataContext\nfrom great_expectations.core import ExpectationConfiguration, ExpectationSuite\nfrom great_expectations.data_context.util import instantiate_class_from_config\nfrom great_expectations.rule_based_profiler.domain_builder.domain_builder import (\n    DomainBuilder,\n)\nfrom great_expectations.rule_based_profiler.expectation_configuration_builder.expectation_configuration_builder import (\n    ExpectationConfigurationBuilder,\n)\nfrom great_expectations.rule_based_profiler.parameter_builder.parameter_builder import (\n    ParameterBuilder,\n)\nfrom great_expectations.rule_based_profiler.parameter_builder.parameter_container import (\n    ParameterContainer,\n    build_parameter_container_for_variables,\n)\nfrom great_expectations.rule_based_profiler.rule.rule import Rule\n\n\nclass Profiler:\n    \"\"\"\n    Profiler object serves to profile, or automatically evaluate a set of rules, upon a given\n    batch / multiple batches of data.\n    \"\"\"\n\n    def __init__(\n        self,\n        *,\n        profiler_config: Optional[Dict[str, Dict[str, Dict]]] = None,\n        data_context: Optional[DataContext] = None,\n    ):\n        \"\"\"\n        Create a new Profiler using configured rules.\n        For a rule or an item in a rule configuration, instantiates the following if\n        available: a domain builder, a parameter builder, and a configuration builder.\n        These will be used to define profiler computation patterns.\n\n        Args:\n            variables_configs: Variables from a profiler configuration\n            rules_configs: Rule configuration as a dictionary\n            data_context: DataContext object that defines a full runtime environment (data access, etc.)\n        \"\"\"\n        self._data_context = data_context\n        self._rules = []\n\n        rules_configs: Dict[str, Dict] = profiler_config.get(\"rules\", {})\n        rule_name: str\n        rule_config: dict\n\n        for rule_name, rule_config in rules_configs.items():\n            domain_builder_config: dict = rule_config.get(\"domain_builder\")\n\n            if domain_builder_config is None:\n                raise ge_exceptions.ProfilerConfigurationError(\n                    message=f'Invalid rule \"{rule_name}\": no domain_builder found.'\n                )\n\n            domain_builder: DomainBuilder = instantiate_class_from_config(\n                config=domain_builder_config,\n                runtime_environment={\"data_context\": data_context},\n                config_defaults={\n                    \"module_name\": \"great_expectations.rule_based_profiler.domain_builder\"\n                },\n            )\n\n            parameter_builders: List[ParameterBuilder] = []\n\n            parameter_builder_configs: dict = rule_config.get(\"parameter_builders\")\n\n            if parameter_builder_configs:\n                parameter_builder_config: dict\n                for parameter_builder_config in parameter_builder_configs:\n                    parameter_builders.append(\n                        instantiate_class_from_config(\n                            config=parameter_builder_config,\n                            runtime_environment={\"data_context\": data_context},\n                            config_defaults={\n                                \"module_name\": \"great_expectations.rule_based_profiler.parameter_builder\"\n                            },\n                        )\n                    )\n\n            expectation_configuration_builders: List[\n                ExpectationConfigurationBuilder\n            ] = []\n\n            expectation_configuration_builder_configs: dict = rule_config.get(\n                \"expectation_configuration_builders\"\n            )\n\n            if expectation_configuration_builder_configs:\n                expectation_configuration_builder_config: dict\n                for (\n                    expectation_configuration_builder_config\n                ) in expectation_configuration_builder_configs:\n                    expectation_configuration_builders.append(\n                        instantiate_class_from_config(\n                            config=expectation_configuration_builder_config,\n                            runtime_environment={},\n                            config_defaults={\n                                \"class_name\": \"DefaultExpectationConfigurationBuilder\",\n                                \"module_name\": \"great_expectations.rule_based_profiler.expectation_configuration_builder\",\n                            },\n                        )\n                    )\n\n            variables_configs: Dict[str, Dict] = profiler_config.get(\"variables\", {})\n            variables: Optional[ParameterContainer] = None\n\n            if variables_configs:\n                variables = build_parameter_container_for_variables(\n                    variables_configs=variables_configs\n                )\n\n            self._rules.append(\n                Rule(\n                    name=rule_name,\n                    domain_builder=domain_builder,\n                    parameter_builders=parameter_builders,\n                    expectation_configuration_builders=expectation_configuration_builders,\n                    variables=variables,\n                )\n            )\n\n    def profile(\n        self,\n        *,\n        expectation_suite_name: Optional[str] = None,\n    ) -> ExpectationSuite:\n        \"\"\"\n        Args:\n            :param expectation_suite_name: A name for returned Expectation suite.\n        :return: Set of rule evaluation results in the form of an ExpectationSuite\n        \"\"\"\n        if expectation_suite_name is None:\n            expectation_suite_name = (\n                f\"tmp_suite_{self.__class__.__name__}_{str(uuid.uuid4())[:8]}\"\n            )\n\n        expectation_suite: ExpectationSuite = ExpectationSuite(\n            expectation_suite_name=expectation_suite_name\n        )\n\n        rule: Rule\n        for rule in self._rules:\n            expectation_configurations: List[ExpectationConfiguration] = rule.generate()\n            expectation_configuration: ExpectationConfiguration\n            for expectation_configuration in expectation_configurations:\n                expectation_suite.add_expectation(\n                    expectation_configuration=expectation_configuration\n                )\n\n        return expectation_suite\n", "path": "great_expectations/rule_based_profiler/profiler.py"}], "after_files": [{"content": "import uuid\nfrom typing import Dict, List, Optional, Union\n\nimport great_expectations.exceptions as ge_exceptions\nfrom great_expectations import DataContext\nfrom great_expectations.core import ExpectationConfiguration, ExpectationSuite\nfrom great_expectations.data_context.util import instantiate_class_from_config\nfrom great_expectations.rule_based_profiler.domain_builder.domain_builder import (\n    DomainBuilder,\n)\nfrom great_expectations.rule_based_profiler.expectation_configuration_builder.expectation_configuration_builder import (\n    ExpectationConfigurationBuilder,\n)\nfrom great_expectations.rule_based_profiler.parameter_builder.parameter_builder import (\n    ParameterBuilder,\n)\nfrom great_expectations.rule_based_profiler.parameter_builder.parameter_container import (\n    ParameterContainer,\n    build_parameter_container_for_variables,\n)\nfrom great_expectations.rule_based_profiler.rule.rule import Rule\n\n\nclass Profiler:\n    \"\"\"\n    Profiler object serves to profile, or automatically evaluate a set of rules, upon a given\n    batch / multiple batches of data.\n    \"\"\"\n\n    def __init__(\n        self,\n        *,\n        profiler_config: Optional[Dict[str, Dict[str, Dict]]] = None,\n        data_context: Optional[DataContext] = None,\n    ):\n        \"\"\"\n        Create a new Profiler using configured rules.\n        For a rule or an item in a rule configuration, instantiates the following if\n        available: a domain builder, a parameter builder, and a configuration builder.\n        These will be used to define profiler computation patterns.\n\n        Args:\n            profiler_config: Variables and Rules configuration as a dictionary\n            data_context: DataContext object that defines a full runtime environment (data access, etc.)\n        \"\"\"\n        self._data_context = data_context\n        self._rules = []\n\n        rules_configs: Dict[str, Dict] = profiler_config.get(\"rules\", {})\n        rule_name: str\n        rule_config: dict\n\n        for rule_name, rule_config in rules_configs.items():\n            domain_builder_config: dict = rule_config.get(\"domain_builder\")\n\n            if domain_builder_config is None:\n                raise ge_exceptions.ProfilerConfigurationError(\n                    message=f'Invalid rule \"{rule_name}\": no domain_builder found.'\n                )\n\n            domain_builder: DomainBuilder = instantiate_class_from_config(\n                config=domain_builder_config,\n                runtime_environment={\"data_context\": data_context},\n                config_defaults={\n                    \"module_name\": \"great_expectations.rule_based_profiler.domain_builder\"\n                },\n            )\n\n            parameter_builders: List[ParameterBuilder] = []\n\n            parameter_builder_configs: dict = rule_config.get(\"parameter_builders\")\n\n            if parameter_builder_configs:\n                parameter_builder_config: dict\n                for parameter_builder_config in parameter_builder_configs:\n                    parameter_builders.append(\n                        instantiate_class_from_config(\n                            config=parameter_builder_config,\n                            runtime_environment={\"data_context\": data_context},\n                            config_defaults={\n                                \"module_name\": \"great_expectations.rule_based_profiler.parameter_builder\"\n                            },\n                        )\n                    )\n\n            expectation_configuration_builders: List[\n                ExpectationConfigurationBuilder\n            ] = []\n\n            expectation_configuration_builder_configs: dict = rule_config.get(\n                \"expectation_configuration_builders\"\n            )\n\n            if expectation_configuration_builder_configs:\n                expectation_configuration_builder_config: dict\n                for (\n                    expectation_configuration_builder_config\n                ) in expectation_configuration_builder_configs:\n                    expectation_configuration_builders.append(\n                        instantiate_class_from_config(\n                            config=expectation_configuration_builder_config,\n                            runtime_environment={},\n                            config_defaults={\n                                \"class_name\": \"DefaultExpectationConfigurationBuilder\",\n                                \"module_name\": \"great_expectations.rule_based_profiler.expectation_configuration_builder\",\n                            },\n                        )\n                    )\n\n            variables_configs: Dict[str, Dict] = profiler_config.get(\"variables\", {})\n            variables: Optional[ParameterContainer] = None\n\n            if variables_configs:\n                variables = build_parameter_container_for_variables(\n                    variables_configs=variables_configs\n                )\n\n            self._rules.append(\n                Rule(\n                    name=rule_name,\n                    domain_builder=domain_builder,\n                    parameter_builders=parameter_builders,\n                    expectation_configuration_builders=expectation_configuration_builders,\n                    variables=variables,\n                )\n            )\n\n    def profile(\n        self,\n        *,\n        expectation_suite_name: Optional[str] = None,\n    ) -> ExpectationSuite:\n        \"\"\"\n        Args:\n            :param expectation_suite_name: A name for returned Expectation suite.\n        :return: Set of rule evaluation results in the form of an ExpectationSuite\n        \"\"\"\n        if expectation_suite_name is None:\n            expectation_suite_name = (\n                f\"tmp_suite_{self.__class__.__name__}_{str(uuid.uuid4())[:8]}\"\n            )\n\n        expectation_suite: ExpectationSuite = ExpectationSuite(\n            expectation_suite_name=expectation_suite_name\n        )\n\n        rule: Rule\n        for rule in self._rules:\n            expectation_configurations: List[ExpectationConfiguration] = rule.generate()\n            expectation_configuration: ExpectationConfiguration\n            for expectation_configuration in expectation_configurations:\n                expectation_suite.add_expectation(\n                    expectation_configuration=expectation_configuration\n                )\n\n        return expectation_suite\n", "path": "great_expectations/rule_based_profiler/profiler.py"}]}