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 2019 Talks, Charlas, Posters, and Education Summit Schedules

With great excitement, we're happy to announce the much anticipated (and admittedly delayed) lineups for PyCon 2019's Talks, Charlas, Posters Session, and Education Summit.
2019 Talks and Charlas Schedule2019 Posters Lineup2019 Education Summit Schedule This is an excellent moment to recognize the volunteer teams that organize the calls for proposal, review all of the submissions, and construct a schedule! Their hard work provides the foundation for a vibrant conference with something for everyone. PyCon Program Committee Chair: Jason Myers Co-Chairs: Lorena Mesa & Jackie Kazil And the 34 volunteer reviewers!
PyCon Charlas Team Chair: Maricela Sánchez Co-Chairs: Mario Corchero and Naomi Ceder PyCon Posters Committee Chair: Rebecca Bilbro Co-Chairs: Kristen McIntyre, Nathan Danielsen, and Natalie Serebryakova Education Summit Committee Chair: Meenal Pant
Co-Chairs: Jessica Ingrasselino, Chalmer Lowe, Elizabeth Wickes, and Jeff Elkner

PyCon 2020-2021 Location

Now that registration and planning are well underway for PyCon 2019 in Cleveland, the PSF is pleased to announce that the home for PyCon 2020 and 2021 will be Pittsburgh, Pennsylvania!

The conference will be held in the beautiful David L. Lawrence Convention Center on April 15-23, 2020 and May 12-20, 2021.


The Steel City is built around the convergence of the Ohio, Allegheny, and Monongahela rivers and offers an understated mix of arts, culture, and technology. Join the Pittsburgh Python User Group for a meetup, eat dinner in a converted train station at the Grand Concourse, take a century-old cable car up the Duquesne Incline to see stunning views of the city, or visit the Robot Hall of Fame at the Carnegie Science Center's roboworld® exhibit. While you're out and about, see if you can count all 446 bridges in the city (that's more than you'll find in Venice, Italy)!

In Pittsburgh, you'll find that the residents are all neighbors. And with 90 unique neighborhoods tha…

Eighth Annual PyLadies Auction at PyCon 2019

PyLadies is an international mentorship community for women that use Python. Since it’s founding in 2011, PyLadies has continued to bring women into the Python community through a variety of methods, including hosting events in local PyLadies chapters and offering grant opportunities to attend PyCon. Their mission is to promote, educate and advance a diverse Python community through outreach, education, conferences, events, and social gatherings.

The Python Software Foundation (PSF) is proud to announce the Eighth Annual PyCon Charity Auction for 2019.

PyCon 2018’s auction was a huge success raising over $30K! More than 40 items from sponsors and fellow attendees were auctioned. Attendance was overwhelming and, rather than turn more people away for 2019, we have decided to increase capacity this year!

The PSF subsidizes this event each year by covering the cost of the venue, food, and beverages. In addition, the PSF adds a substantial donation to the event after everything is auctioned o…