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/core/expect_select_column_values_to_be_unique_within_record.py b/great_expectations/expectations/core/expect_select_column_values_to_be_unique_within_record.py
--- a/great_expectations/expectations/core/expect_select_column_values_to_be_unique_within_record.py
+++ b/great_expectations/expectations/core/expect_select_column_values_to_be_unique_within_record.py
@@ -1,4 +1,4 @@
-from great_expectations.expectations.expectation import ColumnMapExpectation
+from great_expectations.expectations.expectation import MulticolumnMapExpectation
 from great_expectations.expectations.util import render_evaluation_parameter_string
 from great_expectations.render.renderer.renderer import renderer
 from great_expectations.render.types import RenderedStringTemplateContent
@@ -9,7 +9,7 @@
 )
 
 
-class ExpectSelectColumnValuesToBeUniqueWithinRecord(ColumnMapExpectation):
+class ExpectSelectColumnValuesToBeUniqueWithinRecord(MulticolumnMapExpectation):
     library_metadata = {
         "maturity": "production",
         "package": "great_expectations",
@@ -24,16 +24,12 @@ class ExpectSelectColumnValuesToBeUniqueWithinRecord(ColumnMapExpectation):
         "requirements": [],
     }
 
-    metric_dependencies = tuple()
-    success_keys = (
-        "column_list",
-        "ignore_row_if",
-        "mostly",
-    )
+    map_metric = "select_column_values.unique.within_record"
+    success_keys = ()
     default_kwarg_values = {
-        "column_list": None,
+        "row_condition": None,
+        "condition_parser": None,  # we expect this to be explicitly set whenever a row_condition is passed
         "ignore_row_if": "all_values_are_missing",
-        "mostly": 1,
         "result_format": "BASIC",
         "include_config": True,
         "catch_exceptions": False,
diff --git a/great_expectations/self_check/util.py b/great_expectations/self_check/util.py
--- a/great_expectations/self_check/util.py
+++ b/great_expectations/self_check/util.py
@@ -1313,7 +1313,7 @@ def candidate_test_is_on_temporary_notimplemented_list_cfe(context, expectation_
     if context == "pandas":
         return expectation_type in [
             # "expect_table_columns_to_match_set",
-            "expect_select_column_values_to_be_unique_within_record",
+            # "expect_select_column_values_to_be_unique_within_record",
             # "expect_table_column_count_to_be_between",
             # "expect_table_column_count_to_equal",
             # "expect_column_to_exist",


Test patch:
diff --git a/tests/expectations/metrics/test_core.py b/tests/expectations/metrics/test_core.py
--- a/tests/expectations/metrics/test_core.py
+++ b/tests/expectations/metrics/test_core.py
@@ -1114,6 +1114,7 @@ def test_column_pairs_equal_metric_pd():
             "column_B": "b",
             "ignore_row_if": "both_values_are_missing",
         },
+        metric_value_kwargs=None,
         metric_dependencies={
             "table.columns": table_columns_metric,
         },
diff --git a/tests/test_definitions/multicolumn_map_expectations/expect_select_column_values_to_be_unique_within_record.json b/tests/test_definitions/multicolumn_map_expectations/expect_select_column_values_to_be_unique_within_record.json
--- a/tests/test_definitions/multicolumn_map_expectations/expect_select_column_values_to_be_unique_within_record.json
+++ b/tests/test_definitions/multicolumn_map_expectations/expect_select_column_values_to_be_unique_within_record.json
@@ -99,7 +99,6 @@
             5,
             7
           ],
-          "partial_unexpected_counts": [],
           "details": {
             "partial_unexpected_counts_error": "partial_unexpected_counts requested, but requires a hashable type"
           },
@@ -172,7 +171,6 @@
               "b": 2.0
             }
           ],
-          "partial_unexpected_counts": [],
           "details": {
             "partial_unexpected_counts_error": "partial_unexpected_counts requested, but requires a hashable type"
           },