77from dateutil import parser
88from dateutil .relativedelta import relativedelta
99
10+ from posthog import utils
1011from posthog .utils import convert_to_datetime_aware , is_valid_regex
1112
1213__LONG_SCALE__ = float (0xFFFFFFFFFFFFFFF )
@@ -130,7 +131,7 @@ def match_property(property, property_values) -> bool:
130131 def compute_exact_match (value , override_value ):
131132 if isinstance (value , list ):
132133 return str (override_value ).casefold () in [str (val ).casefold () for val in value ]
133- return str ( value ). casefold () == str ( override_value ). casefold ( )
134+ return utils . str_icontains ( value , override_value )
134135
135136 if operator == "exact" :
136137 return compute_exact_match (value , override_value )
@@ -141,10 +142,10 @@ def compute_exact_match(value, override_value):
141142 return key in property_values
142143
143144 if operator == "icontains" :
144- return str ( value ). casefold () in str ( override_value ). casefold ( )
145+ return utils . str_icontains ( override_value , value )
145146
146147 if operator == "not_icontains" :
147- return str ( value ). casefold () not in str ( override_value ). casefold ( )
148+ return not utils . str_icontains ( override_value , value )
148149
149150 if operator == "regex" :
150151 return is_valid_regex (str (value )) and re .compile (str (value )).search (str (override_value )) is not None
0 commit comments