{ "name": "python", "displayName": "Python", "description": "IntelliSense (Pylance), Linting, Debugging (multi-threaded, remote), Jupyter Notebooks, code formatting, refactoring, unit tests, and more.", "version": "2021.8.1102490946", "featureFlags": { "usingNewInterpreterStorage": true }, "capabilities": { "untrustedWorkspaces": { "supported": false }, "virtualWorkspaces": { "supported": false, "description": "Python only works with local file paths." } }, "languageServerVersion": "0.5.30", "publisher": "ms-python", "enableProposedApi": true, "author": { "name": "Microsoft Corporation" }, "license": "MIT", "homepage": "https://github.com/Microsoft/vscode-python", "repository": { "type": "git", "url": "https://github.com/Microsoft/vscode-python" }, "bugs": { "url": "https://github.com/Microsoft/vscode-python/issues" }, "qna": "https://stackoverflow.com/questions/tagged/visual-studio-code+python", "icon": "icon.png", "galleryBanner": { "color": "#1e415e", "theme": "dark" }, "engines": { "vscode": "^1.57.0" }, "keywords": [ "python", "django", "unittest", "multi-root ready" ], "categories": [ "Programming Languages", "Debuggers", "Linters", "Formatters", "Other", "Data Science", "Machine Learning", "Notebooks" ], "activationEvents": [ "onLanguage:python", "onDebugResolve:python", "onCommand:python.execInTerminal", "onCommand:python.sortImports", "onCommand:python.runtests", "onCommand:python.debugtests", "onCommand:python.setInterpreter", "onCommand:python.setShebangInterpreter", "onCommand:python.viewTestUI", "onCommand:python.viewLanguageServerOutput", "onCommand:python.viewTestOutput", "onCommand:python.viewOutput", "onCommand:python.selectAndRunTestMethod", "onCommand:python.selectAndDebugTestMethod", "onCommand:python.selectAndRunTestFile", "onCommand:python.runCurrentTestFile", "onCommand:python.runFailedTests", "onCommand:python.execSelectionInTerminal", "onCommand:python.execSelectionInDjangoShell", "onCommand:python.buildWorkspaceSymbols", "onCommand:python.startREPL", "onCommand:python.goToPythonObject", "onCommand:python.reportIssue", "onCommand:python.setLinter", "onCommand:python.enableLinting", "onCommand:python.createTerminal", "onCommand:python.discoverTests", "onCommand:python.configureTests", "onCommand:python.switchOffInsidersChannel", "onCommand:python.switchToDailyChannel", "onCommand:python.switchToWeeklyChannel", "onCommand:python.clearWorkspaceInterpreter", "onCommand:python.enableSourceMapSupport", "onCommand:python.launchTensorBoard", "onCommand:python.clearPersistentStorage", "onWalkthrough:pythonWelcome", "onWalkthrough:pythonDataScienceWelcome", "workspaceContains:mspythonconfig.json", "workspaceContains:pyproject.toml", "workspaceContains:Pipfile", "workspaceContains:setup.py", "workspaceContains:requirements.txt", "workspaceContains:manage.py", "workspaceContains:app.py" ], "main": "./out/client/extension", "contributes": { "walkthroughs": [ { "id": "pythonWelcome", "title": "Get started with Python development", "description": "Your first steps to set up a Python project with all the powerful tools and features that the Python extension has to offer!", "when": "false", "steps": [ { "id": "python.installPythonWin", "title": "Install Python", "description": "The Python Extension requires Python to be installed. Install Python from the [Microsoft Store](https://aka.ms/AAd9rms).\n\n[Install Python](https://aka.ms/AAd9rms)\n", "media": { "markdown": "resources/walkthrough/install-python-windows.md" }, "when": "workspacePlatform == windows" }, { "id": "python.installPythonMac", "title": "Install Python", "description": "The Python Extension requires Python to be installed. Install Python 3 through the terminal.\n[Open Terminal](command:workbench.action.terminal.new)\n", "media": { "markdown": "resources/walkthrough/install-python-macos.md" }, "when": "workspacePlatform == mac", "command": "workbench.action.terminal.new" }, { "id": "python.installPythonLinux", "title": "Install Python", "description": "The Python Extension requires Python to be installed. Install Python 3 through the terminal.\n[Open Terminal](command:workbench.action.terminal.new)\n", "media": { "markdown": "resources/walkthrough/install-python-linux.md" }, "when": "workspacePlatform == linux", "command": "workbench.action.terminal.new" }, { "id": "python.selectInterpreter", "title": "Select a Python Interpreter", "description": "Choose which Python interpreter/environment you want to use for your Python project.\n[Select Python Interpreter](command:python.setInterpreter)\nTip: Reload the window if you installed Python but don't see it in the list (``Developer: Reload Window`` command in the [Command Palette](command:workbench.action.showCommands))", "media": { "altText": "selecting a python interpreter from the status bar", "image": { "dark": "resources/walkthrough/change-python-interpreter-dark.gif", "light": "resources/walkthrough/change-python-interpreter-light.gif", "hc": "resources/walkthrough/change-python-interpreter-hc.gif" } }, "when": "" }, { "id": "python.runAndDebug", "title": "Run and debug your Python file", "description": "Open your Python file, press F5 and select 'Python File' to start running and debugging. \n[Learn more](https://code.visualstudio.com/docs/python/python-tutorial#_run-hello-world)", "media": { "markdown": "resources/walkthrough/run-and-debug-python-file.md" }, "when": "workspacePlatform != mac" }, { "id": "python.runAndDebugMacOS", "title": "Run and debug your Python file", "description": "Open your Python file, press F5 and select 'Python File' to start running and debugging. \n[Learn more](https://code.visualstudio.com/docs/python/python-tutorial#_run-hello-world)", "media": { "markdown": "resources/walkthrough/run-and-debug-python-file-macOS.md" }, "when": "workspacePlatform == mac" }, { "id": "python.learnMore", "title": "Learn more", "description": "• Explore all the features the Python extension has to offer by looking for \"Python\" in the [Command Palette](command:workbench.action.showCommands).\n• [Sign up](https://aka.ms/python-vscode-mailinglist) for tips and tutorials through our mailing list.\n• Explore more features in our [Tutorials](https://aka.ms/AA8dqti) or check [Documentation](https://aka.ms/AA8dxwy) for tips and troubleshooting.\n• Take a look at our [Release Notes](https://aka.ms/AA8dxtb) to learn more about the latest features.", "media": { "image": "resources/walkthrough/python-docs-learn-more.png", "altText": "Documentation page for Python in VS Code" } } ] }, { "id": "pythonDataScienceWelcome", "title": "Get started with Python for Data Science", "description": "Your first steps to getting started with a Python Data Science project!", "when": "false", "steps": [ { "id": "python.installPython", "title": "Install Python", "description": "The Python Extension requires Python to be installed. Install Python from [Anaconda](https://www.anaconda.com) to use the Python extension.\n \n[Install Python with Anaconda](https://www.anaconda.com)", "media": { "image": "resources/walkthrough/anaconda-install.png", "altText": "Screenshot of anaconda webpage" }, "when": "" }, { "id": "python.openFolderMac", "title": "Open an existing Python project", "description": "If you already have an existing Python project on your machine:\n[Open Folder](command:workbench.action.files.openFileFolder)\n \nIf you would like to clone a Python project from GitHub:\n[Clone a Git repository](command:git.clone)", "media": { "image": "images/OpenOrCreateNotebook.gif", "altText": "Open a folder" }, "completionEvents": [ "onCommand:workbench.action.files.openFileFolder" ], "when": "workspacePlatform == mac && workspaceFolderCount == 0" }, { "id": "python.openFolder", "title": "Open an existing Python project", "description": "To start, open a Python folder/project.\nIf you already have an existing Python project on your machine:\n[Open Folder](command:workbench.action.files.openFolder)\n \nIf you would like to clone a Python project from GitHub:\n[Clone a Git repository](command:git.clone)", "media": { "image": "images/OpenOrCreateNotebook.gif", "altText": "Open a folder" }, "completionEvents": [ "onCommand:workbench.action.files.openFolder" ], "when": "workspacePlatform != mac && workspaceFolderCount == 0" }, { "id": "python.createNewNotebook", "title": "Create a new Jupyter Notebook", "description": "To create a new Jupyter Notebook, you can right click in the file explorer and create a new file with an .ipynb extension anytime.\n \nAlternatively, you can open the [Command Palette](command:workbench.action.showCommands) and run the command \n``Jupyter: Create New Blank Notebook``.\n[Create new Jupyter Notebook](command:toSide:jupyter.createnewnotebook)", "media": { "image": { "light": "resources/walkthrough/new-notebook-light.png", "dark": "resources/walkthrough/new-notebook-dark.png", "hc": "resources/walkthrough/new-notebook-hc.png" }, "altText": "Creating a new Jupyter notebook" }, "completionEvents": [ "onCommand:jupyter.createnewnotebook" ] }, { "id": "python.openInteractiveWindow", "title": "Open the Python Interactive Window", "description": "The Python Interactive Window is a Python shell where you can execute and view the results of your Python code. You can create cells on a Python file by typing ``#%%``.\n \nTo open the interactive window anytime, open the [Command Palette](command:workbench.action.showCommands) and run the command \n``Jupyter: Create Interactive Window``.\n[Open Interactive Window](command:toSide:jupyter.createnewinteractive)", "media": { "image": { "dark": "resources/walkthrough/interactive-window-dark.png", "light": "resources/walkthrough/interactive-window-light.png", "hc": "resources/walkthrough/interactive-window-hc.png" }, "altText": "Opening python interactive window" }, "completionEvents": [ "onCommand:jupyter.createnewinteractive" ] }, { "id": "python.dataScienceLearnMore", "title": "Learn more", "description": "• Explore all the features the Python extension has to offer by looking for \"Python\" in the [Command Palette](command:workbench.action.showCommands).\n• [Sign up](https://aka.ms/python-vscode-mailinglist) for tips and tutorials through our mailing list.\n• Explore more features in our [Tutorials](https://aka.ms/AAdar6q) or check the [Documentation](https://aka.ms/AA8dxwy) for tips and troubleshooting.\n• Take a look at our [Release Notes](https://aka.ms/AA8dxtb) to learn more about the latest features.", "media": { "image": "resources/walkthrough/datascience-learn-more.png", "altText": "Learning more from python visual studio code documentation" } } ] } ], "breakpoints": [ { "language": "html" }, { "language": "jinja" }, { "language": "python" } ], "commands": [ { "category": "Python", "command": "python.analysis.clearCache", "title": "%python.command.python.analysis.clearCache.title%" }, { "category": "Python", "command": "python.analysis.restartLanguageServer", "title": "%python.command.python.analysis.restartLanguageServer.title%" }, { "category": "Python", "command": "python.buildWorkspaceSymbols", "title": "%python.command.python.buildWorkspaceSymbols.title%" }, { "category": "Python", "command": "python.clearPersistentStorage", "title": "%python.command.python.clearPersistentStorage.title%" }, { "category": "Python", "command": "python.clearWorkspaceInterpreter", "title": "%python.command.python.clearWorkspaceInterpreter.title%" }, { "category": "Python", "command": "python.configureTests", "title": "%python.command.python.configureTests.title%" }, { "category": "Python", "command": "python.createTerminal", "title": "%python.command.python.createTerminal.title%" }, { "command": "python.debugTestNode", "icon": { "dark": "resources/dark/debug.svg", "light": "resources/light/debug.svg" }, "title": "Debug" }, { "category": "Python", "command": "python.debugtests", "icon": { "dark": "resources/dark/debug.svg", "light": "resources/light/debug.svg" }, "title": "%python.command.python.debugtests.title%" }, { "category": "Python", "command": "python.discoverTests", "icon": { "dark": "resources/dark/refresh.svg", "light": "resources/light/refresh.svg" }, "title": "%python.command.python.discoverTests.title%" }, { "category": "Python", "command": "python.discoveringTests", "icon": { "dark": "resources/dark/discovering-tests.svg", "light": "resources/light/discovering-tests.svg" }, "title": "%python.command.python.discoveringTests.title%" }, { "category": "Python", "command": "python.enableLinting", "title": "%python.command.python.enableLinting.title%" }, { "category": "Python", "command": "python.enableSourceMapSupport", "title": "%python.command.python.enableSourceMapSupport.title%" }, { "category": "Python", "command": "python.execInTerminal", "title": "%python.command.python.execInTerminal.title%" }, { "category": "Python", "command": "python.execInTerminal-icon", "icon": { "dark": "resources/dark/run-file.svg", "light": "resources/light/run-file.svg" }, "title": "%python.command.python.execInTerminal.title%" }, { "category": "Python", "command": "python.execSelectionInDjangoShell", "title": "%python.command.python.execSelectionInDjangoShell.title%" }, { "category": "Python", "command": "python.execSelectionInTerminal", "title": "%python.command.python.execSelectionInTerminal.title%" }, { "category": "Python", "command": "python.goToPythonObject", "title": "%python.command.python.goToPythonObject.title%" }, { "category": "Python", "command": "python.launchTensorBoard", "title": "%python.command.python.launchTensorBoard.title%" }, { "command": "python.openTestNodeInEditor", "icon": { "dark": "resources/dark/open-file.svg", "light": "resources/light/open-file.svg" }, "title": "Open" }, { "category": "Python Refactor", "command": "python.refactorExtractMethod", "title": "%python.command.python.refactorExtractMethod.title%" }, { "category": "Python Refactor", "command": "python.refactorExtractVariable", "title": "%python.command.python.refactorExtractVariable.title%" }, { "category": "Python", "command": "python.refreshTensorBoard", "enablement": "python.hasActiveTensorBoardSession", "icon": "$(refresh)", "title": "%python.command.python.refreshTensorBoard.title%" }, { "category": "Python", "command": "python.reportIssue", "title": "%python.command.python.reportIssue.title%" }, { "category": "Python", "command": "python.runCurrentTestFile", "title": "%python.command.python.runCurrentTestFile.title%" }, { "category": "Python", "command": "python.runFailedTests", "icon": { "dark": "resources/dark/run-failed-tests.svg", "light": "resources/light/run-failed-tests.svg" }, "title": "%python.command.python.runFailedTests.title%" }, { "category": "Python", "command": "python.runLinting", "title": "%python.command.python.runLinting.title%" }, { "command": "python.runTestNode", "icon": { "dark": "resources/dark/start.svg", "light": "resources/light/start.svg" }, "title": "Run" }, { "category": "Python", "command": "python.runtests", "icon": { "dark": "resources/dark/run-tests.svg", "light": "resources/light/run-tests.svg" }, "title": "%python.command.python.runtests.title%" }, { "category": "Python", "command": "python.selectAndDebugTestMethod", "title": "%python.command.python.selectAndDebugTestMethod.title%" }, { "category": "Python", "command": "python.selectAndRunTestFile", "title": "%python.command.python.selectAndRunTestFile.title%" }, { "category": "Python", "command": "python.selectAndRunTestMethod", "title": "%python.command.python.selectAndRunTestMethod.title%" }, { "category": "Python", "command": "python.setInterpreter", "title": "%python.command.python.setInterpreter.title%" }, { "category": "Python", "command": "python.setLinter", "title": "%python.command.python.setLinter.title%" }, { "category": "Python Refactor", "command": "python.sortImports", "title": "%python.command.python.sortImports.title%" }, { "category": "Python", "command": "python.startREPL", "title": "%python.command.python.startREPL.title%" }, { "category": "Python", "command": "python.stopTests", "icon": { "dark": "resources/dark/stop.svg", "light": "resources/light/stop.svg" }, "title": "%python.command.python.stopTests.title%" }, { "category": "Python", "command": "python.switchOffInsidersChannel", "title": "%python.command.python.switchOffInsidersChannel.title%" }, { "category": "Python", "command": "python.switchToDailyChannel", "title": "%python.command.python.switchToDailyChannel.title%" }, { "category": "Python", "command": "python.switchToWeeklyChannel", "title": "%python.command.python.switchToWeeklyChannel.title%" }, { "category": "Python", "command": "python.viewLanguageServerOutput", "enablement": "python.hasLanguageServerOutputChannel", "title": "%python.command.python.viewLanguageServerOutput.title%" }, { "category": "Python", "command": "python.viewOutput", "icon": { "dark": "resources/dark/repl.svg", "light": "resources/light/repl.svg" }, "title": "%python.command.python.viewOutput.title%" }, { "category": "Python", "command": "python.viewTestOutput", "icon": { "dark": "resources/dark/repl.svg", "light": "resources/light/repl.svg" }, "title": "%python.command.python.viewTestOutput.title%" } ], "configuration": { "properties": { "python.analysis.cacheFolderPath": { "description": "Path to a writable folder where analyzer can cache its data. Change requires restart.", "scope": "resource", "type": "string" }, "python.analysis.diagnosticPublishDelay": { "default": 1000, "description": "Delay before diagnostic messages are transferred to the problems list (in milliseconds).", "scope": "resource", "type": "integer" }, "python.analysis.disabled": { "default": [], "description": "List of suppressed diagnostic messages.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.analysis.errors": { "default": [], "description": "List of diagnostics messages to be shown as errors.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.analysis.information": { "default": [], "description": "List of diagnostics messages to be shown as information.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.analysis.logLevel": { "default": "Error", "description": "Defines type of log messages language server writes into the output window.", "enum": [ "Error", "Information", "Trace", "Warning" ], "scope": "resource", "type": "string" }, "python.analysis.memory.keepLibraryAst": { "default": false, "description": "Allows code analysis to keep parser trees in memory. Increases memory consumption but may improve performance with large library analysis.", "scope": "resource", "type": "boolean" }, "python.analysis.symbolsHierarchyDepthLimit": { "default": 10, "description": "Limits depth of the symbol tree in the document outline.", "scope": "resource", "type": "integer" }, "python.analysis.typeshedPaths": { "default": [], "description": "Paths to Typeshed stub folders. Default is Typeshed installed with the language server. Change requires restart.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.analysis.warnings": { "default": [], "description": "List of diagnostics messages to be shown as warnings.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.autoComplete.addBrackets": { "default": false, "description": "Automatically add brackets for functions.", "scope": "resource", "type": "boolean" }, "python.autoComplete.extraPaths": { "default": [], "description": "List of paths to libraries and the like that need to be imported by auto complete engine. E.g. when using Google App SDK, the paths are not in system path, hence need to be added into this list.", "scope": "resource", "type": "array" }, "python.autoComplete.showAdvancedMembers": { "default": true, "description": "Controls appearance of methods with double underscores in the completion list.", "scope": "resource", "type": "boolean" }, "python.autoComplete.typeshedPaths": { "default": [], "description": "Specifies paths to local typeshed repository clone(s) for the Python language server.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.autoUpdateLanguageServer": { "default": true, "description": "Automatically update the language server.", "scope": "application", "type": "boolean" }, "python.condaPath": { "default": "", "description": "Path to the conda executable to use for activation (version 4.4+).", "scope": "resource", "type": "string" }, "python.defaultInterpreterPath": { "default": "python", "description": "Path to Python, you can use a custom version of Python by modifying this setting to include the full path. This default setting is used as a fallback if no interpreter is selected for the workspace. The extension will also not set nor change the value of this setting, it will only read from it.", "scope": "resource", "type": "string" }, "python.diagnostics.sourceMapsEnabled": { "default": false, "description": "Enable source map support for meaningful stack traces in error logs.", "scope": "application", "type": "boolean" }, "python.disableInstallationCheck": { "default": false, "description": "Whether to check if Python is installed (also warn when using the macOS-installed Python).", "scope": "resource", "type": "boolean" }, "python.envFile": { "default": "${workspaceFolder}/.env", "description": "Absolute path to a file containing environment variable definitions.", "scope": "resource", "type": "string" }, "python.experiments.enabled": { "default": true, "description": "Enables/disables A/B tests.", "scope": "machine", "type": "boolean" }, "python.experiments.optInto": { "default": [], "description": "List of experiment to opt into. If empty, user is assigned the default experiment groups. See https://github.com/microsoft/vscode-python/wiki/Experiments for more details.", "items": { "enum": [ "All", "pythonDeprecatePythonPath", "pythonDiscoveryModule", "pythonDiscoveryModuleWithoutWatcher", "pythonJediLSP", "pythonSortEnvs", "pythonSurveyNotification", "pythonTensorboardExperiment" ] }, "scope": "machine", "type": "array" }, "python.experiments.optOutFrom": { "default": [], "description": "List of experiment to opt out of. If empty, user is assigned the default experiment groups. See https://github.com/microsoft/vscode-python/wiki/Experiments for more details.", "items": { "enum": [ "All", "pythonDeprecatePythonPath", "pythonDiscoveryModule", "pythonDiscoveryModuleWithoutWatcher", "pythonJediLSP", "pythonSortEnvs", "pythonSurveyNotification", "pythonTensorboardExperiment" ] }, "scope": "machine", "type": "array" }, "python.formatting.autopep8Args": { "default": [], "description": "Arguments passed in. Each argument is a separate item in the array.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.formatting.autopep8Path": { "default": "autopep8", "description": "Path to autopep8, you can use a custom version of autopep8 by modifying this setting to include the full path.", "scope": "resource", "type": "string" }, "python.formatting.blackArgs": { "default": [], "description": "Arguments passed in. Each argument is a separate item in the array.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.formatting.blackPath": { "default": "black", "description": "Path to Black, you can use a custom version of Black by modifying this setting to include the full path.", "scope": "resource", "type": "string" }, "python.formatting.provider": { "default": "autopep8", "description": "Provider for formatting. Possible options include 'autopep8', 'black', and 'yapf'.", "enum": [ "autopep8", "black", "none", "yapf" ], "scope": "resource", "type": "string" }, "python.formatting.yapfArgs": { "default": [], "description": "Arguments passed in. Each argument is a separate item in the array.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.formatting.yapfPath": { "default": "yapf", "description": "Path to yapf, you can use a custom version of yapf by modifying this setting to include the full path.", "scope": "resource", "type": "string" }, "python.globalModuleInstallation": { "default": false, "description": "Whether to install Python modules globally when not using an environment.", "scope": "resource", "type": "boolean" }, "python.insidersChannel": { "default": "off", "description": "Set to \"weekly\" or \"daily\" to automatically download and install the latest Insiders builds of the python extension, which include upcoming features and bug fixes.", "enum": [ "daily", "off", "weekly" ], "scope": "application", "type": "string" }, "python.jediMemoryLimit": { "default": 0, "description": "Memory limit for the Jedi completion engine in megabytes. Zero (default) means 3072 MB. -1 means unlimited (disable memory limit check)", "scope": "resource", "type": "number" }, "python.jediPath": { "default": "", "description": "Path to directory containing the Jedi library (this path will contain the 'Jedi' sub directory). Note: since Jedi depends on Parso, if using this setting you will need to ensure a suitable version of Parso is available. This setting only works with \"languageServer=Jedi\" and not JediLSP.", "scope": "resource", "type": "string" }, "python.languageServer": { "default": "Default", "description": "Defines type of the language server.", "enum": [ "Default", "Jedi", "JediLSP", "Pylance", "None" ], "enumDescriptions": [ "Automatically select a language server: Pylance if installed and available, otherwise fallback to Jedi.", "Use Jedi as a language server.", "Use Jedi behind the Language Server Protocol (LSP) as a language server.", "Use Pylance as a language server.", "Disable language server capabilities." ], "scope": "window", "type": "string" }, "python.linting.banditArgs": { "default": [], "description": "Arguments passed in. Each argument is a separate item in the array.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.linting.banditEnabled": { "default": false, "description": "Whether to lint Python files using bandit.", "scope": "resource", "type": "boolean" }, "python.linting.banditPath": { "default": "bandit", "description": "Path to bandit, you can use a custom version of bandit by modifying this setting to include the full path.", "scope": "resource", "type": "string" }, "python.linting.cwd": { "default": null, "description": "Optional working directory for linters.", "scope": "resource", "type": "string" }, "python.linting.enabled": { "default": true, "description": "Whether to lint Python files.", "scope": "resource", "type": "boolean" }, "python.linting.flake8Args": { "default": [], "description": "Arguments passed in. Each argument is a separate item in the array.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.linting.flake8CategorySeverity.E": { "default": "Error", "description": "Severity of Flake8 message type 'E'.", "enum": [ "Error", "Hint", "Information", "Warning" ], "scope": "resource", "type": "string" }, "python.linting.flake8CategorySeverity.F": { "default": "Error", "description": "Severity of Flake8 message type 'F'.", "enum": [ "Error", "Hint", "Information", "Warning" ], "scope": "resource", "type": "string" }, "python.linting.flake8CategorySeverity.W": { "default": "Warning", "description": "Severity of Flake8 message type 'W'.", "enum": [ "Error", "Hint", "Information", "Warning" ], "scope": "resource", "type": "string" }, "python.linting.flake8Enabled": { "default": false, "description": "Whether to lint Python files using flake8", "scope": "resource", "type": "boolean" }, "python.linting.flake8Path": { "default": "flake8", "description": "Path to flake8, you can use a custom version of flake8 by modifying this setting to include the full path.", "scope": "resource", "type": "string" }, "python.linting.ignorePatterns": { "default": [ "**/site-packages/**/*.py", ".vscode/*.py" ], "description": "Patterns used to exclude files or folders from being linted.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.linting.lintOnSave": { "default": true, "description": "Whether to lint Python files when saved.", "scope": "resource", "type": "boolean" }, "python.linting.maxNumberOfProblems": { "default": 100, "description": "Controls the maximum number of problems produced by the server.", "scope": "resource", "type": "number" }, "python.linting.mypyArgs": { "default": [ "--follow-imports=silent", "--ignore-missing-imports", "--show-column-numbers" ], "description": "Arguments passed in. Each argument is a separate item in the array.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.linting.mypyCategorySeverity.error": { "default": "Error", "description": "Severity of Mypy message type 'Error'.", "enum": [ "Error", "Hint", "Information", "Warning" ], "scope": "resource", "type": "string" }, "python.linting.mypyCategorySeverity.note": { "default": "Information", "description": "Severity of Mypy message type 'Note'.", "enum": [ "Error", "Hint", "Information", "Warning" ], "scope": "resource", "type": "string" }, "python.linting.mypyEnabled": { "default": false, "description": "Whether to lint Python files using mypy.", "scope": "resource", "type": "boolean" }, "python.linting.mypyPath": { "default": "mypy", "description": "Path to mypy, you can use a custom version of mypy by modifying this setting to include the full path.", "scope": "resource", "type": "string" }, "python.linting.prospectorArgs": { "default": [], "description": "Arguments passed in. Each argument is a separate item in the array.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.linting.prospectorEnabled": { "default": false, "description": "Whether to lint Python files using prospector.", "scope": "resource", "type": "boolean" }, "python.linting.prospectorPath": { "default": "prospector", "description": "Path to Prospector, you can use a custom version of prospector by modifying this setting to include the full path.", "scope": "resource", "type": "string" }, "python.linting.pycodestyleArgs": { "default": [], "description": "Arguments passed in. Each argument is a separate item in the array.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.linting.pycodestyleCategorySeverity.E": { "default": "Error", "description": "Severity of pycodestyle message type 'E'.", "enum": [ "Error", "Hint", "Information", "Warning" ], "scope": "resource", "type": "string" }, "python.linting.pycodestyleCategorySeverity.W": { "default": "Warning", "description": "Severity of pycodestyle message type 'W'.", "enum": [ "Error", "Hint", "Information", "Warning" ], "scope": "resource", "type": "string" }, "python.linting.pycodestyleEnabled": { "default": false, "description": "Whether to lint Python files using pycodestyle", "scope": "resource", "type": "boolean" }, "python.linting.pycodestylePath": { "default": "pycodestyle", "description": "Path to pycodestyle, you can use a custom version of pycodestyle by modifying this setting to include the full path.", "scope": "resource", "type": "string" }, "python.linting.pydocstyleArgs": { "default": [], "description": "Arguments passed in. Each argument is a separate item in the array.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.linting.pydocstyleEnabled": { "default": false, "description": "Whether to lint Python files using pydocstyle", "scope": "resource", "type": "boolean" }, "python.linting.pydocstylePath": { "default": "pydocstyle", "description": "Path to pydocstyle, you can use a custom version of pydocstyle by modifying this setting to include the full path.", "scope": "resource", "type": "string" }, "python.linting.pylamaArgs": { "default": [], "description": "Arguments passed in. Each argument is a separate item in the array.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.linting.pylamaEnabled": { "default": false, "description": "Whether to lint Python files using pylama.", "scope": "resource", "type": "boolean" }, "python.linting.pylamaPath": { "default": "pylama", "description": "Path to pylama, you can use a custom version of pylama by modifying this setting to include the full path.", "scope": "resource", "type": "string" }, "python.linting.pylintArgs": { "default": [], "description": "Arguments passed in. Each argument is a separate item in the array.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.linting.pylintCategorySeverity.convention": { "default": "Information", "description": "Severity of Pylint message type 'Convention/C'.", "enum": [ "Error", "Hint", "Information", "Warning" ], "scope": "resource", "type": "string" }, "python.linting.pylintCategorySeverity.error": { "default": "Error", "description": "Severity of Pylint message type 'Error/E'.", "enum": [ "Error", "Hint", "Information", "Warning" ], "scope": "resource", "type": "string" }, "python.linting.pylintCategorySeverity.fatal": { "default": "Error", "description": "Severity of Pylint message type 'Fatal/F'.", "enum": [ "Error", "Hint", "Information", "Warning" ], "scope": "resource", "type": "string" }, "python.linting.pylintCategorySeverity.refactor": { "default": "Hint", "description": "Severity of Pylint message type 'Refactor/R'.", "enum": [ "Error", "Hint", "Information", "Warning" ], "scope": "resource", "type": "string" }, "python.linting.pylintCategorySeverity.warning": { "default": "Warning", "description": "Severity of Pylint message type 'Warning/W'.", "enum": [ "Error", "Hint", "Information", "Warning" ], "scope": "resource", "type": "string" }, "python.linting.pylintEnabled": { "default": true, "description": "Whether to lint Python files using pylint.", "scope": "resource", "type": "boolean" }, "python.linting.pylintPath": { "default": "pylint", "description": "Path to Pylint, you can use a custom version of pylint by modifying this setting to include the full path.", "scope": "resource", "type": "string" }, "python.linting.pylintUseMinimalCheckers": { "default": true, "description": "Whether to run Pylint with minimal set of rules.", "scope": "resource", "type": "boolean" }, "python.logging.level": { "default": "error", "description": "The logging level the extension logs at, defaults to 'error'", "enum": [ "debug", "error", "info", "off", "warn" ], "scope": "machine", "type": "string" }, "python.pipenvPath": { "default": "pipenv", "description": "Path to the pipenv executable to use for activation.", "scope": "resource", "type": "string" }, "python.poetryPath": { "default": "poetry", "description": "Path to the poetry executable.", "scope": "resource", "type": "string" }, "python.pythonPath": { "default": "python", "description": "(DEPRECATED: Note this setting is not used when in pythonDeprecatePythonPath experiment) Path to Python, you can use a custom version of Python by modifying this setting to include the full path.", "scope": "resource", "type": "string" }, "python.sortImports.args": { "default": [], "description": "Arguments passed in. Each argument is a separate item in the array.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.sortImports.path": { "default": "", "description": "Path to isort script, default using inner version", "scope": "resource", "type": "string" }, "python.tensorBoard.logDirectory": { "description": "Set this setting to your preferred TensorBoard log directory to skip log directory prompt when starting TensorBoard.", "scope": "application", "type": "string" }, "python.terminal.activateEnvInCurrentTerminal": { "default": false, "description": "Activate Python Environment in the current Terminal on load of the Extension.", "scope": "resource", "type": "boolean" }, "python.terminal.activateEnvironment": { "default": true, "description": "Activate Python Environment in Terminal created using the Extension.", "scope": "resource", "type": "boolean" }, "python.terminal.executeInFileDir": { "default": false, "description": "When executing a file in the terminal, whether to use execute in the file's directory, instead of the current open folder.", "scope": "resource", "type": "boolean" }, "python.terminal.launchArgs": { "default": [], "description": "Python launch arguments to use when executing a file in the terminal.", "scope": "resource", "type": "array" }, "python.testing.autoTestDiscoverOnSaveEnabled": { "default": true, "description": "Enable auto run test discovery when saving a test file.", "scope": "resource", "type": "boolean" }, "python.testing.cwd": { "default": null, "description": "Optional working directory for tests.", "scope": "resource", "type": "string" }, "python.testing.debugPort": { "default": 3000, "description": "Port number used for debugging of tests.", "scope": "resource", "type": "number" }, "python.testing.nosetestArgs": { "default": [], "description": "Arguments passed in. Each argument is a separate item in the array.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.testing.nosetestPath": { "default": "nosetests", "description": "Path to nosetests, you can use a custom version of nosetests by modifying this setting to include the full path.", "scope": "resource", "type": "string" }, "python.testing.nosetestsEnabled": { "default": false, "description": "Enable testing using nosetests.", "scope": "resource", "type": "boolean" }, "python.testing.promptToConfigure": { "default": true, "description": "Prompt to configure a test framework if potential tests directories are discovered.", "scope": "resource", "type": "boolean" }, "python.testing.pytestArgs": { "default": [], "description": "Arguments passed in. Each argument is a separate item in the array.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.testing.pytestEnabled": { "default": false, "description": "Enable testing using pytest.", "scope": "resource", "type": "boolean" }, "python.testing.pytestPath": { "default": "pytest", "description": "Path to pytest (pytest), you can use a custom version of pytest by modifying this setting to include the full path.", "scope": "resource", "type": "string" }, "python.testing.unittestArgs": { "default": [ "*test*.py", "-p", "-s", "-v", "." ], "description": "Arguments passed in. Each argument is a separate item in the array.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.testing.unittestEnabled": { "default": false, "description": "Enable testing using unittest.", "scope": "resource", "type": "boolean" }, "python.venvFolders": { "default": [], "description": "Folders in your home directory to look into for virtual environments (supports pyenv, direnv and virtualenvwrapper by default).", "items": { "type": "string" }, "scope": "machine", "type": "array" }, "python.venvPath": { "default": "", "description": "Path to folder with a list of Virtual Environments (e.g. ~/.pyenv, ~/Envs, ~/.virtualenvs).", "scope": "machine", "type": "string" }, "python.workspaceSymbols.ctagsPath": { "default": "ctags", "description": "Fully qualified path to the ctags executable (else leave as ctags, assuming it is in current path).", "scope": "resource", "type": "string" }, "python.workspaceSymbols.enabled": { "default": false, "description": "Set to 'true' to enable ctags to provide Workspace Symbols.", "scope": "resource", "type": "boolean" }, "python.workspaceSymbols.exclusionPatterns": { "default": [ "**/site-packages/**" ], "description": "Pattern used to exclude files and folders from ctags See http://ctags.sourceforge.net/ctags.html.", "items": { "type": "string" }, "scope": "resource", "type": "array" }, "python.workspaceSymbols.rebuildOnFileSave": { "default": true, "description": "Whether to re-build the tags file on when changes made to python files are saved.", "scope": "resource", "type": "boolean" }, "python.workspaceSymbols.rebuildOnStart": { "default": true, "description": "Whether to re-build the tags file on start (defaults to true).", "scope": "resource", "type": "boolean" }, "python.workspaceSymbols.tagFilePath": { "default": "${workspaceFolder}/.vscode/tags", "description": "Fully qualified path to tag file (exuberant ctag file), used to provide workspace symbols.", "scope": "resource", "type": "string" } }, "title": "Python", "type": "object" }, "debuggers": [ { "configurationAttributes": { "attach": { "properties": { "connect": { "label": "Attach by connecting to debugpy over a socket.", "properties": { "host": { "default": "127.0.0.1", "description": "Hostname or IP address to connect to.", "type": "string" }, "port": { "description": "Port to connect to.", "type": "number" } }, "required": [ "port" ], "type": "object" }, "debugAdapterPath": { "description": "Path (fully qualified) to the python debug adapter executable.", "type": "string" }, "django": { "default": false, "description": "Django debugging.", "type": "boolean" }, "host": { "default": "127.0.0.1", "description": "Hostname or IP address to connect to.", "type": "string" }, "jinja": { "default": null, "description": "Jinja template debugging (e.g. Flask).", "enum": [ false, null, true ] }, "justMyCode": { "default": true, "description": "Debug only user-written code.", "type": "boolean" }, "listen": { "label": "Attach by listening for incoming socket connection from debugpy", "properties": { "host": { "default": "127.0.0.1", "description": "Hostname or IP address of the interface to listen on.", "type": "string" }, "port": { "description": "Port to listen on.", "type": "number" } }, "required": [ "port" ], "type": "object" }, "logToFile": { "default": false, "description": "Enable logging of debugger events to a log file.", "type": "boolean" }, "pathMappings": { "default": [], "items": { "label": "Path mapping", "properties": { "localRoot": { "default": "${workspaceFolder}", "label": "Local source root.", "type": "string" }, "remoteRoot": { "default": "", "label": "Remote source root.", "type": "string" } }, "required": [ "localRoot", "remoteRoot" ], "type": "object" }, "label": "Path mappings.", "type": "array" }, "port": { "description": "Port to connect to.", "type": "number" }, "processId": { "anyOf": [ { "default": "${command:pickProcess}", "description": "Use process picker to select a process to attach, or Process ID as integer.", "enum": [ "${command:pickProcess}" ] }, { "description": "ID of the local process to attach to.", "type": "integer" } ] }, "redirectOutput": { "default": true, "description": "Redirect output.", "type": "boolean" }, "showReturnValue": { "default": true, "description": "Show return value of functions when stepping.", "type": "boolean" }, "subProcess": { "default": false, "description": "Whether to enable Sub Process debugging", "type": "boolean" } } }, "launch": { "properties": { "args": { "default": [], "description": "Command line arguments passed to the program", "items": { "type": "string" }, "type": "array" }, "autoReload": { "default": {}, "description": "Configures automatic reload of code on edit.", "properties": { "enable": { "default": false, "description": "Automatically reload code on edit.", "type": "boolean" }, "exclude": { "default": [ "**/.git/**", "**/.metadata/**", "**/__pycache__/**", "**/node_modules/**", "**/site-packages/**" ], "description": "Glob patterns of paths to exclude from auto reload.", "items": { "type": "string" }, "type": "array" }, "include": { "default": [ "**/*.py", "**/*.pyw" ], "description": "Glob patterns of paths to include in auto reload.", "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "console": { "default": "integratedTerminal", "description": "Where to launch the debug target: internal console, integrated terminal, or external terminal.", "enum": [ "externalTerminal", "integratedTerminal", "internalConsole" ] }, "cwd": { "default": "${workspaceFolder}", "description": "Absolute path to the working directory of the program being debugged. Default is the root directory of the file (leave empty).", "type": "string" }, "debugAdapterPath": { "description": "Path (fully qualified) to the python debug adapter executable.", "type": "string" }, "django": { "default": false, "description": "Django debugging.", "type": "boolean" }, "env": { "additionalProperties": { "type": "string" }, "default": {}, "description": "Environment variables defined as a key value pair. Property ends up being the Environment Variable and the value of the property ends up being the value of the Env Variable.", "type": "object" }, "envFile": { "default": "${workspaceFolder}/.env", "description": "Absolute path to a file containing environment variable definitions.", "type": "string" }, "gevent": { "default": false, "description": "Enable debugging of gevent monkey-patched code.", "type": "boolean" }, "host": { "default": "localhost", "description": "IP address of the of the local debug server (default is localhost).", "type": "string" }, "jinja": { "default": null, "description": "Jinja template debugging (e.g. Flask).", "enum": [ false, null, true ] }, "justMyCode": { "default": true, "description": "Debug only user-written code.", "type": "boolean" }, "logToFile": { "default": false, "description": "Enable logging of debugger events to a log file.", "type": "boolean" }, "module": { "default": "", "description": "Name of the module to be debugged.", "type": "string" }, "pathMappings": { "default": [], "items": { "label": "Path mapping", "properties": { "localRoot": { "default": "${workspaceFolder}", "label": "Local source root.", "type": "string" }, "remoteRoot": { "default": "", "label": "Remote source root.", "type": "string" } }, "required": [ "localRoot", "remoteRoot" ], "type": "object" }, "label": "Path mappings.", "type": "array" }, "port": { "default": 0, "description": "Debug port (default is 0, resulting in the use of a dynamic port).", "type": "number" }, "program": { "default": "${file}", "description": "Absolute path to the program.", "type": "string" }, "pyramid": { "default": false, "description": "Whether debugging Pyramid applications", "type": "boolean" }, "python": { "default": "${command:python.interpreterPath}", "description": "Absolute path to the Python interpreter executable; overrides workspace configuration if set.", "type": "string" }, "pythonArgs": { "default": [], "description": "Command-line arguments passed to the Python interpreter. To pass arguments to the debug target, use \"args\".", "items": { "type": "string" }, "type": "array" }, "redirectOutput": { "default": true, "description": "Redirect output.", "type": "boolean" }, "showReturnValue": { "default": true, "description": "Show return value of functions when stepping.", "type": "boolean" }, "stopOnEntry": { "default": false, "description": "Automatically stop after launch.", "type": "boolean" }, "subProcess": { "default": false, "description": "Whether to enable Sub Process debugging", "type": "boolean" }, "sudo": { "default": false, "description": "Running debug program under elevated permissions (on Unix).", "type": "boolean" } } }, "test": { "properties": { "console": { "default": "internalConsole", "description": "Where to launch the debug target: internal console, integrated terminal, or external terminal.", "enum": [ "externalTerminal", "integratedTerminal", "internalConsole" ] }, "cwd": { "default": "${workspaceFolder}", "description": "Absolute path to the working directory of the program being debugged. Default is the root directory of the file (leave empty).", "type": "string" }, "debugAdapterPath": { "description": "Path (fully qualified) to the python debug adapter executable.", "type": "string" }, "env": { "additionalProperties": { "type": "string" }, "default": {}, "description": "Environment variables defined as a key value pair. Property ends up being the Environment Variable and the value of the property ends up being the value of the Env Variable.", "type": "object" }, "envFile": { "default": "${workspaceFolder}/.env", "description": "Absolute path to a file containing environment variable definitions.", "type": "string" }, "justMyCode": { "default": true, "description": "Debug only user-written code.", "type": "boolean" }, "pythonPath": { "default": "${command:python.interpreterPath}", "description": "Path (fully qualified) to python executable. Defaults to the value in settings", "type": "string" }, "redirectOutput": { "default": true, "description": "Redirect output.", "type": "boolean" }, "showReturnValue": { "default": true, "description": "Show return value of functions when stepping.", "type": "boolean" }, "stopOnEntry": { "default": false, "description": "Automatically stop after launch.", "type": "boolean" } } } }, "configurationSnippets": [], "label": "Python", "languages": [ "python" ], "type": "python", "variables": { "pickProcess": "python.pickLocalProcess" } } ], "grammars": [ { "language": "pip-requirements", "path": "./syntaxes/pip-requirements.tmLanguage.json", "scopeName": "source.pip-requirements" } ], "jsonValidation": [ { "fileMatch": ".condarc", "url": "./schemas/condarc.json" }, { "fileMatch": "environment.yml", "url": "./schemas/conda-environment.json" }, { "fileMatch": "meta.yaml", "url": "./schemas/conda-meta.json" } ], "keybindings": [ { "command": "python.execSelectionInTerminal", "key": "shift+enter", "when": "editorTextFocus && editorLangId == python && !findInputFocussed && !replaceInputFocussed && !jupyter.ownsSelection && !notebookEditorFocused" }, { "command": "python.refreshTensorBoard", "key": "ctrl+r", "mac": "cmd+r", "when": "python.hasActiveTensorBoardSession" } ], "languages": [ { "aliases": [ "Jinja" ], "extensions": [ ".j2", ".jinja2" ], "id": "jinja" }, { "aliases": [ "pip requirements", "requirements.txt" ], "configuration": "./languages/pip-requirements.json", "filenamePatterns": [ "*-constraints.txt", "*-requirements.in", "*-requirements.txt", "constraints-*.txt", "requirements-*.in", "requirements-*.txt" ], "filenames": [ "constraints.txt", "requirements.in", "requirements.txt" ], "id": "pip-requirements" }, { "filenames": [ ".condarc" ], "id": "yaml" }, { "filenames": [ ".flake8", ".pep8", ".pylintrc", ".pypirc" ], "id": "ini" }, { "filenames": [ "Pipfile", "poetry.lock" ], "id": "toml" }, { "filenames": [ "Pipfile.lock" ], "id": "json" } ], "menus": { "commandPalette": [ { "category": "Python", "command": "python.clearWorkspaceInterpreter", "title": "%python.command.python.clearWorkspaceInterpreter.title%" }, { "category": "Python", "command": "python.debugTestNode", "title": "Debug", "when": "config.noExists" }, { "category": "Python", "command": "python.discoveringTests", "when": "config.noExists" }, { "category": "Python", "command": "python.launchTensorBoard" }, { "category": "Python", "command": "python.openTestNodeInEditor", "title": "Open", "when": "config.noExists" }, { "category": "Python", "command": "python.runTestNode", "title": "Run", "when": "config.noExists" }, { "category": "Python", "command": "python.stopTests", "when": "config.noExists" }, { "category": "Python", "command": "python.switchOffInsidersChannel", "title": "%python.command.python.switchOffInsidersChannel.title%", "when": "config.python.insidersChannel != 'default'" }, { "category": "Python", "command": "python.switchToDailyChannel", "title": "%python.command.python.switchToDailyChannel.title%", "when": "config.python.insidersChannel != 'daily'" }, { "category": "Python", "command": "python.switchToWeeklyChannel", "title": "%python.command.python.switchToWeeklyChannel.title%", "when": "config.python.insidersChannel != 'weekly'" }, { "category": "Python", "command": "python.viewOutput", "title": "%python.command.python.viewOutput.title%" } ], "editor/context": [ { "command": "python.execInTerminal", "group": "Python", "when": "resourceLangId == python" }, { "command": "python.execSelectionInDjangoShell", "group": "Python", "when": "editorHasSelection && editorLangId == python && python.isDjangoProject" }, { "command": "python.execSelectionInTerminal", "group": "Python", "when": "editorFocus && editorLangId == python" }, { "command": "python.refactorExtractMethod", "group": "Refactor", "title": "Refactor: Extract Method", "when": "editorHasSelection && editorLangId == python && !notebookEditorFocused" }, { "command": "python.refactorExtractVariable", "group": "Refactor", "title": "Refactor: Extract Variable", "when": "editorHasSelection && editorLangId == python && !notebookEditorFocused" }, { "command": "python.runCurrentTestFile", "group": "Python", "when": "resourceLangId == python" }, { "command": "python.sortImports", "group": "Refactor", "title": "Refactor: Sort Imports", "when": "editorLangId == python && !notebookEditorFocused" } ], "editor/title": [ { "command": "python.refreshTensorBoard", "group": "navigation@0", "when": "python.hasActiveTensorBoardSession" } ], "editor/title/run": [ { "command": "python.execInTerminal-icon", "group": "navigation", "title": "%python.command.python.execInTerminal.title%", "when": "resourceLangId == python && !isInDiffEditor" } ], "explorer/context": [ { "command": "python.debugtests", "group": "Python", "when": "resourceLangId == python && !busyTests && !notebookEditorFocused" }, { "command": "python.execInTerminal", "group": "Python", "when": "resourceLangId == python" }, { "command": "python.runtests", "group": "Python", "when": "resourceLangId == python && !busyTests && !notebookEditorFocused" } ], "view/item/context": [ { "command": "python.debugTestNode", "group": "inline@1", "when": "view == python_tests && viewItem == file && !busyTests" }, { "command": "python.debugTestNode", "group": "inline@1", "when": "view == python_tests && viewItem == folder && !busyTests" }, { "command": "python.debugTestNode", "group": "inline@1", "when": "view == python_tests && viewItem == function && !busyTests" }, { "command": "python.debugTestNode", "group": "inline@1", "when": "view == python_tests && viewItem == suite && !busyTests" }, { "command": "python.debugtests", "group": "inline@1", "when": "view == python_tests && viewItem == testWorkspaceFolder && !busyTests" }, { "command": "python.discoverTests", "group": "inline@2", "when": "view == python_tests && viewItem == testWorkspaceFolder && !busyTests" }, { "command": "python.openTestNodeInEditor", "group": "inline@2", "when": "view == python_tests && viewItem == file" }, { "command": "python.openTestNodeInEditor", "group": "inline@2", "when": "view == python_tests && viewItem == function" }, { "command": "python.openTestNodeInEditor", "group": "inline@2", "when": "view == python_tests && viewItem == suite" }, { "command": "python.runTestNode", "group": "inline@0", "when": "view == python_tests && viewItem == file && !busyTests" }, { "command": "python.runTestNode", "group": "inline@0", "when": "view == python_tests && viewItem == folder && !busyTests" }, { "command": "python.runTestNode", "group": "inline@0", "when": "view == python_tests && viewItem == function && !busyTests" }, { "command": "python.runTestNode", "group": "inline@0", "when": "view == python_tests && viewItem == suite && !busyTests" }, { "command": "python.runtests", "group": "inline@0", "when": "view == python_tests && viewItem == testWorkspaceFolder && !busyTests" } ], "view/title": [ { "command": "python.debugtests", "group": "navigation@3", "when": "view == python_tests && !busyTests" }, { "command": "python.discoverTests", "group": "navigation@4", "when": "view == python_tests && !busyTests" }, { "command": "python.discoveringTests", "group": "navigation@4", "when": "view == python_tests && discoveringTests" }, { "command": "python.runFailedTests", "group": "navigation@2", "when": "view == python_tests && hasFailedTests && !busyTests" }, { "command": "python.runtests", "group": "navigation@1", "when": "view == python_tests && !busyTests" }, { "command": "python.stopTests", "group": "navigation@1", "when": "view == python_tests && busyTests" }, { "command": "python.viewTestOutput", "group": "navigation@5", "when": "view == python_tests" } ] }, "views": { "test": [ { "id": "python_tests", "name": "Python", "when": "testsDiscovered" } ] }, "yamlValidation": [ { "fileMatch": ".condarc", "url": "./schemas/condarc.json" }, { "fileMatch": "environment.yml", "url": "./schemas/conda-environment.json" }, { "fileMatch": "meta.yaml", "url": "./schemas/conda-meta.json" } ] }, "scripts": { "package": "gulp clean && gulp prePublishBundle && vsce package -o ms-python-insiders.vsix", "prePublish": "gulp clean && gulp prePublishNonBundle", "compile": "tsc -watch -p ./", "compiled": "deemon npm run compile", "kill-compiled": "deemon --kill npm run compile", "compile-webviews-watch": "cross-env NODE_OPTIONS=--max_old_space_size=9096 webpack --config ./build/webpack/webpack.startPage-ui-viewers.config.js --watch", "compile-webviews-watchd": "deemon npm run compile-webviews-watch", "kill-compile-webviews-watchd": "deemon --kill npm run compile-webviews-watch", "checkDependencies": "gulp checkDependencies", "test": "node ./out/test/standardTest.js && node ./out/test/multiRootTest.js", "test:unittests": "mocha --config ./build/.mocha.unittests.json", "test:unittests:cover": "nyc --no-clean --nycrc-path ./build/.nycrc mocha --config ./build/.mocha.unittests.json", "test:functional": "mocha --require source-map-support/register --config ./build/.mocha.functional.json", "test:functional:perf": "node --inspect-brk ./node_modules/mocha/bin/_mocha --require source-map-support/register --config ./build/.mocha.functional.perf.json", "test:functional:memleak": "node --inspect-brk ./node_modules/mocha/bin/_mocha --require source-map-support/register --config ./build/.mocha.functional.json", "test:functional:cover": "nyc --no-clean --nycrc-path ./build/.nycrc mocha --require source-map-support/register --config ./build/.mocha.functional.json", "test:cover:report": "nyc --nycrc-path ./build/.nycrc report --reporter=text --reporter=html --reporter=text-summary --reporter=cobertura", "testDebugger": "node ./out/test/testBootstrap.js ./out/test/debuggerTest.js", "testDebugger:cover": "nyc --no-clean --use-spawn-wrap --nycrc-path ./build/.nycrc --require source-map-support/register node ./out/test/debuggerTest.js", "testSingleWorkspace": "node ./out/test/testBootstrap.js ./out/test/standardTest.js", "testSingleWorkspace:cover": "nyc --no-clean --use-spawn-wrap --nycrc-path ./build/.nycrc --require source-map-support/register node ./out/test/standardTest.js", "preTestJediLSP": "node ./out/test/languageServers/jedi/lspSetup.js", "testJediLSP": "node ./out/test/languageServers/jedi/lspSetup.js && cross-env CODE_TESTS_WORKSPACE=src/test VSC_PYTHON_CI_TEST_GREP='Language Server:' node ./out/test/testBootstrap.js ./out/test/standardTest.js && node ./out/test/languageServers/jedi/lspTeardown.js", "testMultiWorkspace": "node ./out/test/testBootstrap.js ./out/test/multiRootTest.js", "testPerformance": "node ./out/test/testBootstrap.js ./out/test/performanceTest.js", "testSmoke": "cross-env INSTALL_JUPYTER_EXTENSION=true \"node ./out/test/smokeTest.js\"", "testInsiders": "cross-env VSC_PYTHON_CI_TEST_VSC_CHANNEL=insiders INSTALL_PYLANCE_EXTENSION=true TEST_FILES_SUFFIX=insiders.test CODE_TESTS_WORKSPACE=src/testMultiRootWkspc/smokeTests \"node ./out/test/standardTest.js\"", "lint-staged": "node gulpfile.js", "lint": "eslint --ext .ts,.tsx,.js src build", "lint-fix": "eslint --fix --ext .ts,.tsx,.js src build gulpfile.js", "format-check": "prettier --check 'src/**/*.ts' 'src/**/*.tsx' 'build/**/*.js' '.github/**/*.yml' gulpfile.js", "format-fix": "prettier --write 'src/**/*.ts' 'src/**/*.tsx' 'build/**/*.js' '.github/**/*.yml' gulpfile.js", "clean": "gulp clean", "addExtensionPackDependencies": "gulp addExtensionPackDependencies", "updateBuildNumber": "gulp updateBuildNumber", "verifyBundle": "gulp verifyBundle", "webpack": "webpack" }, "dependencies": { "arch": "^2.1.0", "azure-storage": "^2.10.4", "chokidar": "^3.4.3", "diff-match-patch": "^1.0.0", "fs-extra": "^9.1.0", "fuzzy": "^0.1.3", "get-port": "^3.2.0", "glob": "^7.1.2", "hash.js": "^1.1.7", "iconv-lite": "^0.4.21", "inversify": "^5.0.4", "jsonc-parser": "^2.0.3", "line-by-line": "^0.1.6", "lodash": "^4.17.21", "log4js": "^6.1.2", "md5": "^2.2.1", "minimatch": "^3.0.4", "named-js-regexp": "^1.3.3", "node-fetch": "^2.6.1", "node-stream-zip": "^1.6.0", "portfinder": "^1.0.25", "reflect-metadata": "^0.1.12", "request": "^2.87.0", "request-progress": "^3.0.0", "rxjs": "^6.5.4", "rxjs-compat": "^6.5.4", "semver": "^5.5.0", "stack-trace": "0.0.10", "string-argv": "^0.3.1", "strip-ansi": "^5.2.0", "sudo-prompt": "^8.2.0", "tmp": "^0.0.29", "tree-kill": "^1.2.2", "typescript-char": "^0.0.0", "uint64be": "^1.0.1", "unicode": "^10.0.0", "untildify": "^3.0.2", "vscode-debugadapter": "^1.28.0", "vscode-debugprotocol": "^1.28.0", "vscode-extension-telemetry": "0.1.4", "vscode-jsonrpc": "6.0.0", "vscode-languageclient": "7.0.0", "vscode-languageserver": "7.0.0", "vscode-languageserver-protocol": "3.16.0", "vscode-tas-client": "^0.1.22", "winreg": "^1.2.4", "winston": "^3.2.1", "xml2js": "^0.4.19" }, "devDependencies": { "@enonic/fnv-plus": "^1.3.0", "@istanbuljs/nyc-config-typescript": "^0.1.3", "@sinonjs/fake-timers": "^6.0.1", "@types/ansi-regex": "^4.0.0", "@types/chai": "^4.1.2", "@types/chai-arrays": "^1.0.2", "@types/chai-as-promised": "^7.1.0", "@types/copy-webpack-plugin": "^4.4.2", "@types/cors": "^2.8.6", "@types/debug": "^4.1.5", "@types/dedent": "^0.7.0", "@types/del": "^3.0.0", "@types/diff-match-patch": "^1.0.32", "@types/download": "^6.2.2", "@types/enzyme": "^3.1.14", "@types/enzyme-adapter-react-16": "^1.0.3", "@types/event-stream": "^3.3.33", "@types/fs-extra": "^5.0.1", "@types/get-port": "^3.2.0", "@types/glob": "^5.0.35", "@types/html-webpack-plugin": "^3.2.0", "@types/iconv-lite": "^0.0.1", "@types/jsdom": "^11.12.0", "@types/lodash": "^4.14.104", "@types/md5": "^2.1.32", "@types/memoize-one": "^4.1.1", "@types/mocha": "^5.2.7", "@types/nock": "^10.0.3", "@types/node": "^12.19.12", "@types/promisify-node": "^0.4.0", "@types/react": "^16.4.14", "@types/react-dom": "^16.0.8", "@types/react-json-tree": "^0.6.8", "@types/request": "^2.47.0", "@types/semver": "^5.5.0", "@types/shortid": "^0.0.29", "@types/sinon": "^7.5.1", "@types/sinonjs__fake-timers": "^6.0.1", "@types/socket.io": "^2.1.4", "@types/stack-trace": "0.0.29", "@types/temp": "^0.8.32", "@types/tmp": "0.0.33", "@types/untildify": "^3.0.0", "@types/uuid": "^3.4.3", "@types/vscode": "~1.53.0", "@types/webpack-bundle-analyzer": "^2.13.0", "@types/winreg": "^1.2.30", "@types/xml2js": "^0.4.2", "@typescript-eslint/eslint-plugin": "^3.7.0", "@typescript-eslint/parser": "^3.7.0", "@vscode/test-electron": "^1.6.1", "acorn": "^6.4.1", "ansi-to-html": "^0.6.7", "babel-loader": "^8.0.3", "babel-plugin-inline-json-import": "^0.3.1", "babel-plugin-transform-runtime": "^6.23.0", "babel-polyfill": "^6.26.0", "cache-loader": "^4.1.0", "chai": "^4.1.2", "chai-arrays": "^2.0.0", "chai-as-promised": "^7.1.1", "chai-http": "^4.3.0", "copy-webpack-plugin": "^5.1.2", "cors": "^2.8.5", "cross-env": "^6.0.3", "cross-spawn": "^6.0.5", "css-loader": "^1.0.1", "dedent": "^0.7.0", "deemon": "^1.4.0", "del": "^3.0.0", "download": "^7.0.0", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.6.0", "eslint": "^7.2.0", "eslint-config-airbnb": "^18.2.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.22.0", "eslint-plugin-jsx-a11y": "^6.3.1", "eslint-plugin-react": "^7.20.3", "eslint-plugin-react-hooks": "^4.0.0", "expose-loader": "^0.7.5", "express": "^4.17.1", "extract-zip": "^1.6.7", "fast-xml-parser": "^3.16.0", "file-loader": "^5.1.0", "filemanager-webpack-plugin-fixed": "^2.0.9", "flat": "^4.0.0", "fork-ts-checker-webpack-plugin": "^4.1.6", "gulp": "^4.0.0", "gulp-azure-storage": "^0.11.1", "gulp-chmod": "^2.0.0", "gulp-gunzip": "^1.1.0", "gulp-rename": "^1.4.0", "gulp-sourcemaps": "^2.6.4", "gulp-typescript": "^4.0.1", "gulp-untar": "0.0.8", "gulp-vinyl-zip": "^2.1.2", "html-webpack-plugin": "^3.2.0", "husky": "^1.1.2", "immutable": "^4.0.0-rc.12", "jsdom": "^15.0.0", "json-loader": "^0.5.7", "less": "^3.9.0", "less-loader": "^5.0.0", "less-plugin-inline-urls": "^1.2.0", "loader-utils": "^1.1.0", "lolex": "^5.1.2", "memoize-one": "^5.1.1", "mocha": "^8.1.1", "mocha-junit-reporter": "^1.17.0", "mocha-multi-reporters": "^1.1.7", "monaco-editor": "0.18.1", "monaco-editor-textmate": "^2.2.1", "monaco-editor-webpack-plugin": "^1.7.0", "monaco-textmate": "^3.0.1", "nocache": "^2.1.0", "nock": "^10.0.6", "node-has-native-dependencies": "^1.0.2", "node-html-parser": "^1.1.13", "node-loader": "^1.0.2", "nyc": "^15.0.0", "postcss": "^8.2.10", "postcss-cssnext": "^3.1.0", "postcss-import": "^12.0.1", "postcss-loader": "^3.0.0", "prettier": "^2.0.2", "range-inclusive": "^1.0.2", "raw-loader": "^0.5.1", "react": "^16.5.2", "react-dev-utils": "^11.0.4", "react-dom": "^16.5.2", "react-svgmt": "^1.1.8", "remove-files-webpack-plugin": "^1.4.0", "requirejs": "^2.3.6", "rewiremock": "^3.13.0", "rimraf": "^3.0.2", "serialize-javascript": "^3.1.0", "shortid": "^2.2.8", "sinon": "^8.0.1", "socket.io": "^2.4.0", "source-map-support": "^0.5.12", "style-loader": "^0.23.1", "styled-jsx": "^3.1.0", "svg-inline-loader": "^0.8.0", "svg-inline-react": "^3.1.0", "terser-webpack-plugin": "^3.1.0", "thread-loader": "^2.1.3", "transform-loader": "^0.2.4", "ts-loader": "^5.3.0", "ts-mock-imports": "^1.3.0", "ts-mockito": "^2.5.0", "ts-node": "^8.3.0", "tsconfig-paths-webpack-plugin": "^3.2.0", "typed-react-markdown": "^0.1.0", "typemoq": "^2.1.0", "typescript": "4.1.5", "typescript-formatter": "^7.1.0", "unicode-properties": "^1.3.1", "url-loader": "^1.1.2", "uuid": "^3.3.2", "vinyl-fs": "^3.0.3", "vsce": "^1.59.0", "vscode-debugadapter-testsupport": "^1.27.0", "webpack": "^4.33.0", "webpack-bundle-analyzer": "^3.6.0", "webpack-cli": "^3.1.2", "webpack-fix-default-import-plugin": "^1.0.3", "webpack-merge": "^4.1.4", "webpack-node-externals": "^1.7.2", "webpack-require-from": "^1.8.0", "why-is-node-running": "^2.0.3", "wtfnode": "^0.8.0", "yargs": "^15.3.1" }, "__metadata": { "id": "f1f59ae4-9318-4f3c-a9b5-81b2eaa5f8a5", "publisherId": "998b010b-e2af-44a5-a6cd-0b5fd3b9b6f8", "publisherDisplayName": "Microsoft", "installedTimestamp": 1628272077371 }, "optionalDependencies": { "canvas": "^2.7.0" }, "extensionPack": [ "ms-toolsai.jupyter", "ms-python.vscode-pylance" ] }