Python in Visual Studio Code – October 2023 Release
This release includes the following announcements:
- Python Debugger extension updates
- Deprecation of Python 3.7 support
- Lint on change option for Pylint extension
- Mypy extension reporting scope and daemon mode
- Grace Hopper Conference and Open Source Day Participation
Python Debugger extension updates
This extension now includes a new User setting
debugpy.debugJustMyCode that, when disabled, allows you to step into system or third-party library code for all your applications (by default, the debugger steps only into your own Python code). This was a popular feature request for those who wanted to more conveniently disable justMyCode to all of their projects, instead of having to manually configure it in each of their projects’
launch.json debug configurations.
To try it out, make sure you have the Python Debugger extension installed. Then open the settings UI (File > Preferences > Settings), search for “debugJustMyCode” and disable the checkbox:
Now once you create a
launch.json file, it will use the value of
debugpy.debugJustMyCode by default, as long as
justMyCode is not specified in the file. Note that when
justMyCode is specified, its value will take precedence over the
Lint on change option for Pylint extension
By default, the Pylint extension only reports errors and warnings when a file is saved. There’s now a new setting called
pylint.lintOnChange that once set to
true, will enable the extension to report errors and warnings as you type, without having to save the file.
Mypy extension reporting scope and daemon mode
The Mypy Type Checker extension has now two new settings to allow you to specify mypy’s reporting scope and whether to use mypy’s daemon.
The first is
mypy-type-checker.reportingScope, which can be set to
file (the default) to enable problems to be reported only for open files in the workspace, or
workspace to enable reporting for all files in the workspace.
The second is
mypy-type-checker.preferDaemon, which when set to
true, will use mypy’s daemon (
dmypy) instead of mypy itself (
mypy) to perform type checking, which can be much faster in some scenarios.
Deprecation of Python 3.7 support
As previously mentioned in our July 2023 release blog, we have dropped official Python 3.7 support in the Python extension. There are no plans to actively remove support for Python 3.7, and so we expect the extension will continue to work unofficially with Python 3.7 for the foreseeable future.
Keep in mind, all other releases of Python are now on an annual release cadence, thus, we expect to stop official support for a Python release once it reaches end of life in the first extension release of the following calendar year (i.e., Python 3.8 is scheduled to reach EOL in October 2024, so the first extension release in 2025 will stop official support).
Grace Hopper Conference and Open Source Day Participation
On September 22nd, our team participated in Open Source Day! Open Source Day is an all-day hackathon and a part of Grace Hopper Celebration, the largest celebration of women and non-binary technologists in open source. During this event, attendees work with peers as well as experienced mentors to contribute to several open source projects.
We were thrilled to have participated once again in this event and would like to thank all of the mentors who participated in this event alongside us, and to each one of the participants who contributed to our projects:
- @ludizhan made their first contribution in vscode-python#20233
- @annaburlyaeva made their first contribution in vscode-python#22038
- @rr2203 made their first contribution in vscode-pylint#395
- @aku1310 made their first contribution in vscode-pylint#388
- @Kelly-LC made their first contribution in vscode-black-formatter#321
- @bhagya-98 made their first contributions in vscode-black-formatter#315, vscode-black-formatter#316 and vscode-flake8#221
- @Riya28 made their first contribution in vscode-flake8#219
- @sainarne15 made their first contribution in vscode-flake8#218
- @srilasya02 made their first contribution in vscode-mypy#158
- @antar-ghuman and @Jyothirmaikottu made their first contribution in vscode-mypy#153
- @norasoliman made their first contribution in vscode-mypy#159
- @pheonix-18 made their first contribution in vscode-isort#326
- @Riddhi-Thanki made their first contribution in vscode-isort#325
There are a number of “quick fix” feature issues open for those who are looking to contribute! We hope to encourage the Python community to contribute and maintain the various extensions we have created in any way they can. You can find these issues labeled as
good first issue within the vscode-python, vscode-pylint, vscode-flake8, vsocde-isort, vscode-mypy, and vscode-black-formatter repositories. We encourage contributions on any issue that does not already have an assignee.
Other Changes and Enhancements
We have also added small enhancements and fixed issues requested by users that should improve your experience working with Python and Jupyter Notebooks in Visual Studio Code. Some notable changes include:
- “Use Existing” and “Delete and Recreate” for Create Environment command enabled for conda environments (vscode-python#21828)
- Support go to definition on
__getattr__with Pylance (pylance-release#4764)
- The setting to enable inlay hints for partial call arguments (
python.analysis.inlayHints.callArgumentNames) can now be set to
partialto disable hints for positional-only and keyword-only parameters, or
allto enable them (pylance-release#4543)
Try out these new improvements by downloading the Python extension and the Jupyter extension from the Marketplace, or install them directly from the extensions view in Visual Studio Code (Ctrl + Shift + X or ⌘ + ⇧ + X). You can learn more about Python support in Visual Studio Code in the documentation. If you run into any problems or have suggestions, please file an issue on the Python VS Code GitHub page.
We would also like to extend special thanks to this month’s contributors:
- @Spitfire1900 made their first contribution in vscode-python#22019
- @annaburlyaeva made their first contribution in vscode-python#22055
- @ludizhan made their first contribution in vscode-python#22058
- @himi11 made their first contribution in vscode-python#22062