add an optional argument to sort to make it return tuples
use response callbacks for sort() with tuples to work with pipelines
in _compat for py3k only encode if param is not bytes type in b()
implement PSETEX command
fix for #322
changelog
Do not discard pipeline unless in multi.

Fixes an error that occurred if you exec'd a pipeline on which you
hadn't called `multi()`. When an error happened, the code was
automatically calling discard. This causes an a 'DISCARD without MULTI'
error from redis which obscures the actual cause of the error.
Merge pull request #323 from paykroyd/exec_without_mulit

Do not discard pipeline unless in multi.
A base class for server-side exceptions to be grouped by

This is important if you want to detect if there was an issue that resulted from the server being broken specifically, as opposed to the client issuing a bad command.

See: https://github.com/disqus/nydus/pull/31

Also, let me know if there are other exceptions that could extend the base `ServerError`. These are just the two that stood out.
Merge branch 'master' of git://github.com/mattrobenolt/redis-py into mattrobenolt-master

Conflicts:
	redis/exceptions.py
Format code per pep8 guidelines

A simple patch to enable pep8 in tox and format our code properly.

Signed-off-by: Paul Belanger <paul.belanger@polybeacon.com>
Catch exception, not anything (which could be KeyboardInterrupt).
Merge pull request #328 from lucian1900/master

Catch Exception, not everything
Added note that redis-py requires a running Redis server to connect to along with a link to installation instructions.
Merge pull request #334 from dobrite/installation-fix

Added note that redis-py requires a running Redis server (Issue #329)
changelog
allow client.transaction() to return the value of func based on kwarg. fix for #331
Merge pull request #283 from salimane/upstream

in _compat for py3k only encode if param is not bytes type in b()
changelog
Update the README with accurate pipeline transaction information