Skip to content

Commit b1740be

Browse files
authored
[MAINTENANCE] Make only parameter to conditions Column positional (great-expectations#11497)
1 parent 87c59f6 commit b1740be

File tree

9 files changed

+180
-183
lines changed

9 files changed

+180
-183
lines changed

great_expectations/expectations/conditions.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@ def __str__(self) -> str:
7878
class Column(BaseModel):
7979
name: str
8080

81+
def __init__(self, name: str):
82+
super().__init__(name=name)
83+
8184
@override
8285
def __hash__(self) -> int:
8386
return hash(self.name)

great_expectations/expectations/expectation.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ def _convert_string_to_condition(row_condition: str) -> Condition:
312312
- Numeric comparisons: Matches numbers as "fnumber"
313313
"""
314314
parsed = parse_great_expectations_condition(row_condition)
315-
col = Column(name=str(parsed["column"]))
315+
col = Column(str(parsed["column"]))
316316

317317
if "notnull" in parsed and parsed["notnull"] is True:
318318
return NullityCondition(

tests/execution_engine/test_pandas_execution_engine.py

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -689,57 +689,55 @@ class TestConditionToFilterClause:
689689
"condition,expected_output",
690690
[
691691
pytest.param(
692-
ComparisonCondition(
693-
column=Column(name="age"), operator=Operator.EQUAL, parameter=5
694-
),
692+
ComparisonCondition(column=Column("age"), operator=Operator.EQUAL, parameter=5),
695693
"age == 5",
696694
id="equal",
697695
),
698696
pytest.param(
699697
ComparisonCondition(
700-
column=Column(name="age"), operator=Operator.NOT_EQUAL, parameter=10
698+
column=Column("age"), operator=Operator.NOT_EQUAL, parameter=10
701699
),
702700
"age != 10",
703701
id="not_equal",
704702
),
705703
pytest.param(
706704
ComparisonCondition(
707-
column=Column(name="age"), operator=Operator.LESS_THAN, parameter=18
705+
column=Column("age"), operator=Operator.LESS_THAN, parameter=18
708706
),
709707
"age < 18",
710708
id="less_than",
711709
),
712710
pytest.param(
713711
ComparisonCondition(
714-
column=Column(name="age"), operator=Operator.GREATER_THAN, parameter=65
712+
column=Column("age"), operator=Operator.GREATER_THAN, parameter=65
715713
),
716714
"age > 65",
717715
id="greater_than",
718716
),
719717
pytest.param(
720718
ComparisonCondition(
721-
column=Column(name="age"), operator=Operator.LESS_THAN_OR_EQUAL, parameter=100
719+
column=Column("age"), operator=Operator.LESS_THAN_OR_EQUAL, parameter=100
722720
),
723721
"age <= 100",
724722
id="less_or_equal",
725723
),
726724
pytest.param(
727725
ComparisonCondition(
728-
column=Column(name="age"), operator=Operator.GREATER_THAN_OR_EQUAL, parameter=0
726+
column=Column("age"), operator=Operator.GREATER_THAN_OR_EQUAL, parameter=0
729727
),
730728
"age >= 0",
731729
id="greater_or_equal",
732730
),
733731
pytest.param(
734732
ComparisonCondition(
735-
column=Column(name="name"), operator=Operator.EQUAL, parameter="John"
733+
column=Column("name"), operator=Operator.EQUAL, parameter="John"
736734
),
737735
"name == 'John'",
738736
id="equal_string",
739737
),
740738
pytest.param(
741739
ComparisonCondition(
742-
column=Column(name="name"), operator=Operator.NOT_EQUAL, parameter="Jane"
740+
column=Column("name"), operator=Operator.NOT_EQUAL, parameter="Jane"
743741
),
744742
"name != 'Jane'",
745743
id="not_equal_string",
@@ -760,14 +758,14 @@ def test_comparison_condition_to_filter_clause_basic_operators(
760758
[
761759
pytest.param(
762760
ComparisonCondition(
763-
column=Column(name="status"), operator=Operator.IN, parameter=[1, 2, 3]
761+
column=Column("status"), operator=Operator.IN, parameter=[1, 2, 3]
764762
),
765763
"status in [1, 2, 3]",
766764
id="integers",
767765
),
768766
pytest.param(
769767
ComparisonCondition(
770-
column=Column(name="status"),
768+
column=Column("status"),
771769
operator=Operator.IN,
772770
parameter=["active", "pending"],
773771
),
@@ -776,7 +774,7 @@ def test_comparison_condition_to_filter_clause_basic_operators(
776774
),
777775
pytest.param(
778776
ComparisonCondition(
779-
column=Column(name="status"), operator=Operator.NOT_IN, parameter=[1, 2, 3]
777+
column=Column("status"), operator=Operator.NOT_IN, parameter=[1, 2, 3]
780778
),
781779
"status not in [1, 2, 3]",
782780
id="not_in",
@@ -796,12 +794,12 @@ def test_comparison_condition_to_filter_clause_in_not_in_operators(
796794
"condition,expected_output",
797795
[
798796
pytest.param(
799-
NullityCondition(column=Column(name="email"), is_null=True),
797+
NullityCondition(column=Column("email"), is_null=True),
800798
"email.isnull()",
801799
id="is_null",
802800
),
803801
pytest.param(
804-
NullityCondition(column=Column(name="email"), is_null=False),
802+
NullityCondition(column=Column("email"), is_null=False),
805803
"~email.isnull()",
806804
id="is_not_null",
807805
),
@@ -822,10 +820,10 @@ def test_and_condition_to_filter_clause_simple(self) -> None:
822820
and_condition = AndCondition(
823821
conditions=[
824822
ComparisonCondition(
825-
column=Column(name="age"), operator=Operator.GREATER_THAN, parameter=18
823+
column=Column("age"), operator=Operator.GREATER_THAN, parameter=18
826824
),
827825
ComparisonCondition(
828-
column=Column(name="age"), operator=Operator.LESS_THAN, parameter=65
826+
column=Column("age"), operator=Operator.LESS_THAN, parameter=65
829827
),
830828
]
831829
)
@@ -840,10 +838,10 @@ def test_or_condition_to_filter_clause_simple(self) -> None:
840838
or_condition = OrCondition(
841839
conditions=[
842840
ComparisonCondition(
843-
column=Column(name="status"), operator=Operator.EQUAL, parameter="active"
841+
column=Column("status"), operator=Operator.EQUAL, parameter="active"
844842
),
845843
ComparisonCondition(
846-
column=Column(name="status"), operator=Operator.EQUAL, parameter="pending"
844+
column=Column("status"), operator=Operator.EQUAL, parameter="pending"
847845
),
848846
]
849847
)
@@ -860,19 +858,19 @@ def test_nested_conditions(self) -> None:
860858
AndCondition(
861859
conditions=[
862860
ComparisonCondition(
863-
column=Column(name="age"),
861+
column=Column("age"),
864862
operator=Operator.GREATER_THAN_OR_EQUAL,
865863
parameter=18,
866864
),
867865
ComparisonCondition(
868-
column=Column(name="age"),
866+
column=Column("age"),
869867
operator=Operator.LESS_THAN_OR_EQUAL,
870868
parameter=65,
871869
),
872870
]
873871
),
874872
ComparisonCondition(
875-
column=Column(name="status"), operator=Operator.EQUAL, parameter="exempt"
873+
column=Column("status"), operator=Operator.EQUAL, parameter="exempt"
876874
),
877875
]
878876
)
@@ -886,7 +884,7 @@ def test_comparison_filter_clause_filters_dataframe(self) -> None:
886884
df = pd.DataFrame({"age": [15, 25, 35, 45, 55], "name": ["A", "B", "C", "D", "E"]})
887885

888886
condition = ComparisonCondition(
889-
column=Column(name="age"),
887+
column=Column("age"),
890888
operator=Operator.GREATER_THAN,
891889
parameter=30,
892890
)
@@ -909,7 +907,7 @@ def test_in_filter_clause_filters_dataframe(self) -> None:
909907
)
910908

911909
condition = ComparisonCondition(
912-
column=Column(name="status"),
910+
column=Column("status"),
913911
operator=Operator.IN,
914912
parameter=["active", "pending"],
915913
)
@@ -930,7 +928,7 @@ def test_nullity_filter_clause_filters_dataframe(self) -> None:
930928
}
931929
)
932930

933-
condition = NullityCondition(column=Column(name="email"), is_null=False)
931+
condition = NullityCondition(column=Column("email"), is_null=False)
934932

935933
filter_clause = engine.condition_to_filter_clause(condition)
936934
result_df = df.query(filter_clause)
@@ -954,19 +952,19 @@ def test_nested_condition_filters_dataframe(self) -> None:
954952
AndCondition(
955953
conditions=[
956954
ComparisonCondition(
957-
column=Column(name="age"),
955+
column=Column("age"),
958956
operator=Operator.GREATER_THAN_OR_EQUAL,
959957
parameter=18,
960958
),
961959
ComparisonCondition(
962-
column=Column(name="age"),
960+
column=Column("age"),
963961
operator=Operator.LESS_THAN_OR_EQUAL,
964962
parameter=65,
965963
),
966964
]
967965
),
968966
ComparisonCondition(
969-
column=Column(name="status"), operator=Operator.EQUAL, parameter="exempt"
967+
column=Column("status"), operator=Operator.EQUAL, parameter="exempt"
970968
),
971969
]
972970
)

0 commit comments

Comments
 (0)