Skip to main content

PyCon 2011: Interview with Lennart Regebro - “Porting to Python 3”

By Brian Curtin

The Python world has come a long way since December 2008 when 3.0 was first released. Books have been released, blogs have been written, and most importantly, projects have been ported. Recently, NumPy and SciPy checked in their porting work. We’ve heard rumblings of Django on 3.x, possibly as early as this summer. Python 3.1.3 was released in the fall and 3.2 final is around a week away, and with 2.7 being the end of the 2.x line, all core hands are on Python 3.

Lennart Regebro knows all about this. He’s the author of a new book, Porting to Python 3, and he’s giving a talk by the same name. The idea to write the book came from a lack of published material on the topic and an interest in writing for the now defunct Python Magazine. “The lack of documentation has been the biggest hurdle, [so] if you want to port to Python 3 you have been stepping into the dark. Since I had been using Python 3 and porting to it on my free time since early 2008 I had a bit of experience to share,” says Lennart. He then took his article series and had the basis for a book which he created with reStructuredText and Sphinx.

While he agrees that the separation of string contents into binary data and Unicode text was the right move, it’s a challenge you’ll have to undertake if your application doesn’t already handle all text as Unicode. “This is where you can expect the biggest problems,” he claims. Luckily he’s taking the time to cover it in his talk. He also covers the important topic of porting strategies, including branching, continuous 2to3 conversion, and single codebase projects.

Asked about his hardest porting project, zope.testing appears to be the winner. The package used doctests from before they were included in the standard library, along with a custom testrunner module, so the first step was to separate and deprecate. “I think I ended up deleting the port and restarting two or three times either because I made a hash of it or the trunk code had changed so much that it was easier to restart than to merge the changes.” Although the port isn’t complete, “porting a package takes between a couple of hours and a couple of days, and is a lot of fun, except if you have a lot of doctests.”

The Zope Component Architecture tops his most-wanted list and is the driving force behind his efforts. “It's really cool, but uses a lot of Python internals so porting it is a challenge,” he says, mentioning that a further complication is the need of writing fixers, for which there is little documentation.” Understanding how 2to3 works internally was another challenge, which led to a chapter in his book. Along with 2to3, Benjamin Peterson’s six package has been helping Lennart along with his porting. “I was planning to write such a module myself, but now I'm glad I didn't, because Benjamin did a much better job than I would have,” he says.

Lennart is a PyCon veteran, coming to the 2008 and 2009 conferences in Chicago, along with several EuroPython events, as well as Polish and French PyCons. The evenings are some of his favorite times, “because there are so many people around you that are much smarter than you are, and are friendly and open and willing to hang with you over coffee or a drink.” Sprints were one of the highlights of his 2009 experience, where he organized a Zope sprint without hopes of a great turnout. He ended up being wrong: “we got a quite a big gathering with many of the top Zope names and had some fantastic discussions on the way forward for Zope, as well as an extremely productive sprint!” He finished the interview by saying, “that was great fun, and those type of things seem to happen a lot on PyCon.”

If you’re interested in the PyCon sprints, check out the sprint page, and don’t forget to buy your tickets soon!

Comments

Popular posts from this blog

PyCon 2018 Registration is Now Open!

We’re thrilled to announce the opening of registration for PyCon 2018 in Cleveland, Ohio! The prior six PyCons have sold out, so prepare for another one and get your tickets early. The first 800 tickets sold are priced at an early bird discount, saving over 20% on corporate tickets and over 12% on individual tickets. Students save $25 if they purchase early!

To get started, create an account and head to https://us.pycon.org/2018/registration/ to get your tickets!

You get a package that is hard to beat when you register for PyCon. The conference itself is three days worth of our community’s 95 best talks, amazing keynote speakers each morning, and our famed lightning talks to close out each day, but it’s much more than that. It’s having over 3,000 people in one place to learn from and share with. It’s joining a conversation in the hallway with the creators of open source projects. It’s taking yourself from beginner to intermediate, or intermediate to advanced. For some, it’s getting st…

PyCon Opens Financial Aid Applications

Even though PyCon prides itself on being an affordable conference, registration is one of several expenses an attendee must incur, and it’s likely the smallest one. Flying, whether halfway around the world or from a few hundred miles away, is more expensive. Staying in a hotel for a few days is also more expensive. All together, the cost of attending a conference can become prohibitively expensive. That’s where our Financial Aid program comes in. We’re opening applications for Financial Aid today, and we’ll be accepting them through February 15, 2018.
Once you have an account on the site, you can apply here or through your dashboard.
We offer need-based grants to enable people from across our community to attend PyCon. The criteria for evaluating requests takes into account several things, such as whether the applicant is a student, unemployed, or underemployed; their geographic location; and their involvement in both the conference and the greater Python community. Those presenting at …

Introducing the PyCon Hatchery Program

PyCon is known around the world as the Python community’s premier event, attracting people from 39 countries. Outside of the main track of talks, PyCon is home to a growing number of additional events such as Young Coders, the Education Summit, Language Summit, Poster Session, among others. The conference strives to be globally representative by promoting diversity and inclusion through these additional events and outreach programs.
Our community works to meet these goals year on year. In the past, we have received requests to add events to PyCon but have not had the resources to make them work. Although we are still limited on staff resources, we are proposing a stepping point that may lead us in the right direction. What is the end goal?We want to support our community and enable them to add events to PyCon that are important to our community. The long-term goals of this program are to support and grow sustainable events that will become a recurring part of PyCon itself or find a home…