Skip to content

Instantly share code, notes, and snippets.

@freyes
Forked from niedbalski/dynamic filter.py
Created November 6, 2013 14:01
Show Gist options
  • Save freyes/7336528 to your computer and use it in GitHub Desktop.
Save freyes/7336528 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
# Jorge Niedbalski <jnr@pyrosome.org>
class Query:
def __init__(self):
(self.c, self.d) = ([],[])
def a(self, d):
self.d.append(d)
return self
def f(self, k, v):
self.c.append((k, v))
return self
def g(self):
for entry in self.d:
cc = []
for k,v in self.c:
try:
cc.append(entry[k] == v)
except KeyError:
pass
if any(cc):
yield entry
def f():
persons = Query() \
.a({'name': 'tester', 'address': 'test avenue 99'})\
.a({'name': 'tester1', 'address': 'test avenue 100'})\
.a({'name': 'tester2', 'address': 'test avenue 101'})\
.f('name', 'tester').g()
for person in persons:
print person
f()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment