Skip to content. | Skip to navigation

Personal tools

Navigation

You are here: Home / Blog / PyCon 2012 Sprints

PyCon 2012 Sprints

by Ross Patterson last modified Mar 16, 2012 11:27 PM
Sprinting after PyCon and my first time working with and contributing to Pyramid.

Sprinting on Pyramid

Really my conference review should be taken worth a grain of salt, because I never go for the talks, it's all about the sprints. Having so thoroughly enjoyed sprinting since I came out of my shell and joined the Plone community in earnest, it's always the only thing I'm really focused on. What can I say? In this wonderful age where, through open-source communities and the recognition of the ambiguous stuff that helps them thrive, we all recognize that things like docs and diversity are as important as the quality of code or the power of features, I'm still a code monkey at heart.

Since there were no Plone sprints that I heard of or saw on the boards, I took the chance to sprint on Pyramid, part of the Pylons project and love child of repoze. I've been wanting to learn Pyramid for quite some time now since I noticed how many of my favorite Zope people have moved to Pyramid. So I went to the Pyramid room, sat down and asked what someone with plenty of zope experience could do.

The Pyramid sprinters were a great group, very welcoming and friendly. They remind me a lot of the things I most love about the Plone community. It also gave me the chance to work closely with Chris McDonough. Chris is very smart, builds great software, and is just very kind-hearted.

Here's some of the stuff I worked on:

  • add IP range/network restriction to pyramid_debugtoolbar

    I used this simple feature task to cut my teeth on the Pyramid development environment and tool-chain. It was the first time in a long time I worked outside a buildout environment and it made for some interesting comparisons. They keep things really simple relying only on distribute's setuptools and virtualenv.

    I have to say, I still prefer working with buildout. Buildout's caching is much better than easy_install's and virtualenv so updating the environment after changes is smoother and faster. For testing against multiple Python versions and implementations, such as Jython and PyPy, Pyramid uses tox which is pretty slick and very useful. I'd love to see something like this for deploying the same buildout with different versions of Python.

  • support Python 3 in repoze.sendmail

    This was my first time tackling Python 2 and 3 compatibility issues. I have to say it's just not as hard as I feared.

  • improve and centralize email message serializing in repoze.sendmail

    The one place where there was a lot of Python 2 and 3 compatibility pain was in the encoding of email messages. In this case, as in others I suspect, the problem was that encoding was being done all over the place in a not-very-well-architected way and the real solution was to clean things up and put in more clearly defined boundaries and interfaces.

    That task would have been impossible without R. David Murray. I pestered him endlessly and he helped me learn all the deep, dark corners of the email protocols and the Python email package, both of which have considerable quirks which some would call bugs. At the end of it, I had a clear sense of all the quirks of encoding emails and all the things that the email package doesn't already do. I baked those into repoze.sendmail.encoding and added that support as a part sending mail through repoze.sendmail.

    Once that was in place, finishing Python 2 and 3 compatibility was a snap.

  • add Python 3 support to pyramid_mailer

    Again, once repoze.sendmail.encoding was in-place, I just ripped all the email encoding support out of pyramid_mailer and Python 2 and 3 compatibility was a cinch.

  • fix Cc/Bcc witout To handling in pyramid_mailer

    While I had my hands in pyramid_mailer, I fixed a bug reported by Michael Merickel.

  • add support for multiple request parameters when registering Pyramid views

    I'm not even sure what this stuff does, but Pyramid has such great test coverage, I was able to get started. I'm still waiting for feeback to see what I'm not yet understanding.

  • updating warnings handling in Pyramid tests

    Just a simple test fixture update to cleanup output.

Navigation
OpenID Login

Contact

me@rpatterson.net

IRC: zenwryly@irc.freenode.net
plone.org: rossp
GTalk: mer@patterson.net
Yahoo IM: patterson_ross
AIM: rosspatters
MSN: me@rpatterson.net
Skype: merpattersonnet

PO Box 7775 #10587
San Francisco, CA
94120-7775

Phone
+1 (415) 894-5323