Python in Visual Studio Code – November 2024 Release

We’re excited to announce the November 2024 release of thePython,Pylance andJupyter extensions for Visual Studio Code!
This release includes the following announcements:
- Generate docstrings with Pylance
- New fold and unfold all docstrings commands
- Import suggestions can now include aliases from user files
- Experimental AI Code Action for implementing abstract classes
- Native REPL variables view
If you’re interested, you can check the full list of improvements in our changelogs for thePython,Jupyter andPylance extensions.
Generate docstrings with Pylance
You can now more conveniently generate documentation for your Python code withPylance‘s docstrings template generation feature! You can generate a docstring template for classes or methods by typing"""
or'''
, pressingkbstyle(Ctrl+Space)
, or selecting the lightbulb to invoke theGenerate Docstring Code Action. The generated docstring includes fields for the function’s description, parameter descriptions, parameter types, return value description, and return type.
This feature is currently behind an experimental setting, but we look forward to making it the default experience soon. You can try it out today by enabling thepython.analysis.supportDocstringTemplate
setting.
New fold and unfold all docstrings commands
Docstrings are great for providing context and explanations for your code, but sometimes you might want to fold them to focus on the code itself. You can now more easily do so by folding docstrings with the newPylance: Fold All Docstrings command, which can also be bound to a keybinding of your choice. To unfold them, use thePylance: Unfold All Docstrings command.
Import suggestions with aliases from user files
One of Pylance’s most powerful features is its ability to provideauto-import suggestions. By default, Pylance offers the import suggestion from where the symbol is defined, but you might want it to import from a file where the symbol is imported (i.e. aliased). With the newpython.analysis.includeAliasesFromUserFiles
setting, you can now control whether Pylance includes alias symbols from user files in its auto-import suggestions and in the add import Quick Fix.
Note: Enabling this setting can negatively impact performance, especially in large codebases, as Pylance may need to index more symbols and monitor more files for changes, which can increase resource usage.
Experimental AI Code Action: Implement Abstract Classes
You can now get the best of both worlds with AI and static analysis with the new experimental Code Action to implement abstract classes! This feature requires both thePylance and theGitHub Copilot extensions. To try it out, you can select theImplement all inherited abstract classes with Copilot Code Action when defining a class that inherits from an abstract one.
You can disable this feature by setting"python.analysis.aiCodeActions": {"implementAbstractClasses": false}
in your User settings.
Native REPL Variables View
The Native Python REPL now provides up-to-date variables for the built-in Variables view. This lets you dig into the state of the interpreter as you execute code from files or through the REPL input box.
Upcoming deprecation of Python 3.8 support
Python 3.8 reachedend-of-life (EOL) on 2024-10-07. As such, official support for Python 3.8 in the Python extension will stop in three months, in the February 2025 release of the Python extension. There are no plans to actively remove support for Python 3.8, and so we expect the extension will continue to work unofficially with Python 3.8 for the foreseeable future.
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:
- There’s a newdocumentation page on the various ways to run Python code in VS Code.
- Pixi functionality has been restored only when Pixi is available (vscode-python#24310).
- You can now change the type checking mode to strict or standard from the Language Status menu (pylance-release#6080)
We would also like to extend special thanks to this month’s contributors:
- @mnoah1 Add customizable interpreter discovery timeout invscode-python#24227
- @brokoli777 Refactor code to remove unused JSDoc types invscode-python#24300
- @T-256 Make
python_server.py
compatible to Python 3.7 invscode-python#24252Note: This doesn’t guarantee full compatibility nor support for Python 3.7 in other parts of the Python extension. The minimum Python version we support is still Python 3.8 until February 2025, when the minimum officially supported version will be Python 3.9.
Try out these new improvements by downloading thePython extension and theJupyter 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 aboutPython support in Visual Studio Code in the documentation. If you run into any problems or have suggestions,please file an issue on thePython VS Code GitHub page.
Author
