Dynamic Code Patterns: Extending Your Applications with Plugins

My second presentation from PyCon 2013 is available online: Python makes loading code dynamically easy, allowing you to configure and extend your application by discovering and loading extensions at runtime. This presentation will discuss the techniques for dynamic code loading used in several well-known applications and weigh the pros and cons of each approach.

virtualenvwrapper 3.7

What’s New? Improve tab-completion support for users of the lazy-loading mode. Add --help option to mkproject. Add --help option to workon. Turn off logging from the hook loader by default, and replace VIRTUALENVWRAPPER_LOG_DIR environment variable with VIRTUALENVWRAPPER_LOG_FILE. The rotating log behavior remains the same. The motivation for this change is the race condition caused by that rotating behavior, especially when the wrappers are being used by users with different permissions and umasks.

virtualenvwrapper 3.6.1

What’s New? Replace realpath with a more portable way of converting a relative path to an absolute path, used with the --python option to mkvirtualenv (contributed by Radu Voicilas). Posted release to PyPI, resolving download redirect issue.

cliff 1.3.1

What’s New In This Release? Sort list of commands in interactive help mode. (contributed by Ilya Shakhat) Fix a dependency issue with PyParsing until the cmd2 package can release an update setting the version of its dependency based on the Python version.

PyMOTW Moving

I am in the process of moving my web site to a new server at DreamHost, and in the process split out the Python Module of the Week content to its own site at http://pymotw.com. All of the old URLs should redirect to the new site, but you may want to update your bookmarks.

Ceilometer Grizzly 2 Milestone Available

The Ceilometer team is proud to announce the first synchronous milestone delivery with the OpenStack project. Grizzly-2 is also the last Folsom compatible version of Ceilometer as we are planning to introduce some breaking changes very soon in our trunk to enable a totally new set of features bringing Ceilometer beyond basic metering into monitoring and alerting. This milestone can be found at: https://launchpad.net/ceilometer/grizzly/grizzly-2/+download/ceilometer-2013.1~g2.tar.gz With this milestone, 10 blueprints have been implemented and 53 bugs have been fixed.

stevedore 0.8

What’s New? Ignore AssertionError exceptions generated when plugins are loaded. Update NamedExtensionManager to check the name of a plugin before loading its code to avoid importing anything we are not going to use.

New Years’ Python Meme

What’s the coolest Python application, framework or library you have discovered in 2012? That’s definitely OpenStack, the cloud infrastructure management system. What new programming technique did you learn in 2012? I’ve been doing a lot with messaging via AMQP and with NoSQL storage using MongoDB. I’ve also become a git convert, moving over from hg and svn. What’s the name of the open source project you contributed the most in 2012?