Brett Cannon

Principal Software Engineering Manager, Python extension for VS Code

Dev lead on the Python extension for Visual Studio Code. Python core developer since April 2003.

Post by this author

Python in Visual Studio Code – June & July 2018 Release

We are pleased to announce that the June & July 2018 releases of the Python Extension for Visual Studio Code is now available from the marketplace and the gallery. Between these two releases we have closed a total of 156 issues including introducing a new experimental language server and gevent support in our experimental debugger.

Don Jayamanne, creator of the Python extension for Visual Studio Code, joins Microsoft

I'm delighted to announce that Don Jayamanne, the author of the most popular Python extension for Visual Studio Code, has joined Microsoft! Starting immediately, Microsoft will be publishing and supporting the extension. You will receive the update automatically, or visit our Visual Studio Marketplace page and click "Install". Python has a ...

Idiomatic Python: functions versus classes

In Python, everything is an object. Compared to Java which forces you to code everything in an object-oriented programming style but still has the concept of primitive types which are not objects on their own (although Java 5 added autoboxing to help hide this discrepancy), Python has no primitive types which aren't objects but provides the ...

Come visit us at PyCon US 2017!

(image) With PyCon US 2017 happening later this week, we wanted to let you know what we will be up to at the conference! To start, thanks to our platinum sponsorship this year, we are going to have a booth in the exhibit hall. This will provide you a place to come if you have any questions involving Python and Microsoft. We are also going ...

A template for using Python on Azure Web Apps

Back in August we had a blog post on using newer versions of Python on Azure App Service. In that post we outlined why we were working on this alternative approach to using Python on Azure App Service and provided basic templates of key files you needed to make the approach work. While that approach still works, we realized there were some ...

Microsoft’s participation in the 2016 Python core sprint

From September 5th to the 9th a group of Python core developers gathered for a sprint hosted at Instagram and sponsored by Instagram, Microsoft, and the Python Software Foundation. The goal was to spend a week working towards the Python 3.6.0b1 release, just in time for the Python 3.6 feature freeze on Monday, September 12, 2016. The ...

Idiomatic Python: EAFP versus LBYL

One idiomatic practice in Python that often surprises people coming from programming languages where exceptions are considered, well, exceptional, is EAFP: "it's easier to ask for forgiveness than permission". Quickly, EAFP means that you should just do what you expect to work and if an exception might be thrown from the operation then catch ...

Idiomatic Python: boolean expressions

You might think that boolean expressions -- most frequently used as conditional guards which are the the bit of code that tests whether an or statement should execute -- are a fairly straight-forward concept and that there isn't really anything subtle to them at all. And while the general concept is simple, there are some idiomatic practices...

Implementing a code of conduct for all of our open source work

When working in the open source world it is very important that everyone feels welcome and safe. External contributors to a project need to feel welcome so that they want to contribute to the project. Since contributing to open source is an inherently social event due to the fact that there will be interactions through issues, code reviews, ...

Idiomatic Python: comprehensions

We're lucky to have a few people on our team who have been programming in Python for quite a while (I myself have been using the language now for over 15 years). Over the course of time we have picked up various idioms for programming in Python that may not be obvious or widely known for various reasons. To help share some of this knowledge we...