A LINQ-esque project.
Project description
Introduction
------------
This is an implementation of LINQ in Python.
Functions
---------
- between(a, b, key=None): Returns items between a and b. (Inclusive).
- consume(n=None): Consume n items. If n is None, consume everything.
- count(): Consumes all items to produce a count.
- dict(key=None, transform=None): Returns a dict of all items.
- exclude(items, key=None): Excludes all items based on either their identity, or a key function.
- extend(items): Yields all the items from this._items, followed by the items supplied to this function.
- filter(key): Filter the items.
- first(key=None): Take the first item if key is None, otherwise take the first item where key(item) returns true. If there are no objects, StopIteration is raised.
- first_or_none(key=None): Take the first item if key is None, otherwise take the first item where key(item) returns true. If there are no objects, None is returned.
- flatten(): Flatten a two-dimensional result set into a single dimension.
- foldl(fn, default=None): Fold left. Same as reduce.
- foldr(fn, default=None): Fold right.
- group(key): Groups all items on key.
- join(glue=''): Joins the items by glue, where glue is a string. Calls glue.join.
- last(key=None): Take the last item if key is None, otherwise take the first item where key(item) returns true. If there are no objects, StopIteration is raised.
- last_or_none(key=None): Take the first item if key is None, otherwise take the first item where key(item) returns true. If there are no objects, None is returned.
- len(): Consumes all items to produce a count.
- list(): Returns a list of all items.
- map(transform, with_index=False, with_previous=False): Map the items.
- not_none(): Returns all items except None.
- parallelize(fn, number_of_threads=None): Parallelize a function call. Number of threads defaults to your cpu count + 1.
- partition(n): Takes n items and returns them in a new Slinkie. Does so until the items are consumed.
- reduce(fn, default=None): Fold left. Same as reduce.
- select(transform, with_index=False, with_previous=False): Map the items.
- set(): Returns a set of all items.
- skip(n): Skip n items.
- sort(key=None, reverse=False): Sorts the items by key.
- str(glue=''): Joins the items by glue, where glue is a string. Calls glue.join.
- switch(*triggers, key=None, otherwise=None): Switch is similar to Haskell's case. See the unit test for examples.
- take(n): Take n items.
- tee(display=None): Every item that falls through the tee function will be displayed using the display function. If none is supplied, print is used.
- transpose(): Transposes the contents of a Slinkie.
- tuple(): Returns a tuple of all items.
- unique(key=None): Filter out items that aren't considered unique. You can optionally supply a key function to determine the identity.
- where(key): Filter the items.
Installation
------------
Slinkie is available on pip, so a simple "pip install slinkie" should do it.
------------
This is an implementation of LINQ in Python.
Functions
---------
- between(a, b, key=None): Returns items between a and b. (Inclusive).
- consume(n=None): Consume n items. If n is None, consume everything.
- count(): Consumes all items to produce a count.
- dict(key=None, transform=None): Returns a dict of all items.
- exclude(items, key=None): Excludes all items based on either their identity, or a key function.
- extend(items): Yields all the items from this._items, followed by the items supplied to this function.
- filter(key): Filter the items.
- first(key=None): Take the first item if key is None, otherwise take the first item where key(item) returns true. If there are no objects, StopIteration is raised.
- first_or_none(key=None): Take the first item if key is None, otherwise take the first item where key(item) returns true. If there are no objects, None is returned.
- flatten(): Flatten a two-dimensional result set into a single dimension.
- foldl(fn, default=None): Fold left. Same as reduce.
- foldr(fn, default=None): Fold right.
- group(key): Groups all items on key.
- join(glue=''): Joins the items by glue, where glue is a string. Calls glue.join.
- last(key=None): Take the last item if key is None, otherwise take the first item where key(item) returns true. If there are no objects, StopIteration is raised.
- last_or_none(key=None): Take the first item if key is None, otherwise take the first item where key(item) returns true. If there are no objects, None is returned.
- len(): Consumes all items to produce a count.
- list(): Returns a list of all items.
- map(transform, with_index=False, with_previous=False): Map the items.
- not_none(): Returns all items except None.
- parallelize(fn, number_of_threads=None): Parallelize a function call. Number of threads defaults to your cpu count + 1.
- partition(n): Takes n items and returns them in a new Slinkie. Does so until the items are consumed.
- reduce(fn, default=None): Fold left. Same as reduce.
- select(transform, with_index=False, with_previous=False): Map the items.
- set(): Returns a set of all items.
- skip(n): Skip n items.
- sort(key=None, reverse=False): Sorts the items by key.
- str(glue=''): Joins the items by glue, where glue is a string. Calls glue.join.
- switch(*triggers, key=None, otherwise=None): Switch is similar to Haskell's case. See the unit test for examples.
- take(n): Take n items.
- tee(display=None): Every item that falls through the tee function will be displayed using the display function. If none is supplied, print is used.
- transpose(): Transposes the contents of a Slinkie.
- tuple(): Returns a tuple of all items.
- unique(key=None): Filter out items that aren't considered unique. You can optionally supply a key function to determine the identity.
- where(key): Filter the items.
Installation
------------
Slinkie is available on pip, so a simple "pip install slinkie" should do it.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
slinkie-0.2.1.tar.gz
(5.7 kB
view hashes)