Profile_large

Brett Cannon

Introducing Which Film

For those times when you can't agree on what movie to watch

What I'm announcing

Today I'm happy to announce the public unveiling of Which Film! I'll discuss how the site came about and what drives it, but I thought I would first explain what it does: it's a website to help you choose what movie you and your family/friends should watch together. What you do is you go to the site, enter . . .

Read More

August 31, 2016

Why pathlib.Path doesn't inherit from str in Python

Or, implicit compatibility is usually not a good thing

Over on python-ideas a discussion has broken out about somehow trying to make p'/some/path/to/a/file return an instance of pathlib.Path. This led to a splinter discussion as to why pathlib.Path doesn't inherit from str? I figured instead of burying my response to this question in the thread I'd blog about it to try and explain one . . .

Read More

March 29, 2016

How to pitch Python 3 to management

Or, the business case for moving to Python 3

[This blog post has been sitting as a draft for months, and I'm finally finishing while at home sick; sorry if that makes it a little less coherent compared to my other posts]

Over on our Python team at Microsoft blog, one of my teammates wrote a blog post showing that project releases on PyPI within a single month will begin to support . . .

Read More

March 08, 2016

How the heck does async/await work in Python 3.5?

Or, generators let you do neat stuff

Being a core developer of Python has made me want to understand how the language generally works. I realize there will always be obscure corners where I don't know every intricate detail, but to be able to help with issues and the general design of Python I feel like I should try and understand its core semantics and how things work under . . .

Read More

February 11, 2016

Why `print` became a function in Python 3

After writing my post on why Python 3 exists which included an explanation about the most common question/complaint about why Python 3 forced textual and binary data into separate types, I heard from people about the second most common question/complaint about Python 3: why did we make print a function?

Who can do what?

The print statement

In . . .

Read More

December 31, 2015

Where are we in the Python 3 transition?

Or, how the Kübler-Ross model aptly applies to Python 3

The Kübler-Ross model outlines the stages that one goes through in dealing with death:

  1. Denial
  2. Anger
  3. Bargaining
  4. Depression
  5. Acceptance

This is sometimes referred to as the five stages of grief.Some have jokingly called them the five stages of software development. I think it actually matches the Python community's transition to Python 3 . . .

Read More

December 30, 2015

Stop using Python 2.6 please

Or, try not to let RHEL/CentOS default installations hold you back

Image from Fluent Python showing Python releases between 2006 and 2015 small

Python 2.6 has been around for over 7 years, first released in 2008 and last released in 2013 (as shown by the nice image provided by Fluent Python on Twitter and used with permission). It's unsupported software at this point as the Python development team only supports a feature release of Python with bugfix releases until the next . . .

Read More

December 20, 2015

Archive

Cover image credit: http://goo.gl/photos/re3FDeopYikjWfbK8