The Changelog

Open Source moves fast. Keep up.

AlienFeed: Reading Reddit with Python #

Jared Wright is an impressive high school student who has created a command line interface to Reddit.

AlienFeed is a simple, but effective, way of interacting with Reddit and takes advantage of Python’s ability to open items in your web browser for you. It comes with a man page (unlike some Python CLIs) and a custom set of bash completions.

To try it out: pip install alienfeed.

Here is screenshot to whet your appetite:

AlienFeed displaying the top 10 links on /r/python

Explaining Python implementations #

Have you ever wondered why there are so many different kinds of “Python”? CPython, Cython, RPython, PyPy, Jython, and IronPython are all flavors of Python but not everyone knows why each exists.

Pynt versus Invoke

Just the other day I saw someone mention on Twitter that Pynt was their new favorite pure Python replacement for make. I have some minor experience using Invoke, a very similar tool. This prompted me to experiment with both utilities and report on my findings. Background Both tools take great advantage of decorators in Python […]

Zero: A Wrapper Around the ØMQ Python Library

I don’t use ØMQ but by just looking at some examples of how to use the standard python library and this wrapper, “a wrapper for a wrapper” just makes sense. So let’s look at some code!

Requests 2.0 coming soon with proxy support and bug fixes #

Requests logo

The author and maintainers of the popular Requests library are working on a crucial version 2.0 release. As you can see this new release will include a large number of bug fixes and features which are backwards incompatible with the 1.x branch of Requests. Not to worry though, the transition from 1.x to 2.x will be far less painful than the transition from 0.x to 1.x. Most of the backwards incompatibility arises from how 2.x will handle headers (as will be explained below).

Improving HTTPS proxy support

Perhaps the most exciting part of this upcoming release is the improved proxy support. Version 2 will include support for the CONNECT verb which will make talking to HTTPS services possible from behind a proxy. For example: anyone who wishes to use Requests on PythonAnywhere‘s free tier will be able to once version 2 is released. As noted in the pull request, this would not be possible without the amazing work of the contributors to urllib3 — the library on top of which Requests is implemented.

Fixing a subtle bug with headers

Beyond adding proxies, there was a particularly nasty bug on Python 3 where some headers could not be set using native strings. As this was a backwards incompatible change this is only being fixed for the first time in version 2.0. If you have run into this problem your headaches will be long gone.

Adding new convenience methods

Finally, if you are a Requests user who creates their requests carefully by hand, the new method on the Session object will prepare them for you! You no longer have to jump through extra hoops to include the cookies stored on the Session.

Future Requests updates

As soon as Requests 2.0 is out, we will have a full review here, so be sure to subscribe to our Python tag and The Changelog Weekly for further updates.

Lint against the stdlib and more with PyLint-Brain #

Most of us Pythonistas who have used either NINJA-IDE or PyCharm have benefited from their abilities to lint against the Python standard library. If you then started using tools like PyFlakes or PyLint, you probably longed for that feature. Users of PyLint can now rejoice since Logilab has announced PyLint-Brain. The standard library can be very difficult to lint against and can require some inspection of C extensions, but this is handled gracefully by PyLint-Brain.

Besides adding the ability to lint the standard library, PyLint-Brain will also support some of the most popular third party libraries used by Pythonistas. The list of libraries supported right now is short — just mechanize and qt4 but new libraries are being accepted (like requests) so that list will certainly grow.

As of this moment, you do not need to install Brain separately to use it. It is being provisionally included in PyLint so you will immediately start seeing the benefits.

Check out the source and overview on Bitbucket for more details.