Thursday, October 31, 2019

The 2019 Python Developer Survey is here, take a few minutes to complete the survey!

It is that time of year and we are excited to start the official Python Developers Survey for 2019!

In 2018, the Python Software Foundation together with JetBrains conducted an official Python Developers Survey for the second time. Over 20,000 developers from almost 150 different countries participated..

With this third iteration of the official Python Developers Survey, we aim to identify how the Python development world looks today and how it compares to the last two years. The results of the survey will serve as a major source of knowledge about the current state of the Python community and how it is changing over the years, so we encourage you to participate and make an invaluable contribution to this community resource. The survey takes approximately 10 minutes to complete.

Please take a few minutes to complete the 2019 Python Developers Survey!

Your valuable opinion and feedback will help us better understand how Python developers use Python, related frameworks, tools, and technologies. We also hope you'll have fun going through the questions.

The survey is organized in partnership between the Python Software Foundation and JetBrains. The Python Software Foundation distributes this survey through community channels only (such as this blog, Twitter, mailing lists, etc). After the survey is over, we will publish the aggregated results and randomly select 100 winners (those who complete the survey in its entirety), who will each receive an amazing Python Surprise Gift Pack.

Wednesday, October 30, 2019

CPython Core Developer Sprint 2019

During the week of September 9th to September 13th, 34 core CPython committers gathered together in the Bloomberg London headquarters for the 2019 Python core developer sprint. The core developer sprint is an annual week-long meeting in which the CPython core team has the opportunity to meet each other in person in order to work together free from distractions. Having this many core developers in the same room allows us to work efficiently on several aspects of the Python language and CPython (the default implementation). This can include topics such as future designs and in-process PEPs (Python Enhancement Proposals), prototyping exciting changes that we may see in the future,  various core development processes such as issue triaging and pull request reviewing, and much more! This is a very exhausting week for everyone, but also a very productive one, as these meetings are known for generating a much-needed boost in core development, especially close to new releases.

CPython Core Developers in attendance at 2019 Sprint

This year’s core developer sprint was funded thanks to the Python Software Foundation (PSF) and the donation of PyLondinium 2019 ticket proceeds, which were gathered specifically to support this event. This helped the PSF cover the cost of travel and accommodation for all core developers attending. Additionally, some companies covered their employees’ expenses, such as Microsoft, Facebook, Google and Red Hat. Bloomberg provided the venue, infrastructure and catering, as well as some events that happened during the week.

Major Achievements

One of the main advantages of having the core developers together in the same room is how much smoother the iteration and design process is. For example, major achievements were made around the release of Python 3.8 (and older versions) in terms of stability and documentation and many exciting things were prepared for future releases. Some highlights include:

  • More than 120 pull requests were merged in the CPython repository. We had a friendly competition in which attending core developers were ranked based on the number of pull requests merged (only those pull requests created by others were considered). In the end, the winners received a poster with all of the attendees’ names created specifically for the sprint.
  • Discussions around PEP 602: Python 3.9 release schedule, including gathering user feedback about several aspects of the PEP.
  • Work on improving the interface and feature set, including updating the infrastructure to the latest roundup version and reworking the CSS to give a friendlier face to the site.
  • API design and discussion around PEP 416 -- Add a frozendict built-in type.
  • Draft design on a future PEP to implement an exception hierarchy to support TaskGroups and cancel scopes.
  • Work towards multiple interpreters: major efforts are needed before we have one GIL per interpreter. This included starting to refactor the existing global state into per-interpreter structures and developing tests that avoid new global state bleeding.
  • Work on a PEG-based parser prototype to substitute the current parser in order to improve maintenance and allow dropping the LL(1) restriction in the future.
  • Several pull requests to squash some complex bugs in multiprocessing.
  • Work on a possible implementation to introduce a Control Flow Graph (CFG) optimizer in CPython.
  • Work on the CI process. AppVeyor was dropped and replaced with Azure Pipelines.
  • Major improvements in the unittest.mock module, such as perfecting the new AsyncMock and related documentation, work on a prototype to add a WaitableMock class that can be joined (for threaded scenarios), as well as bug squashing around the module.

As you can imagine, with this level of activity, the buildbots were at maximum capacity and many issues were found and fixed both during and after the sprint.

Friday Event

As part of the core dev sprint, an event was organized with the help of Bloomberg in order to let the community know about the work done during the core developer sprint, why these events are important, and the impact they have on the future of the language. The event consisted of 4 lightning talks about some of the things worked on during the sprint:

Moderated panel discussion at the CPython Core Developer Sprint Friday Event

  • Work in AsyncMock - Lisa Roach
  • Removing dead batteries in the standard library - Christian Heimes
  • Sub-Interpreters support in the standard library - Eric Snow and Joannah Nanjekye
  • Improving - Ezio Melotti

There was also a moderated Q&A session about the core development sprint and, more generally, Python’s future direction. 

We hope that events like this will help communicate more transparently what the core developers do at the sprints and how much impact these events have on maintenance, processes, and the language itself.


As part of the ongoing effort to improve mentoring and growing the core dev team, two mentees who have been contributing for a long period of time and have previously been awarded triaging privileges were invited to the sprint. Joannah Nanjekye was being mentored by Eric Snow, while Karthikeyan Singaravelan was being mentored by Yury Selivanov (and remotely by Andrew Svetlov). Mentoring is a very important part of core development, as it helps to grow the core dev team and allows us to have more impact and scalability in the different areas that are the responsibilities of the core dev team. As a result of this mentoring process, Joannah Nanjekye was been promoted to a core developer a few weeks after the core dev sprint! 

Other Blogs

Some of the other attendees have posted their own blogs describing their experiences at the sprints (this list may be updated over time as additional updates are published by other core devs).

Thank you!

A huge thanks to all the participants who attended, the various companies who sponsored parts of the event, and the PSF for covering the majority of travel expenses. We also thank those core developers who could not attend this year. 

CPython Core Developers in attendance at 2019 Sprint

Attendees: Christian Heimes, Ezio Melotti, Ned Deily, Benjamin Peterson, Mark Shannon, Michael Foord, Joannah Nanjekye, Karthikeyan Singaravelan, Emily Morehouse, Jason R. Coombs, Julien Palard, Stéphane Wirtel, Zachary Ware, Petr Viktorin, Łukasz Langa, Davin Potts, Yury Selivanov, Steve Holden, Stefan Behnel, Larry Hastings, Guido van Rossum, Carol Willing, Gregory P. Smith, Thomas Wouters, Dino Viehland, Mark Dickinson, Vinay Sajip, Paul Ganssle, Steve Dower, Lisa Roach, Eric Snow, Brett Cannon, Pablo Galindo

Written by: Pablo Galindo

Thursday, October 24, 2019

Chris Angelico: 2019 Q2 Community Service Award Winner

The Python language is used around the world, and therefore so much surrounding it happens online. Python users turn to wikis, mailing lists, and forums to get their questions answered and concerns addressed. Python core developers use mailing lists to decide on critical additions and timelines. All this requires trusted and experienced contributors and administrators to ensure these wikis and mailing lists are focused on the Python language. Chris Angelico is one of these individuals and for this work, the PSF is pleased to present him with the Q2 2019 Community Service Award:
RESOLVED, that the Python Software Foundation award the Q2 2019 Community Service Award to Chris Angelico for his work towards fostering the online Python community by helping maintain the pydotorg-www mailing list, helping community members get edit access to the public-facing Python wiki, and also for being an active contributor to python-ideas mailing list and the python-dev mailing list.
Chris had a very noble reason to start programming: his older brother was doing it so he had to follow suit! This, along with getting into the family business of importing and exporting educational materials, led to a lifelong love of learning and technology. By the 1990’s Chris was working as a developer and first used Python when he needed to embed a scripting language in a C++ project. “Python offered a simple, clean, boilerplate-free scripting language that still had all the power that I needed for that initial project,” he says. Though the project ended up going in a different direction, Chris was already hanging out on Python mailing lists and was there to stay.

Since 2012, Chris has been an active contributor to the python-dev and python-ideas mailing lists, which are a large part of how the Python language gets developed. python-dev is used by core developers to discuss release dates and plans that could involve breaking changes to Python. On python-ideas, topics surround proposals that haven't matured enough to discuss on python-dev, and contributors can either reject ideas or help to refine them until they can be seriously proposed. “Both lists have a lot of incredibly smart people, but also very opinionated people, so it's pretty awesome to hang out and discuss,” says Chris. “They are significant parts of the funnel that brings proposals to fruition. Many changes start out with a discussion on python-ideas, then perhaps a PEP [Python Enhancement Proposal] is written, and it's discussed at length before migrating to python-dev for detailed discussion, and then finally code gets written and merged in.”

“Over the years I've known him, he's helped many people with technical questions.” recalls fellow python-ideas contributor Steve D’Aprano, “he's also been granted write permissions for the PEP repo, so Chris is the guy to go to for technical help with writing PEPs and pushing them into the repo.”

In 2015, a dominant topic on python-ideas was the f-string, a briefer string format than was previously available. Those against it said it was not Pythonic, and those for it said it was more readable than existing options. “The discussion went back and forth on that one, with many people supporting it intensely, and many others fighting just as intensely against it,” recalls Chris. F-strings were added to the Python core library in version 3.6, and you can read the discussion on python-ideas here.

A user-maintained repository of all things Python, the Python Wiki holds everything from user guides to advanced topics in the Python ecosystem. Since 2012 Chris has been an administrator, making sure contributors are actual humans with honest intent. “If it weren't for Chris I doubt the wiki would be anywhere near as popular as it is,” notes Steve Holden, PSF Director (2004-2013) and creator of the Community Service Award. “His efforts on python-dev help to keep Python moving forward and I'm happy that Chris' efforts for the community are being publicly recognised in this way.” More on how to become a contributor to the Python wiki can be found here.

Chris can even thank his work on Python lists for his current job teaching Python and JavaScript to adult learners at Thinkful. “The company head-hunted me based on the mailing list posts they saw.” Chris recalls, “So if you, too, enjoy coding and talking about code, hang out, you never know who'll notice you!”

In his free time, he can be found playing and modding video games. He’s a big fan of Alice in Wonderland, which he frequently uses as an avatar.