internlm/SWE-Fixer-Train-110K huggingface dataset:
Repository: great-expectations/great_expectations

Issue:
Use cleaner solution for non-truncating division in python 2
Prefer `from __future__ import division` to `1.*x/y`


Discussion:
Done inline during improve_partitions push.

Resolving patch:
diff --git a/great_expectations/datasource/data_connector/data_connector.py b/great_expectations/datasource/data_connector/data_connector.py
--- a/great_expectations/datasource/data_connector/data_connector.py
+++ b/great_expectations/datasource/data_connector/data_connector.py
@@ -369,7 +369,7 @@ def _self_check_fetch_batch(
             )
         )
 
-        if pretty_print and df is not None:
+        if pretty_print and data is not None:
             print(f"\n\t\tShowing 5 rows")
             print(data)
 


Test patch:
Repository: great-expectations/great_expectations

Issue:
Use cleaner solution for non-truncating division in python 2
Prefer `from __future__ import division` to `1.*x/y`


Discussion:
Done inline during improve_partitions push.

Resolving patch:
diff --git a/great_expectations/dataset/dataset.py b/great_expectations/dataset/dataset.py
--- a/great_expectations/dataset/dataset.py
+++ b/great_expectations/dataset/dataset.py
@@ -4760,7 +4760,24 @@ def expect_multicolumn_sum_to_equal(
     ):
         """ Multi-Column Map Expectation
 
-        Expects that sum of all rows for a set of columns is equal to a specific value
+        Expects that the sum of row values is the same for each row, summing only values in columns specified in
+        column_list, and equal to the specific value, sum_total.
+
+        For example (with column_list=["B", "C"] and sum_total=5)::
+
+            A B C
+            1 3 2
+            1 5 0
+            1 1 4        
+            
+            Pass
+            
+            A B C
+            1 3 2
+            1 5 1
+            1 1 4        
+            
+            Fail on row 2     
 
         Args:
             column_list (List[str]): \
diff --git a/great_expectations/dataset/pandas_dataset.py b/great_expectations/dataset/pandas_dataset.py
--- a/great_expectations/dataset/pandas_dataset.py
+++ b/great_expectations/dataset/pandas_dataset.py
@@ -1865,7 +1865,8 @@ def expect_multicolumn_sum_to_equal(
     ):
         """ Multi-Column Map Expectation
 
-        Expects that sum of all rows for a set of columns is equal to a specific value
+        Expects that the sum of row values is the same for each row, summing only values in columns specified in
+        column_list, and equal to the specific value, sum_total.
 
         Args:
             column_list (List[str]): \
diff --git a/great_expectations/dataset/sparkdf_dataset.py b/great_expectations/dataset/sparkdf_dataset.py
--- a/great_expectations/dataset/sparkdf_dataset.py
+++ b/great_expectations/dataset/sparkdf_dataset.py
@@ -1630,7 +1630,8 @@ def expect_multicolumn_sum_to_equal(
     ):
         """ Multi-Column Map Expectation
 
-        Expects that sum of all rows for a set of columns is equal to a specific value
+        Expects that the sum of row values is the same for each row, summing only values in columns specified in
+        column_list, and equal to the specific value, sum_total.
 
         Args:
             column_list (List[str]): \


Test patch:
Repository: great-expectations/great_expectations

Issue:
Use cleaner solution for non-truncating division in python 2
Prefer `from __future__ import division` to `1.*x/y`


Discussion:
Done inline during improve_partitions push.

Resolving patch:
diff --git a/great_expectations/expectations/metrics/map_metric_provider.py b/great_expectations/expectations/metrics/map_metric_provider.py
--- a/great_expectations/expectations/metrics/map_metric_provider.py
+++ b/great_expectations/expectations/metrics/map_metric_provider.py
@@ -37,9 +37,11 @@
 
 
 def column_function_partial(
-    engine: Type[ExecutionEngine], partial_fn_type: str = None, **kwargs
+    engine: Type[ExecutionEngine],
+    partial_fn_type: str = None,
+    **kwargs,
 ):
-    """Provides engine-specific support for authing a metric_fn with a simplified signature.
+    """Provides engine-specific support for authoring a metric_fn with a simplified signature.
 
     A metric function that is decorated as a column_function_partial will be called with the engine-specific column type
     and any value_kwargs associated with the Metric for which the provider function is being declared.
@@ -255,12 +257,13 @@ def column_condition_partial(
     partial_fn_type: Optional[Union[str, MetricPartialFunctionTypes]] = None,
     **kwargs,
 ):
-    """Provides engine-specific support for authing a metric_fn with a simplified signature. A column_condition_partial
-    must provide a map function that evalues to a boolean value; it will be used to provide supplemental metrics, such
-    as the unexpected_value count, unexpected_values, and unexpected_rows.
+    """Provides engine-specific support for authoring a metric_fn with a simplified signature.
 
-    A metric function that is decorated as a column_condition_partial will be called with the engine-specific column type
-    and any value_kwargs associated with the Metric for which the provider function is being declared.
+    A column_condition_partial must provide a map function that evalues to a boolean value; it will be used to provide
+    supplemental metrics, such as the unexpected_value count, unexpected_values, and unexpected_rows.
+
+    A metric function that is decorated as a column_condition_partial will be called with the engine-specific column
+    type and any value_kwargs associated with the Metric for which the provider function is being declared.
 
 
 


Test patch:
Repository: great-expectations/great_expectations

Issue:
Use cleaner solution for non-truncating division in python 2
Prefer `from __future__ import division` to `1.*x/y`


Discussion:
Done inline during improve_partitions push.

Resolving patch:
diff --git a/great_expectations/execution_engine/pandas_execution_engine.py b/great_expectations/execution_engine/pandas_execution_engine.py
--- a/great_expectations/execution_engine/pandas_execution_engine.py
+++ b/great_expectations/execution_engine/pandas_execution_engine.py
@@ -354,7 +354,7 @@ class MetricDomainTypes.
             and len(list(accessor_keys)) > 0
         ):
             logger.warning(
-                "Accessor keys ignored since Metric Domain Type is not 'table"
+                'Accessor keys ignored since Metric Domain Type is not "table"'
             )
 
         # If given table (this is default), get all unexpected accessor_keys (an optional parameters allowing us to
diff --git a/great_expectations/execution_engine/sparkdf_execution_engine.py b/great_expectations/execution_engine/sparkdf_execution_engine.py
--- a/great_expectations/execution_engine/sparkdf_execution_engine.py
+++ b/great_expectations/execution_engine/sparkdf_execution_engine.py
@@ -387,7 +387,7 @@ class MetricDomainTypes.
             and len(list(accessor_keys)) > 0
         ):
             logger.warning(
-                "Accessor keys ignored since Metric Domain Type is not 'table"
+                'Accessor keys ignored since Metric Domain Type is not "table"'
             )
 
         if domain_type == MetricDomainTypes.TABLE:
diff --git a/great_expectations/execution_engine/sqlalchemy_execution_engine.py b/great_expectations/execution_engine/sqlalchemy_execution_engine.py
--- a/great_expectations/execution_engine/sqlalchemy_execution_engine.py
+++ b/great_expectations/execution_engine/sqlalchemy_execution_engine.py
@@ -450,7 +450,7 @@ class MetricDomainTypes.
             and len(list(accessor_keys)) > 0
         ):
             logger.warning(
-                "Accessor keys ignored since Metric Domain Type is not 'table'"
+                'Accessor keys ignored since Metric Domain Type is not "table"'
             )
 
         if domain_type == MetricDomainTypes.TABLE:


Test patch:
Repository: great-expectations/great_expectations

Issue:
Use cleaner solution for non-truncating division in python 2
Prefer `from __future__ import division` to `1.*x/y`


Discussion:
Done inline during improve_partitions push.

Resolving patch:
diff --git a/great_expectations/datasource/data_connector/configured_asset_s3_data_connector.py b/great_expectations/datasource/data_connector/configured_asset_s3_data_connector.py
--- a/great_expectations/datasource/data_connector/configured_asset_s3_data_connector.py
+++ b/great_expectations/datasource/data_connector/configured_asset_s3_data_connector.py
@@ -141,6 +141,6 @@ def _get_full_file_path(
         path: str,
         data_asset_name: Optional[str] = None,
     ) -> str:
-        # data_assert_name isn't used in this method.
+        # data_asset_name isn't used in this method.
         # It's only kept for compatibility with parent methods.
         return f"s3a://{os.path.join(self._bucket, path)}"
diff --git a/great_expectations/datasource/data_connector/inferred_asset_s3_data_connector.py b/great_expectations/datasource/data_connector/inferred_asset_s3_data_connector.py
--- a/great_expectations/datasource/data_connector/inferred_asset_s3_data_connector.py
+++ b/great_expectations/datasource/data_connector/inferred_asset_s3_data_connector.py
@@ -137,7 +137,7 @@ def _get_full_file_path(
         path: str,
         data_asset_name: Optional[str] = None,
     ) -> str:
-        # data_assert_name isn't used in this method.
+        # data_asset_name isn't used in this method.
         # It's only kept for compatibility with parent methods.
         _check_valid_s3_path(path)
         return f"s3a://{os.path.join(self._bucket, path)}"


Test patch:
Repository: great-expectations/great_expectations

Issue:
Use cleaner solution for non-truncating division in python 2
Prefer `from __future__ import division` to `1.*x/y`


Discussion:
Done inline during improve_partitions push.

Resolving patch:
diff --git a/great_expectations/data_context/types/base.py b/great_expectations/data_context/types/base.py
--- a/great_expectations/data_context/types/base.py
+++ b/great_expectations/data_context/types/base.py
@@ -479,7 +479,9 @@ def validate_schema(self, data, **kwargs):
 continue.
                 """
             )
-        if ("container" in data or "name_starts_with" in data) and not (
+        if (
+            "azure_options" in data or "container" in data or "name_starts_with" in data
+        ) and not (
             data["class_name"]
             in [
                 "InferredAssetAzureDataConnector",
@@ -492,17 +494,17 @@ def validate_schema(self, data, **kwargs):
 continue.
                     """
             )
-        if not (("conn_str" in data) ^ ("account_url" in data)) and data[
-            "class_name"
-        ] in [
+        if "azure_options" in data and data["class_name"] in [
             "InferredAssetAzureDataConnector",
             "ConfiguredAssetAzureDataConnector",
         ]:
-            raise ge_exceptions.InvalidConfigError(
-                f"""Your current configuration is either missing methods of authentication or is using too many for the Azure type of data connector.
-                You must only select one between `conn_str` and `account_url`. Please update your configuration to continue.
-                """
-            )
+            azure_options = data["azure_options"]
+            if not (("conn_str" in azure_options) ^ ("account_url" in azure_options)):
+                raise ge_exceptions.InvalidConfigError(
+                    f"""Your current configuration is either missing methods of authentication or is using too many for the Azure type of data connector.
+                    You must only select one between `conn_str` and `account_url`. Please update your configuration to continue.
+                    """
+                )
         if (
             "data_asset_name_prefix" in data
             or "data_asset_name_suffix" in data


Test patch:
Repository: great-expectations/great_expectations

Issue:
Use cleaner solution for non-truncating division in python 2
Prefer `from __future__ import division` to `1.*x/y`


Discussion:
Done inline during improve_partitions push.

Resolving patch:
diff --git a/great_expectations/core/expectation_configuration.py b/great_expectations/core/expectation_configuration.py
--- a/great_expectations/core/expectation_configuration.py
+++ b/great_expectations/core/expectation_configuration.py
@@ -71,6 +71,16 @@ class ExpectationConfiguration(SerializableDictDot):
                 "catch_exceptions": False,
             },
         },
+        "expect_table_columns_to_match_set": {
+            "domain_kwargs": [],
+            "success_kwargs": ["column_set", "exact_match"],
+            "default_kwarg_values": {
+                "result_format": "BASIC",
+                "include_config": True,
+                "catch_exceptions": False,
+                "exact_match": True,
+            },
+        },
         "expect_table_column_count_to_be_between": {
             "domain_kwargs": [],
             "success_kwargs": ["min_value", "max_value"],


Test patch:
Repository: great-expectations/great_expectations

Issue:
Use cleaner solution for non-truncating division in python 2
Prefer `from __future__ import division` to `1.*x/y`


Discussion:
Done inline during improve_partitions push.

Resolving patch:
diff --git a/great_expectations/data_context/store/database_store_backend.py b/great_expectations/data_context/store/database_store_backend.py
--- a/great_expectations/data_context/store/database_store_backend.py
+++ b/great_expectations/data_context/store/database_store_backend.py
@@ -255,7 +255,7 @@ def _get(self, key):
             logger.debug("Error fetching value: " + str(e))
             raise ge_exceptions.StoreError("Unable to fetch value for key: " + str(key))
 
-    def _set(self, key, value, allow_update=True):
+    def _set(self, key, value, allow_update=True, **kwargs):
         cols = {k: v for (k, v) in zip(self.key_columns, key)}
         cols["value"] = value
 
diff --git a/great_expectations/data_context/store/tuple_store_backend.py b/great_expectations/data_context/store/tuple_store_backend.py
--- a/great_expectations/data_context/store/tuple_store_backend.py
+++ b/great_expectations/data_context/store/tuple_store_backend.py
@@ -543,7 +543,12 @@ def _get(self, key):
         )
 
     def _set(
-        self, key, value, content_encoding="utf-8", content_type="application/json"
+        self,
+        key,
+        value,
+        content_encoding="utf-8",
+        content_type="application/json",
+        **kwargs,
     ):
         s3_object_key = self._build_s3_object_key(key)
 
@@ -830,7 +835,12 @@ def _get(self, key):
             return gcs_response_object.download_as_string().decode("utf-8")
 
     def _set(
-        self, key, value, content_encoding="utf-8", content_type="application/json"
+        self,
+        key,
+        value,
+        content_encoding="utf-8",
+        content_type="application/json",
+        **kwargs,
     ):
         gcs_object_key = self._build_gcs_object_key(key)
 


Test patch:
Repository: great-expectations/great_expectations

Issue:
Use cleaner solution for non-truncating division in python 2
Prefer `from __future__ import division` to `1.*x/y`


Discussion:
Done inline during improve_partitions push.

Resolving patch:
diff --git a/great_expectations/checkpoint/checkpoint.py b/great_expectations/checkpoint/checkpoint.py
--- a/great_expectations/checkpoint/checkpoint.py
+++ b/great_expectations/checkpoint/checkpoint.py
@@ -175,6 +175,8 @@ def get_substituted_config(
                 # don't replace _substituted_config if already exists
                 if self._substituted_config is None:
                     self._substituted_config = substituted_config
+        if self.data_context.ge_cloud_mode:
+            return substituted_config
         return self._substitute_config_variables(config=substituted_config)
 
     def _substitute_config_variables(
diff --git a/great_expectations/data_context/data_context.py b/great_expectations/data_context/data_context.py
--- a/great_expectations/data_context/data_context.py
+++ b/great_expectations/data_context/data_context.py
@@ -3349,9 +3349,10 @@ def run_checkpoint(
             if key in checkpoint_config_from_call_args
         }
         checkpoint_config.update(checkpoint_config_from_call_args)
-        checkpoint_config = filter_properties_dict(
-            properties=checkpoint_config, clean_falsy=True
-        )
+        if not self.ge_cloud_mode:
+            checkpoint_config = filter_properties_dict(
+                properties=checkpoint_config, clean_falsy=True
+            )
 
         checkpoint_run_arguments: dict = dict(**checkpoint_config, **kwargs)
 
diff --git a/great_expectations/data_context/store/expectations_store.py b/great_expectations/data_context/store/expectations_store.py
--- a/great_expectations/data_context/store/expectations_store.py
+++ b/great_expectations/data_context/store/expectations_store.py
@@ -1,3 +1,4 @@
+import json
 import random
 import uuid
 from typing import Dict


Test patch:
Repository: great-expectations/great_expectations

Issue:
Use cleaner solution for non-truncating division in python 2
Prefer `from __future__ import division` to `1.*x/y`


Discussion:
Done inline during improve_partitions push.

Resolving patch:
diff --git a/great_expectations/checkpoint/actions.py b/great_expectations/checkpoint/actions.py
--- a/great_expectations/checkpoint/actions.py
+++ b/great_expectations/checkpoint/actions.py
@@ -758,10 +758,17 @@ def _run(
         if self.data_context.ge_cloud_mode and checkpoint_identifier:
             contract_ge_cloud_id = checkpoint_identifier.ge_cloud_id
 
+        expectation_suite_ge_cloud_id = None
+        if self.data_context.ge_cloud_mode and expectation_suite_identifier:
+            expectation_suite_ge_cloud_id = str(
+                expectation_suite_identifier.ge_cloud_id
+            )
+
         return_val = self.target_store.set(
             validation_result_suite_identifier,
             validation_result_suite,
             contract_id=contract_ge_cloud_id,
+            expectation_suite_id=expectation_suite_ge_cloud_id,
         )
         if self.data_context.ge_cloud_mode:
             return_val: GeCloudResourceRef
diff --git a/great_expectations/data_context/data_context.py b/great_expectations/data_context/data_context.py
--- a/great_expectations/data_context/data_context.py
+++ b/great_expectations/data_context/data_context.py
@@ -2084,7 +2084,7 @@ def get_datasource(
         return datasource
 
     def list_expectation_suites(self):
-        """Return a list of available expectation suite names."""
+        """Return a list of available expectation suite keys."""
         try:
             keys = self.expectations_store.list_keys()
         except KeyError as e:
@@ -2276,7 +2276,15 @@ def get_expectation_suite(
             )
 
     def list_expectation_suite_names(self) -> List[str]:
-        """Lists the available expectation suite names"""
+        """
+        Lists the available expectation suite names. If in ge_cloud_mode, a list of
+        GE Cloud ids is returned instead.
+        """
+        if self.ge_cloud_mode:
+            return [
+                suite_key.ge_cloud_id for suite_key in self.list_expectation_suites()
+            ]
+
         sorted_expectation_suite_names = [
             i.expectation_suite_name for i in self.list_expectation_suites()
         ]
diff --git a/great_expectations/data_context/store/ge_cloud_store_backend.py b/great_expectations/data_context/store/ge_cloud_store_backend.py
--- a/great_expectations/data_context/store/ge_cloud_store_backend.py
+++ b/great_expectations/data_context/store/ge_cloud_store_backend.py
@@ -31,7 +31,7 @@ class GeCloudStoreBackend(StoreBackend, metaclass=ABCMeta):
     ALLOWED_SET_KWARGS_BY_RESOURCE_TYPE = {
         "expectation_suite": {"clause_id"},
         "rendered_data_doc": {"source_type", "source_id"},
-        "suite_validation_result": {"contract_id"},
+        "suite_validation_result": {"contract_id", "expectation_suite_id"},
     }
 
     def __init__(


Test patch:
Repository: great-expectations/great_expectations

Issue:
Use cleaner solution for non-truncating division in python 2
Prefer `from __future__ import division` to `1.*x/y`


Discussion:
Done inline during improve_partitions push.

Resolving patch:
diff --git a/great_expectations/core/batch.py b/great_expectations/core/batch.py
--- a/great_expectations/core/batch.py
+++ b/great_expectations/core/batch.py
@@ -139,14 +139,7 @@ def __str__(self):
 
     def __hash__(self) -> int:
         """Overrides the default implementation"""
-        _result_hash: int = (
-            hash(self.datasource_name)
-            ^ hash(self.data_connector_name)
-            ^ hash(self.data_asset_name)
-        )
-        if self.batch_identifiers is not None:
-            for key, value in self.batch_identifiers.items():
-                _result_hash = _result_hash ^ hash(key) ^ hash(str(value))
+        _result_hash: int = hash(self.id)
         return _result_hash
 
 
diff --git a/great_expectations/validator/exception_info.py b/great_expectations/validator/exception_info.py
--- a/great_expectations/validator/exception_info.py
+++ b/great_expectations/validator/exception_info.py
@@ -65,9 +65,5 @@ def __str__(self):
 
     def __hash__(self) -> int:
         """Overrides the default implementation"""
-        _result_hash: int = (
-            hash(self.exception_traceback)
-            ^ hash(self.exception_message)
-            ^ hash(self.raised_exception)
-        )
+        _result_hash: int = hash(self.id)
         return _result_hash
diff --git a/great_expectations/validator/validator.py b/great_expectations/validator/validator.py
--- a/great_expectations/validator/validator.py
+++ b/great_expectations/validator/validator.py
@@ -461,7 +461,7 @@ def graph_validate(
                     result = ExpectationValidationResult(
                         success=False,
                         exception_info=exception_info,
-                        expectation_config=configuration,
+                        expectation_config=evaluated_config,
                     )
                     evrs.append(result)
                 else:


Test patch:
Repository: great-expectations/great_expectations

Issue:
Use cleaner solution for non-truncating division in python 2
Prefer `from __future__ import division` to `1.*x/y`


Discussion:
Done inline during improve_partitions push.

Resolving patch:
diff --git a/great_expectations/execution_engine/pandas_execution_engine.py b/great_expectations/execution_engine/pandas_execution_engine.py
--- a/great_expectations/execution_engine/pandas_execution_engine.py
+++ b/great_expectations/execution_engine/pandas_execution_engine.py
@@ -623,7 +623,6 @@ def _split_on_whole_table(
     def _split_on_column_value(
         df, column_name: str, batch_identifiers: dict
     ) -> pd.DataFrame:
-
         return df[df[column_name] == batch_identifiers[column_name]]
 
     @staticmethod


Test patch: