In March 2023, Python 3.12.0 alpha 6 was released! With several exciting new features, improvements, and optimizations, this release is a must-try for all Python enthusiasts. If you want to stay on the cutting edge of Python development, then you should really take it for a spin. But keep in mind that this release isn’t recommended for production.
The Python community has been buzzing with activities and events. PyCascades 2023 took place in Vancouver, British Columbia. The event featured talks and presentations on several Python topics. If you’re itching to get involved in the Python community, then you should know that the upcoming PyCon US 2023 has called for volunteers.
Finally, the AI explosion is shaking up the coding world. GitHub Copilot has just announced Copilot X, a new vision for AI-assisted development.
Let’s dive into the most exciting Python news from March 2023!
Join Now: Click here to join the Real Python Newsletter and you'll never miss another Python tutorial, course update, or post.
Python 3.12.0 Alpha 6 Released
The Python development team released Python 3.12.0 alpha 6, which is the second to last alpha version before the feature freeze kicks in for the beta phase:
This latest release continues to improve Python’s error messages. For example, now the interpreter can suggest standard-library modules in error messages for NameError
. It can also provide attribute name suggestions when a NameError
occurs.
Note: For a deep dive into these improvements and more, head over to Python 3.12 Preview: Ever Better Error Messages.
This release also added support for the Linux perf profiler as a new feature. Yes, now the interpreter supports the perf
profiler through the new environment variable PYTHONPERFSUPPORT
, the new command-line option -X perf
, and an API.
Several standard-library modules have benefited from various improvements. So far, those modules include array
, asyncio
, inspect
, pathlib
, math
, sqlite3
, os
, typing
, sys
, and a few others.
Python 3.12.0 alpha 6 also made several deprecations, including:
- The default adapters and converters in
sqlite3
are deprecated. Use the adapter and converter recipes instead, and customize them as necessary. - The three-argument signatures of
coroutine.throw()
,generator.throw()
, andagen.athrow()
are deprecated. Use the single-argument versions of these functions instead. - The default event loop policy’s
.get_event_loop()
method now emits aDeprecationWarning
if the lack of a current event loop prompts the creation of a new one. - The
xml.etree.ElementTree.Element
now emits aDeprecationWarning
if tested for its truth value. Previously, the CPython implementation emitted nothing. - The
st_ctime
field returned byos.stat()
andos.lstat()
on Windows are deprecated.
As with any alpha release, Python 3.12.0 alpha 6 is intended for experimentation and testing purposes only and isn’t recommended for production use. That said, you should definitely install the pre-release and see what it can do!
The Python development team plans to release the final version, Python 3.12.0, in October this year. However, keep in mind that this timeline is subject to change.
PEP 582 on Python Local Packages Directory Rejected
PEP 582 was rejected. After a long debate on the Python.org forum, steering council member and Python 3.12 release manager Thomas Wouters communicated the decision:
After careful consideration, the SC has decided to reject PEP 582 (Python local packages directory), at least in its current form. (Source)
PEP 582 proposes the addition of a local packages directory feature to Python. The feature would allow developers to install packages locally to a project directory, like in Node.js projects, rather than installing them directly to the operating system or to a virtual environment. The idea was to lower the bar for beginners by eliminating the confusion around virtual environments.
Note: The Python Dependency Manager (PDM) has already adopted PEP 582 as an experimental feature.
The reasons behind the rejection include the following:
- The implementation of the proposal is too complex and could lead to unnecessary complications when combined with other module search paths, such as virtual environments, PYTHONPATH, and path configuration (
.pth
) files. - The expected benefit of the proposal for new users is limited, and the added complexity outweighs the benefits.
- There’s no clear consensus among the packaging community and no clear-cut beneficial use case for the new feature.
However, the decision is open to reconsideration if a more clear consensus or a stronger argument showing the benefits of the proposal emerges.
PyCascades 2023 Takes Place in Vancouver, British Columbia
PyCascades is a regional Python conference in the Pacific Northwest. The organizing team consists of members from the Vancouver, Seattle, and Portland Python user groups. PyCascades 2023 took place from March 17 to 20 at the Simon Fraser University (SFU) Harbour Centre in Vancouver:
This year, the conference was in person. However, it also had an online event for remote participants. The preconference social was on March 17, while the talks occurred on March 18 and 19. On March 20, the sprints took place.
The conference covered a wide range of categories related to Python, such as core Python, data science, web development, and community. Some of the topics at the conference included Python syntax, machine learning, data visualization, web scraping, Django, Flask, and testing.
If you couldn’t participate this year and want to watch the talks, then check out the recordings for the two main conference days:
This year, Real Python was a silver sponsor of PyCascades. We also had a virtual booth on the web platform:
This Real Python booth was a great opportunity for us to connect with both the online and in-person participants.
A few members of our team attended in person this year, which was an amazing experience:
As always, going to Python conferences, meetups, and events will keep you up to date on the latest developments related to the language. It’s also a great way to interact with the community, meet some of its members, and widen your professional network as a Python developer.
Note: If you’d like to hear from some of the people who made this conference happen, then check out the Real Python Podcast Episode 159: Volunteering, Organizing, and Finding a Python Community, featuring members of the PyCascades team.
This year’s PyCascades was a great experience for us at Real Python. We were able to connect with several members of the Python community and meet them in person. We also got a ton of valuable feedback that’ll help us improve our future work. Thank you all for that!
PyCon US 2023 Calls for Volunteers
PyCon US 2023 posted their call for volunteers on March 6. This year, you can sign up for volunteer roles directly on the PyCon US website by navigating to the Volunteering page:
The PyCon US conference is organized and run by volunteers from the Python community. This year, they’re looking for volunteers to fill over three hundred on-site hours to help make sure everything runs smoothly.
If you’re interested in becoming a volunteer, then you’ll need to sign up for one or more specific roles. The available opportunities include:
- Registration
- Information desk
- Green room
- Tutorial hosts
- Swag setup and handout
- Session staff
- PyLadies auction helpers
- PSF booth volunteers
The roles come with different responsibilities and requirements that you can peruse on the page. What they all share is the promise that you’ll contribute in a meaningful way to the Python community! The conference runs from April 19 to April 23, 2023.
PyPI Publishes a Blog
PyPI, the Python package index, lauched its official blog on March 21. Ee Durbin, director of infrastructure at the Python Software Foundation, made the announcement:
The PyPI team will be using this space to communicate with PyPI users. They’ll be posting about:
- New features and updates
- Interesting technology
- General information and context around PyPI
This blog is an effort to keep the Python community up to date about the latest news related to PyPI and the continued efforts of the Python Software Foundation to keep the platform online, available, and secure.
Django Developers Survey 2022 Results Are Here
The Django team shared the results of the annual Django Developers Survey for 2022. William Vincent made the announcement on the Django news page on March 9.
This edition of the survey was conducted from September to October 2022 in collaboration with JetBrains. Almost five thousand Django users from 248 countries participated.
The survey covered a broad list of topics, which were organized into the following categories:
- Django usage
- Technologies and frameworks
- Syntax and documentation
- Languages and other web frameworks
- Resources
- Python versions
- Cloud
- Development tools
- Containers
- Demographics
- Company
In every category, you’ll find several specific topics with detailed results and insights. Here’s a short summary of the most relevant results from the Django Developers Survey 2022:
- The most commonly used Django version is 4.1, followed by 4.0 and 3.2.
- The majority of respondents use PostgreSQL as their primary database, followed by SQLite and MySQL.
- Most respondents use Linux or macOS as their development operating system, with Windows (with WSL) being the third most commonly used operating system.
- The most popular development environment is Visual Studio Code, followed by PyCharm and Vim.
- The preferred Python version is 3.10, followed by 3.9 and then 3.8.
- The most commonly used testing framework is
pytest
, followed byunittest
andpytest-django
. - The most popular cloud hosting platform is AWS, followed by DigitalOcean and Heroku.
If you’re an active Django user or if you just want to know how the Django community is doing, then you’ll find many interesting facts and insights in this survey. Check it out!
GitHub Copilot X Makes Strides
Lately, a lot is happening around artificial intelligence (AI), especially language models. Tools like ChatGPT are changing the global scene in many fields. In the world of programming, GitHub Copilot started the age of AI-assisted programming.
Copilot is already writing 46 percent of code. However, the current Copilot only provides AI-powered auto-completion that integrates into your editor or IDE. The next step is GitHub Copilot X, which aims to go way further and integrate AI into other areas of your workflow.
As they say on GitHub:
GitHub Copilot X is our vision for the future of AI-powered software development. Integrated into every part of your workflow. (Source)
GitHub Copilot X will provide several neat features in different contexts. That’s where the X comes in. The X represents a placeholder for those contexts where GitHub Copilot might become available. For example, Copilot for pull requests, Copilot for security, Copilot for CLI, and so on.
GitHub Copilot is adopting OpenAI’s new GPT-4 model and including support for the following features:
-
GitHub Copilot Chat: A chat interface integrated into your editor. It’ll recognize the code that you’ve typed and provide explanations of code blocks, generate tests, and suggest bug fixes.
-
Copilot for Pull Requests: A tool for automatically generating and suggesting descriptions for pull requests on GitHub. It’ll base the suggested description on the changed code.
-
Copilot for Docs: An experimental tool with a chat interface that’ll provide you with AI-generated responses to questions about documentation.
-
Copilot for the Command-Line Interface (CLI): An extension of GitHub Copilot into the terminal, where developers can ask for help with commands and receive contextual responses.
Wow, that sounds great! Copilot X aims to integrate these and other features into various aspects of your development workflow. The future of AI-powered software development seems promising. What are your thoughts on this topic? Let us know in the comments!
What’s Next for Python?
March 2023 was an exciting month for the Python community. We had the release of Python 3.12.0 alpha 6 and the Django Developers Survey 2022 results, as well as PyCascade 2023 taking place and GitHub Copilot X making waves in the AI-powered developer experience.
The Python ecosystem continues to evolve and advance, and we can’t wait to see what’s next. Let us know your thoughts on these developments in the comments below!
Happy Pythoning!
Join Now: Click here to join the Real Python Newsletter and you'll never miss another Python tutorial, course update, or post.