Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_match():
assert Match("asdf")("asdf")
assert Match("asdf")("asdfasdf")
assert not Match("asdf")("aasdfasdf")
assert Match("(((")("(((")
def test_match():
assert Match("asdf")("asdf")
assert Match("asdf")("asdfasdf")
assert not Match("asdf")("aasdfasdf")
assert Match("(((")("(((")
def test_match():
assert Match("asdf")("asdf")
assert Match("asdf")("asdfasdf")
assert not Match("asdf")("aasdfasdf")
assert Match("(((")("(((")
def test_match():
assert Match("asdf")("asdf")
assert Match("asdf")("asdfasdf")
assert not Match("asdf")("aasdfasdf")
assert Match("(((")("(((")
def set(self, value):
if value == self.value:
return False
self.value = value
self.match = Match(value or "")
return True
def p_simple_expr_key(self, p):
"""
simple_expr : KEY STRING
"""
key, value = p[1], p[2]
match = Match(value)
def _key(entry):
if hasattr(entry, key):
return match(str(getattr(entry, key) or ""))
if key in entry.meta:
return match(str(entry.meta.get(key)))
return False
p[0] = _key
def p_simple_expr_STRING(self, p):
"""
simple_expr : STRING
"""
string = p[1]
match = Match(string)
def _string(entry):
for name in ("narration", "payee", "comment"):
value = getattr(entry, name, "")
if value and match(value):
return True
return False
p[0] = _string