Python in Visual Studio Code – October 2023 Release

Courtney Webster

We’re excited to announce the October 2023 release of the Python and Jupyter extensions for Visual Studio Code!

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

If you’re interested, you can check the full list of improvements in our changelogs for the Python, Jupyter and Pylance extensions.

Python Debugger extension updates

The Debugpy extension, which was announced a few months ago, has been renamed to “Python Debugger” for improved discoverability in the marketplace.

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:

Image debugger just my code setting

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 debugpy.debugJustMyCode setting.

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:

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 partial to disable hints for positional-only and keyword-only parameters, or all to 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:

2 comments

Discussion is closed. Login to edit/delete existing comments.

  • dasfas dfa 0

    hello thank u very much

  • Mark Smith 0

    thanks for sharing!

Feedback usabilla icon