Archive for March 17th, 2014

Python 3.4 released today (2014-03-17) and includes a lot of neat stuff. According to the Python Insider, these are the major changes / additions:

  • PEP 428, a “pathlib” module providing object-oriented filesystem paths
  • PEP 435, a standardized “enum” module
  • PEP 436, a build enhancement that will help generate introspection information for builtins
  • PEP 442, improved semantics for object finalization
  • PEP 443, adding single-dispatch generic functions to the standard library
  • PEP 445, a new C API for implementing custom memory allocators
  • PEP 446, changing file descriptors to not be inherited by default in subprocesses
  • PEP 450, a new “statistics” module
  • PEP 451, standardizing module metadata for Python’s module import system
  • PEP 453, a bundled installer for the *pip* package manager
  • PEP 454, a new “tracemalloc” module for tracing Python memory allocations
  • PEP 456, a new hash algorithm for Python strings and binary data
  • PEP 3154, a new and improved protocol for pickled objects
  • PEP 3156, a new “asyncio” module, a new framework for asynchronous I/O

I can’t wait to try out some of these new modules and see what new things I can add to my bag of tricks. Go download your copy today!


Python includes a couple of modules for testing in its standard library: doctest and unittest. We will be looking at doctest in this article. The doctest module will search for pieces of text in your code that resemble interactive Python sessions. It will then execute those sessions to verify that they work exactly as written. This means that if you wrote an example in a docstring that showed the output with a trailing space or tab, then the actual output of the function has to have that trailing whitespace too. Most of the time, the docstring is where you will want to put your tests. The following aspects of doctest will be covered:

  • How to run doctest from the terminal
  • How to use doctest inside a module
  • How to run a doctest from a separate file

Let’s get started! (more…)


Kivy is an open source Python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps. The Kivy organization is organizing its second application development contest.! This is a great chance for new and experienced users to show off their skills and compete for prizes. Entries will be judged on a range of criteria accessible to both new and experienced programmers, so don’t be afraid to dive in! For more information, visit

Over the weekend, I finished setting up a website for my upcoming book, Python 101. I discovered that is owned by squatters, so I got instead. It will redirect to because I think the book should be a part of Python Library while maintaining its independence.

There isn’t much content on the site yet, but I hope to be adding more as the book’s launch date approaches. For those of you who are interested, the Kickstarter Campaign has only 3 more days to go, so if you want to contribute, you’ll need to hurry!