Skip to content

Instantly share code, notes, and snippets.

@kyle-eshares
Last active June 23, 2022 15:18
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save kyle-eshares/5b61c616c650e749dbac21355e522bb4 to your computer and use it in GitHub Desktop.
Save kyle-eshares/5b61c616c650e749dbac21355e522bb4 to your computer and use it in GitHub Desktop.
class conduit(object):
def __init__(self, iterator):
self.iterator = iterator
def filter(self, predicate):
return conduit(itertools.ifilter(predicate, self.iterator))
def map(self, func):
return conduit(itertools.imap(func, self.iterator))
def sort(self, key):
# sort has to evaluate the iterator
return conduit(sorted(self.iterator, key=key))
def __iter__(self):
return iter(self.iterator)
def to_list(self):
return list(self)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment