├── .devcontainer ├── Dockerfile └── devcontainer.json ├── .editorconfig ├── .eslintignore ├── .eslintrc ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── 1_ds_bug_report.md │ ├── 2_bug_report.md │ ├── 3_ds_feature_request.md │ ├── 4_feature_request.md │ └── config.yml ├── PULL_REQUEST_TEMPLATE.md ├── lock.yml ├── release_plan.md ├── test_plan.md └── workflows │ └── ci.yml ├── .gitignore ├── .npmrc ├── .nvmrc ├── .prettierrc.js ├── .sonarcloud.properties ├── .vscode ├── extensions.json ├── launch.json ├── settings.json └── tasks.json ├── .vscodeignore ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CODING_STANDARDS.md ├── CONTRIBUTING.md ├── LICENSE ├── PYTHON_INTERACTIVE_TROUBLESHOOTING.md ├── README.md ├── SECURITY.md ├── ThirdPartyNotices-Distribution.txt ├── ThirdPartyNotices-Repository.txt ├── build ├── .eslintrc ├── .mocha-multi-reporters.config ├── .mocha.functional.json ├── .mocha.functional.perf.json ├── .mocha.perf.config ├── .mocha.performance.json ├── .mocha.unittests.js.json ├── .mocha.unittests.json ├── .mocha.unittests.ts.json ├── .nycrc ├── ci │ ├── TSAOptions.json │ ├── addEnvPath.py │ ├── codecov.yml │ ├── conda_base.yml │ ├── conda_env_1.yml │ ├── conda_env_2.yml │ ├── performance │ │ ├── DS_test_benchmark.json │ │ ├── checkPerformanceResults.js │ │ ├── createNewPerformanceBenchmark.js │ │ ├── perfJobs.yaml │ │ ├── savePerformanceResults.js │ │ └── vscode-python-performance.yaml │ ├── postInstall.js │ ├── templates │ │ ├── globals.yml │ │ ├── jobs │ │ │ ├── build_compile.yml │ │ │ └── coverage.yml │ │ ├── steps │ │ │ ├── build.yml │ │ │ ├── compile.yml │ │ │ ├── dependencies.yml │ │ │ ├── generate_upload_coverage.yml │ │ │ ├── initialization.yml │ │ │ └── merge_upload_coverage.yml │ │ └── test_phases.yml │ ├── vscode-python-ci-manual.yaml │ ├── vscode-python-ci-static-analysis.yaml │ ├── vscode-python-ci.yaml │ ├── vscode-python-nightly-ci.yaml │ ├── vscode-python-nightly-flake-ci.yaml │ └── vscode-python-pr-validation.yaml ├── conda-functional-requirements.txt ├── constants.js ├── contributedFiles.json ├── debug │ └── replaceWithWebBrowserPanel.js ├── debugger-install-requirements.txt ├── existingFiles.json ├── functional-test-requirements.txt ├── ipython-test-requirements.txt ├── test-requirements.txt ├── tslint-rules │ ├── baseRuleWalker.js │ └── messagesMustBeLocalizedRule.js ├── unlocalizedFiles.json ├── util.js └── webpack │ ├── common.js │ ├── loaders │ ├── externalizeDependencies.js │ ├── fixNodeFetch.js │ ├── jsonloader.js │ └── remarkLoader.js │ ├── nativeOrInteractivePicker.html │ ├── pdfkit.js │ ├── plugins │ └── less-plugin-base64.js │ ├── webpack.datascience-ui-notebooks.config.js │ ├── webpack.datascience-ui-renderers.config.js │ ├── webpack.datascience-ui-viewers.config.js │ ├── webpack.datascience-ui.config.builder.js │ ├── webpack.datascience-ui.config.js │ ├── webpack.extension.config.js │ └── webpack.extension.dependencies.config.js ├── customEditor.json ├── data ├── .vscode │ └── settings.json └── test.py ├── experiments.json ├── gulpfile.js ├── icon.png ├── images ├── ConfigureDebugger.gif ├── ConfigureTests.gif ├── InterpreterSelectionZoom.gif ├── JavascriptProfiler.png ├── OpenOrCreateNotebook.gif ├── dataviewer.gif ├── debugDemo.gif ├── general.gif ├── interactive.gif ├── kernelchange.gif ├── plotviewer.gif ├── remoteserver.gif ├── runbyline.gif ├── savetopythonfile.png ├── unittest.gif └── variableexplorer.png ├── languages └── pip-requirements.json ├── news ├── .vscode │ └── settings.json ├── 1 Enhancements │ ├── 10496.md │ ├── 12414.md │ ├── 12827.md │ ├── 12828.md │ ├── 12959.md │ ├── 12980.md │ ├── 12988.md │ ├── 13037.md │ ├── 13122.md │ ├── 13218.md │ ├── 13259.md │ ├── 3073.md │ ├── 3104.md │ └── README.md ├── 2 Fixes │ ├── 10924.md │ ├── 11122.md │ ├── 11743.md │ ├── 11875.md │ ├── 12202.md │ ├── 12510.md │ ├── 12766.md │ ├── 12821.md │ ├── 12833.md │ ├── 12931.md │ ├── 12987.md │ ├── 13106.md │ ├── 13117.md │ ├── 13124.md │ ├── 13156.md │ ├── 13165.md │ ├── 13172.md │ ├── 13205.md │ ├── 13235.md │ └── README.md ├── 3 Code Health │ ├── 10772.md │ ├── 12554.md │ ├── 12809.md │ ├── 12844.md │ ├── 12893.md │ ├── 12919.md │ ├── 12966.md │ ├── 12977.md │ ├── 13075.md │ ├── 13171.md │ ├── 13269.md │ └── README.md ├── README.md ├── __main__.py ├── announce.py ├── requirements.in ├── requirements.txt └── test_announce.py ├── package-lock.json ├── package.datascience-ui.dependencies.json ├── package.json ├── package.nls.de.json ├── package.nls.es.json ├── package.nls.fr.json ├── package.nls.it.json ├── package.nls.ja.json ├── package.nls.json ├── package.nls.ko-kr.json ├── package.nls.nl.json ├── package.nls.pl.json ├── package.nls.pt-br.json ├── package.nls.ru.json ├── package.nls.tr.json ├── package.nls.zh-cn.json ├── package.nls.zh-tw.json ├── pvsc.code-workspace ├── pythonFiles ├── .env ├── .vscode │ └── settings.json ├── Notebooks intro.ipynb ├── completion.py ├── install_debugpy.py ├── interpreterInfo.py ├── normalizeForInterpreter.py ├── printEnvVariables.py ├── printEnvVariablesToFile.py ├── pyproject.toml ├── pyvsc-run-isolated.py ├── refactor.py ├── shell_exec.py ├── sortImports.py ├── symbolProvider.py ├── testing_tools │ ├── __init__.py │ ├── adapter │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── discovery.py │ │ ├── errors.py │ │ ├── info.py │ │ ├── pytest │ │ │ ├── __init__.py │ │ │ ├── _cli.py │ │ │ ├── _discovery.py │ │ │ └── _pytest_item.py │ │ ├── report.py │ │ └── util.py │ └── run_adapter.py ├── testlauncher.py ├── tests │ ├── __init__.py │ ├── __main__.py │ ├── debug_adapter │ │ ├── __init__.py │ │ └── test_install_debugpy.py │ ├── ipython │ │ ├── __init__.py │ │ ├── getJupyterVariableList.py │ │ ├── getJupyterVariableValue.py │ │ ├── random.csv │ │ ├── scripts.py │ │ └── test_variables.py │ ├── run_all.py │ ├── test_normalize_for_interpreter.py │ ├── testing_tools │ │ ├── __init__.py │ │ └── adapter │ │ │ ├── .data │ │ │ ├── NormCase │ │ │ │ └── tests │ │ │ │ │ ├── A │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── b │ │ │ │ │ │ ├── C │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── test_Spam.py │ │ │ │ │ │ └── __init__.py │ │ │ │ │ └── __init__.py │ │ │ ├── complex │ │ │ │ ├── README.md │ │ │ │ ├── mod.py │ │ │ │ └── tests │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── spam.py │ │ │ │ │ ├── test_42-43.py │ │ │ │ │ ├── test_42.py │ │ │ │ │ ├── test_doctest.py │ │ │ │ │ ├── test_doctest.txt │ │ │ │ │ ├── test_foo.py │ │ │ │ │ ├── test_mixed.py │ │ │ │ │ ├── test_pytest.py │ │ │ │ │ ├── test_pytest_param.py │ │ │ │ │ ├── test_unittest.py │ │ │ │ │ ├── testspam.py │ │ │ │ │ ├── v │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── spam.py │ │ │ │ │ ├── test_eggs.py │ │ │ │ │ ├── test_ham.py │ │ │ │ │ └── test_spam.py │ │ │ │ │ ├── w │ │ │ │ │ ├── test_spam.py │ │ │ │ │ └── test_spam_ex.py │ │ │ │ │ └── x │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── y │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── z │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── a │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_spam.py │ │ │ │ │ ├── b │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_spam.py │ │ │ │ │ └── test_ham.py │ │ │ ├── notests │ │ │ │ └── tests │ │ │ │ │ └── __init__.py │ │ │ ├── simple │ │ │ │ └── tests │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_spam.py │ │ │ └── syntax-error │ │ │ │ └── tests │ │ │ │ ├── __init__.py │ │ │ │ └── test_spam.py │ │ │ ├── __init__.py │ │ │ ├── pytest │ │ │ ├── __init__.py │ │ │ ├── test_cli.py │ │ │ └── test_discovery.py │ │ │ ├── test___main__.py │ │ │ ├── test_discovery.py │ │ │ ├── test_functional.py │ │ │ ├── test_report.py │ │ │ └── test_util.py │ └── util.py ├── visualstudio_py_testlauncher.py └── vscode_datascience_helpers │ ├── __init__.py │ ├── daemon │ ├── README.md │ ├── __init__.py │ ├── __main__.py │ ├── daemon_output.py │ └── daemon_python.py │ ├── dataframes │ ├── vscodeDataFrameHelpers.py │ ├── vscodeGetDataFrameInfo.py │ ├── vscodeGetDataFrameRows.py │ └── vscodeGetVariableInfo.py │ ├── dummyJupyter.py │ ├── getJupyterKernels.py │ ├── getJupyterKernelspecVersion.py │ ├── getJupyterVariableDataFrameInfo.py │ ├── getJupyterVariableDataFrameRows.py │ ├── getJupyterVariableShape.py │ ├── getServerInfo.py │ ├── jupyter_daemon.py │ ├── jupyter_nbInstalled.py │ ├── kernel_launcher.py │ ├── kernel_launcher_daemon.py │ ├── kernel_prewarm_starter.py │ └── win_interrupt.py ├── requirements.in ├── requirements.txt ├── resources ├── InstallJupyter.png ├── MagicPython.tmLanguage.json ├── PythonSelector.png ├── ctagOptions ├── dark │ ├── debug.svg │ ├── discovering-tests.svg │ ├── export_to_python.svg │ ├── open-file.svg │ ├── play.svg │ ├── refresh.svg │ ├── repl.svg │ ├── restart-kernel.svg │ ├── run-failed-tests.svg │ ├── run-file.svg │ ├── run-tests.svg │ ├── start.svg │ ├── status-error.svg │ ├── status-ok.svg │ ├── status-unknown.svg │ ├── stop.svg │ ├── trusted.svg │ └── un-trusted.svg ├── defaultTheme.json └── light │ ├── debug.svg │ ├── discovering-tests.svg │ ├── export_to_python.svg │ ├── open-file.svg │ ├── play.svg │ ├── refresh.svg │ ├── repl.svg │ ├── restart-kernel.svg │ ├── run-failed-tests.svg │ ├── run-file.svg │ ├── run-tests.svg │ ├── start.svg │ ├── status-error.svg │ ├── status-ok.svg │ ├── status-unknown.svg │ ├── stop.svg │ ├── trusted.svg │ └── un-trusted.svg ├── schemas ├── conda-environment.json ├── conda-meta.json └── condarc.json ├── snippets └── python.json ├── sprint-planning.github-issues ├── src ├── client │ ├── .gitignore │ ├── .vscodeignore │ ├── activation │ │ ├── aaTesting.ts │ │ ├── activationManager.ts │ │ ├── activationService.ts │ │ ├── commands.ts │ │ ├── common │ │ │ ├── activatorBase.ts │ │ │ ├── analysisOptions.ts │ │ │ ├── downloadChannelRules.ts │ │ │ ├── downloader.ts │ │ │ ├── languageServerChangeHandler.ts │ │ │ ├── languageServerFolderService.ts │ │ │ ├── languageServerPackageService.ts │ │ │ └── packageRepository.ts │ │ ├── extensionSurvey.ts │ │ ├── jedi.ts │ │ ├── languageClientMiddleware.ts │ │ ├── languageServer │ │ │ ├── activator.ts │ │ │ ├── analysisOptions.ts │ │ │ ├── languageClientFactory.ts │ │ │ ├── languageServerCompatibilityService.ts │ │ │ ├── languageServerExtension.ts │ │ │ ├── languageServerFolderService.ts │ │ │ ├── languageServerPackageRepository.ts │ │ │ ├── languageServerPackageService.ts │ │ │ ├── languageServerProxy.ts │ │ │ ├── manager.ts │ │ │ ├── outputChannel.ts │ │ │ └── platformData.ts │ │ ├── node │ │ │ ├── activator.ts │ │ │ ├── analysisOptions.ts │ │ │ ├── cancellationUtils.ts │ │ │ ├── languageClientFactory.ts │ │ │ ├── languageServerFolderService.ts │ │ │ ├── languageServerPackageRepository.ts │ │ │ ├── languageServerPackageService.ts │ │ │ ├── languageServerProxy.ts │ │ │ └── manager.ts │ │ ├── none │ │ │ └── activator.ts │ │ ├── progress.ts │ │ ├── refCountedLanguageServer.ts │ │ ├── serviceRegistry.ts │ │ └── types.ts │ ├── api.ts │ ├── application │ │ ├── diagnostics │ │ │ ├── applicationDiagnostics.ts │ │ │ ├── base.ts │ │ │ ├── checks │ │ │ │ ├── envPathVariable.ts │ │ │ │ ├── invalidLaunchJsonDebugger.ts │ │ │ │ ├── invalidPythonPathInDebugger.ts │ │ │ │ ├── lsNotSupported.ts │ │ │ │ ├── macPythonInterpreter.ts │ │ │ │ ├── powerShellActivation.ts │ │ │ │ ├── pythonInterpreter.ts │ │ │ │ ├── pythonPathDeprecated.ts │ │ │ │ └── upgradeCodeRunner.ts │ │ │ ├── commands │ │ │ │ ├── base.ts │ │ │ │ ├── execVSCCommand.ts │ │ │ │ ├── factory.ts │ │ │ │ ├── ignore.ts │ │ │ │ ├── launchBrowser.ts │ │ │ │ └── types.ts │ │ │ ├── constants.ts │ │ │ ├── filter.ts │ │ │ ├── promptHandler.ts │ │ │ ├── serviceRegistry.ts │ │ │ ├── surceMapSupportService.ts │ │ │ └── types.ts │ │ ├── serviceRegistry.ts │ │ └── types.ts │ ├── common │ │ ├── application │ │ │ ├── activeResource.ts │ │ │ ├── applicationEnvironment.ts │ │ │ ├── applicationShell.ts │ │ │ ├── clipboard.ts │ │ │ ├── commandManager.ts │ │ │ ├── commands.ts │ │ │ ├── commands │ │ │ │ └── reloadCommand.ts │ │ │ ├── customEditorService.ts │ │ │ ├── debugService.ts │ │ │ ├── debugSessionTelemetry.ts │ │ │ ├── documentManager.ts │ │ │ ├── extensions.ts │ │ │ ├── languageService.ts │ │ │ ├── notebook.ts │ │ │ ├── terminalManager.ts │ │ │ ├── types.ts │ │ │ ├── webPanels │ │ │ │ ├── webPanel.ts │ │ │ │ └── webPanelProvider.ts │ │ │ └── workspace.ts │ │ ├── asyncDisposableRegistry.ts │ │ ├── cancellation.ts │ │ ├── configSettings.ts │ │ ├── configuration │ │ │ └── service.ts │ │ ├── constants.ts │ │ ├── contextKey.ts │ │ ├── crypto.ts │ │ ├── dotnet │ │ │ ├── compatibilityService.ts │ │ │ ├── serviceRegistry.ts │ │ │ ├── services │ │ │ │ ├── linuxCompatibilityService.ts │ │ │ │ ├── macCompatibilityService.ts │ │ │ │ ├── unknownOsCompatibilityService.ts │ │ │ │ └── windowsCompatibilityService.ts │ │ │ └── types.ts │ │ ├── editor.ts │ │ ├── errors │ │ │ ├── errorUtils.ts │ │ │ └── moduleNotInstalledError.ts │ │ ├── experiments │ │ │ ├── groups.ts │ │ │ ├── manager.ts │ │ │ ├── service.ts │ │ │ └── telemetry.ts │ │ ├── extensions.ts │ │ ├── featureDeprecationManager.ts │ │ ├── helpers.ts │ │ ├── insidersBuild │ │ │ ├── downloadChannelRules.ts │ │ │ ├── downloadChannelService.ts │ │ │ ├── insidersExtensionPrompt.ts │ │ │ ├── insidersExtensionService.ts │ │ │ └── types.ts │ │ ├── installer │ │ │ ├── channelManager.ts │ │ │ ├── condaInstaller.ts │ │ │ ├── extensionBuildInstaller.ts │ │ │ ├── moduleInstaller.ts │ │ │ ├── pipEnvInstaller.ts │ │ │ ├── pipInstaller.ts │ │ │ ├── poetryInstaller.ts │ │ │ ├── productInstaller.ts │ │ │ ├── productNames.ts │ │ │ ├── productPath.ts │ │ │ ├── productService.ts │ │ │ ├── serviceRegistry.ts │ │ │ └── types.ts │ │ ├── interpreterPathService.ts │ │ ├── logger.ts │ │ ├── markdown │ │ │ └── restTextConverter.ts │ │ ├── net │ │ │ ├── browser.ts │ │ │ ├── fileDownloader.ts │ │ │ ├── httpClient.ts │ │ │ └── socket │ │ │ │ ├── SocketStream.ts │ │ │ │ ├── socketCallbackHandler.ts │ │ │ │ └── socketServer.ts │ │ ├── nuget │ │ │ ├── azureBlobStoreNugetRepository.ts │ │ │ ├── nugetRepository.ts │ │ │ ├── nugetService.ts │ │ │ └── types.ts │ │ ├── open.ts │ │ ├── persistentState.ts │ │ ├── platform │ │ │ ├── constants.ts │ │ │ ├── errors.ts │ │ │ ├── fileSystem.ts │ │ │ ├── fs-paths.ts │ │ │ ├── fs-temp.ts │ │ │ ├── pathUtils.ts │ │ │ ├── platformService.ts │ │ │ ├── registry.ts │ │ │ ├── serviceRegistry.ts │ │ │ └── types.ts │ │ ├── process │ │ │ ├── baseDaemon.ts │ │ │ ├── constants.ts │ │ │ ├── currentProcess.ts │ │ │ ├── decoder.ts │ │ │ ├── internal │ │ │ │ ├── python.ts │ │ │ │ └── scripts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── testing_tools.ts │ │ │ │ │ └── vscode_datascience_helpers.ts │ │ │ ├── logger.ts │ │ │ ├── proc.ts │ │ │ ├── processFactory.ts │ │ │ ├── pythonDaemon.ts │ │ │ ├── pythonDaemonFactory.ts │ │ │ ├── pythonDaemonPool.ts │ │ │ ├── pythonEnvironment.ts │ │ │ ├── pythonExecutionFactory.ts │ │ │ ├── pythonProcess.ts │ │ │ ├── pythonToolService.ts │ │ │ ├── serviceRegistry.ts │ │ │ └── types.ts │ │ ├── refBool.ts │ │ ├── serviceRegistry.ts │ │ ├── startPage │ │ │ ├── startPage.ts │ │ │ ├── startPageMessageListener.ts │ │ │ └── types.ts │ │ ├── terminal │ │ │ ├── activator │ │ │ │ ├── base.ts │ │ │ │ ├── index.ts │ │ │ │ └── powershellFailedHandler.ts │ │ │ ├── commandPrompt.ts │ │ │ ├── environmentActivationProviders │ │ │ │ ├── baseActivationProvider.ts │ │ │ │ ├── bash.ts │ │ │ │ ├── commandPrompt.ts │ │ │ │ ├── condaActivationProvider.ts │ │ │ │ ├── pipEnvActivationProvider.ts │ │ │ │ └── pyenvActivationProvider.ts │ │ │ ├── factory.ts │ │ │ ├── helper.ts │ │ │ ├── service.ts │ │ │ ├── shellDetector.ts │ │ │ ├── shellDetectors │ │ │ │ ├── baseShellDetector.ts │ │ │ │ ├── settingsShellDetector.ts │ │ │ │ ├── terminalNameShellDetector.ts │ │ │ │ ├── userEnvironmentShellDetector.ts │ │ │ │ └── vscEnvironmentShellDetector.ts │ │ │ ├── syncTerminalService.ts │ │ │ └── types.ts │ │ ├── types.ts │ │ ├── utils │ │ │ ├── async.ts │ │ │ ├── cacheUtils.ts │ │ │ ├── decorators.ts │ │ │ ├── enum.ts │ │ │ ├── icons.ts │ │ │ ├── localize.ts │ │ │ ├── logging.ts │ │ │ ├── misc.ts │ │ │ ├── multiStepInput.ts │ │ │ ├── platform.ts │ │ │ ├── random.ts │ │ │ ├── regexp.ts │ │ │ ├── serializers.ts │ │ │ ├── stopWatch.ts │ │ │ ├── sysTypes.ts │ │ │ ├── text.ts │ │ │ └── version.ts │ │ └── variables │ │ │ ├── environment.ts │ │ │ ├── environmentVariablesProvider.ts │ │ │ ├── serviceRegistry.ts │ │ │ ├── sysTypes.ts │ │ │ ├── systemVariables.ts │ │ │ └── types.ts │ ├── constants.ts │ ├── datascience │ │ ├── activation.ts │ │ ├── baseJupyterSession.ts │ │ ├── cellFactory.ts │ │ ├── cellMatcher.ts │ │ ├── codeCssGenerator.ts │ │ ├── commands │ │ │ ├── commandLineSelector.ts │ │ │ ├── commandRegistry.ts │ │ │ ├── exportCommands.ts │ │ │ ├── notebookCommands.ts │ │ │ └── serverSelector.ts │ │ ├── common.ts │ │ ├── constants.ts │ │ ├── context │ │ │ └── activeEditorContext.ts │ │ ├── crossProcessLock.ts │ │ ├── data-viewing │ │ │ ├── dataViewer.ts │ │ │ ├── dataViewerDependencyService.ts │ │ │ ├── dataViewerFactory.ts │ │ │ ├── dataViewerMessageListener.ts │ │ │ ├── jupyterVariableDataProvider.ts │ │ │ ├── jupyterVariableDataProviderFactory.ts │ │ │ └── types.ts │ │ ├── dataScienceFileSystem.ts │ │ ├── dataScienceSurveyBanner.ts │ │ ├── datascience.ts │ │ ├── debugLocationTracker.ts │ │ ├── debugLocationTrackerFactory.ts │ │ ├── editor-integration │ │ │ ├── cellhashprovider.ts │ │ │ ├── codeLensFactory.ts │ │ │ ├── codelensprovider.ts │ │ │ ├── codewatcher.ts │ │ │ ├── decorator.ts │ │ │ └── hoverProvider.ts │ │ ├── errorHandler │ │ │ └── errorHandler.ts │ │ ├── export │ │ │ ├── README.md │ │ │ ├── exportBase.ts │ │ │ ├── exportDependencyChecker.ts │ │ │ ├── exportFileOpener.ts │ │ │ ├── exportManager.ts │ │ │ ├── exportManagerFilePicker.ts │ │ │ ├── exportToHTML.ts │ │ │ ├── exportToPDF.ts │ │ │ ├── exportToPython.ts │ │ │ ├── exportUtil.ts │ │ │ └── types.ts │ │ ├── gather │ │ │ ├── gatherListener.ts │ │ │ └── gatherLogger.ts │ │ ├── interactive-common │ │ │ ├── debugListener.ts │ │ │ ├── intellisense │ │ │ │ ├── conversion.ts │ │ │ │ ├── intellisenseDocument.ts │ │ │ │ ├── intellisenseLine.ts │ │ │ │ ├── intellisenseProvider.ts │ │ │ │ └── wordHelper.ts │ │ │ ├── interactiveBase.ts │ │ │ ├── interactiveWindowMessageListener.ts │ │ │ ├── interactiveWindowTypes.ts │ │ │ ├── linkProvider.ts │ │ │ ├── notebookProvider.ts │ │ │ ├── notebookServerProvider.ts │ │ │ ├── notebookUsageTracker.ts │ │ │ ├── serialization.ts │ │ │ ├── showPlotListener.ts │ │ │ ├── synchronization.ts │ │ │ └── types.ts │ │ ├── interactive-ipynb │ │ │ ├── autoSaveService.ts │ │ │ ├── digestStorage.ts │ │ │ ├── nativeEditor.ts │ │ │ ├── nativeEditorCommandListener.ts │ │ │ ├── nativeEditorOldWebView.ts │ │ │ ├── nativeEditorProviderOld.ts │ │ │ ├── nativeEditorRunByLineListener.ts │ │ │ ├── nativeEditorSynchronizer.ts │ │ │ ├── nativeEditorViewTracker.ts │ │ │ ├── trustCommandHandler.ts │ │ │ └── trustService.ts │ │ ├── interactive-window │ │ │ ├── identity.ts │ │ │ ├── interactiveWindow.ts │ │ │ ├── interactiveWindowCommandListener.ts │ │ │ └── interactiveWindowProvider.ts │ │ ├── ipywidgets │ │ │ ├── cdnWidgetScriptSourceProvider.ts │ │ │ ├── constants.ts │ │ │ ├── ipyWidgetMessageDispatcher.ts │ │ │ ├── ipyWidgetMessageDispatcherFactory.ts │ │ │ ├── ipyWidgetScriptSource.ts │ │ │ ├── ipyWidgetScriptSourceProvider.ts │ │ │ ├── ipywidgetHandler.ts │ │ │ ├── localWidgetScriptSourceProvider.ts │ │ │ ├── remoteWidgetScriptSourceProvider.ts │ │ │ └── types.ts │ │ ├── jupyter │ │ │ ├── commandLineSelector.ts │ │ │ ├── debuggerVariableRegistration.ts │ │ │ ├── debuggerVariables.ts │ │ │ ├── interpreter │ │ │ │ ├── README.md │ │ │ │ ├── jupyterCommand.ts │ │ │ │ ├── jupyterInterpreterDependencyService.ts │ │ │ │ ├── jupyterInterpreterOldCacheStateStore.ts │ │ │ │ ├── jupyterInterpreterSelectionCommand.ts │ │ │ │ ├── jupyterInterpreterSelector.ts │ │ │ │ ├── jupyterInterpreterService.ts │ │ │ │ ├── jupyterInterpreterStateStore.ts │ │ │ │ └── jupyterInterpreterSubCommandExecutionService.ts │ │ │ ├── invalidNotebookFileError.ts │ │ │ ├── jupyterCellOutputMimeTypeTracker.ts │ │ │ ├── jupyterConnectError.ts │ │ │ ├── jupyterConnection.ts │ │ │ ├── jupyterDataRateLimitError.ts │ │ │ ├── jupyterDebugger.ts │ │ │ ├── jupyterDebuggerNotInstalledError.ts │ │ │ ├── jupyterDebuggerPortBlockedError.ts │ │ │ ├── jupyterDebuggerPortNotAvailableError.ts │ │ │ ├── jupyterDebuggerRemoteNotSupported.ts │ │ │ ├── jupyterExecution.ts │ │ │ ├── jupyterExecutionFactory.ts │ │ │ ├── jupyterExporter.ts │ │ │ ├── jupyterImporter.ts │ │ │ ├── jupyterInstallError.ts │ │ │ ├── jupyterInterruptError.ts │ │ │ ├── jupyterInvalidKernelError.ts │ │ │ ├── jupyterNotebook.ts │ │ │ ├── jupyterNotebookProvider.ts │ │ │ ├── jupyterPasswordConnect.ts │ │ │ ├── jupyterRequest.ts │ │ │ ├── jupyterSelfCertsError.ts │ │ │ ├── jupyterServer.ts │ │ │ ├── jupyterServerWrapper.ts │ │ │ ├── jupyterSession.ts │ │ │ ├── jupyterSessionManager.ts │ │ │ ├── jupyterSessionManagerFactory.ts │ │ │ ├── jupyterUtils.ts │ │ │ ├── jupyterVariables.ts │ │ │ ├── jupyterWaitForIdleError.ts │ │ │ ├── jupyterWebSocket.ts │ │ │ ├── jupyterZMQBinariesNotFoundError.ts │ │ │ ├── kernelVariables.ts │ │ │ ├── kernels │ │ │ │ ├── helpers.ts │ │ │ │ ├── jupyterKernelPromiseFailedError.ts │ │ │ │ ├── jupyterKernelSpec.ts │ │ │ │ ├── kernelDependencyService.ts │ │ │ │ ├── kernelSelections.ts │ │ │ │ ├── kernelSelector.ts │ │ │ │ ├── kernelService.ts │ │ │ │ ├── kernelSwitcher.ts │ │ │ │ └── types.ts │ │ │ ├── liveshare │ │ │ │ ├── guestJupyterExecution.ts │ │ │ │ ├── guestJupyterNotebook.ts │ │ │ │ ├── guestJupyterServer.ts │ │ │ │ ├── guestJupyterSessionManager.ts │ │ │ │ ├── guestJupyterSessionManagerFactory.ts │ │ │ │ ├── hostJupyterExecution.ts │ │ │ │ ├── hostJupyterNotebook.ts │ │ │ │ ├── hostJupyterServer.ts │ │ │ │ ├── liveShareParticipantMixin.ts │ │ │ │ ├── responseQueue.ts │ │ │ │ ├── roleBasedFactory.ts │ │ │ │ ├── serverCache.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── notebookStarter.ts │ │ │ ├── oldJupyterVariables.ts │ │ │ ├── serverPreload.ts │ │ │ ├── serverSelector.ts │ │ │ └── variableScriptLoader.ts │ │ ├── jupyterDebugService.ts │ │ ├── jupyterUriProviderRegistration.ts │ │ ├── jupyterUriProviderWrapper.ts │ │ ├── kernel-launcher │ │ │ ├── helpers.ts │ │ │ ├── kernelDaemon.ts │ │ │ ├── kernelDaemonPool.ts │ │ │ ├── kernelDaemonPreWarmer.ts │ │ │ ├── kernelFinder.ts │ │ │ ├── kernelLauncher.ts │ │ │ ├── kernelLauncherDaemon.ts │ │ │ ├── kernelProcess.ts │ │ │ └── types.ts │ │ ├── kernelSocketWrapper.ts │ │ ├── liveshare │ │ │ ├── liveshare.ts │ │ │ ├── liveshareProxy.ts │ │ │ ├── postOffice.ts │ │ │ └── serviceProxy.ts │ │ ├── messages.ts │ │ ├── monacoMessages.ts │ │ ├── multiplexingDebugService.ts │ │ ├── notebook │ │ │ ├── constants.ts │ │ │ ├── contentProvider.ts │ │ │ ├── executionService.ts │ │ │ ├── helpers │ │ │ │ ├── executionHelpers.ts │ │ │ │ └── helpers.ts │ │ │ ├── integration.ts │ │ │ ├── notebookDisposeService.ts │ │ │ ├── notebookEditor.ts │ │ │ ├── notebookEditorCompatibilitySupport.ts │ │ │ ├── notebookEditorProvider.ts │ │ │ ├── notebookEditorProviderWrapper.ts │ │ │ ├── notebookKernel.ts │ │ │ ├── renderer.ts │ │ │ ├── rendererExtension.ts │ │ │ ├── rendererExtensionDownloader.ts │ │ │ ├── serviceRegistry.ts │ │ │ ├── survey.ts │ │ │ └── types.ts │ │ ├── notebookAndInteractiveTracker.ts │ │ ├── notebookStorage │ │ │ ├── baseModel.ts │ │ │ ├── factory.ts │ │ │ ├── nativeEditorProvider.ts │ │ │ ├── nativeEditorStorage.ts │ │ │ ├── notebookModel.ts │ │ │ ├── notebookModelEditEvent.ts │ │ │ ├── notebookStorageProvider.ts │ │ │ ├── types.ts │ │ │ └── vscNotebookModel.ts │ │ ├── plotting │ │ │ ├── plotViewer.ts │ │ │ ├── plotViewerMessageListener.ts │ │ │ ├── plotViewerProvider.ts │ │ │ └── types.ts │ │ ├── preWarmVariables.ts │ │ ├── progress │ │ │ ├── decorator.ts │ │ │ ├── messages.ts │ │ │ ├── progressReporter.ts │ │ │ └── types.ts │ │ ├── raw-kernel │ │ │ ├── liveshare │ │ │ │ ├── guestRawNotebookProvider.ts │ │ │ │ └── hostRawNotebookProvider.ts │ │ │ ├── rawJupyterSession.ts │ │ │ ├── rawKernel.ts │ │ │ ├── rawNotebookProvider.ts │ │ │ ├── rawNotebookProviderWrapper.ts │ │ │ ├── rawNotebookSupportedService.ts │ │ │ ├── rawSession.ts │ │ │ └── rawSocket.ts │ │ ├── serviceRegistry.ts │ │ ├── shiftEnterBanner.ts │ │ ├── statusProvider.ts │ │ ├── themeFinder.ts │ │ ├── types.ts │ │ ├── utils.ts │ │ └── webViewHost.ts │ ├── debugger │ │ ├── constants.ts │ │ ├── extension │ │ │ ├── adapter │ │ │ │ ├── activator.ts │ │ │ │ ├── factory.ts │ │ │ │ ├── logging.ts │ │ │ │ ├── outdatedDebuggerPrompt.ts │ │ │ │ ├── remoteLaunchers.ts │ │ │ │ └── types.ts │ │ │ ├── attachQuickPick │ │ │ │ ├── factory.ts │ │ │ │ ├── picker.ts │ │ │ │ ├── provider.ts │ │ │ │ ├── psProcessParser.ts │ │ │ │ ├── types.ts │ │ │ │ └── wmicProcessParser.ts │ │ │ ├── banner.ts │ │ │ ├── configuration │ │ │ │ ├── debugConfigurationService.ts │ │ │ │ ├── launch.json │ │ │ │ │ ├── completionProvider.ts │ │ │ │ │ ├── interpreterPathCommand.ts │ │ │ │ │ └── updaterService.ts │ │ │ │ ├── providers │ │ │ │ │ ├── djangoLaunch.ts │ │ │ │ │ ├── fileLaunch.ts │ │ │ │ │ ├── flaskLaunch.ts │ │ │ │ │ ├── moduleLaunch.ts │ │ │ │ │ ├── pidAttach.ts │ │ │ │ │ ├── providerFactory.ts │ │ │ │ │ ├── pyramidLaunch.ts │ │ │ │ │ └── remoteAttach.ts │ │ │ │ ├── resolvers │ │ │ │ │ ├── attach.ts │ │ │ │ │ ├── base.ts │ │ │ │ │ ├── helper.ts │ │ │ │ │ └── launch.ts │ │ │ │ └── types.ts │ │ │ ├── helpers │ │ │ │ └── protocolParser.ts │ │ │ ├── hooks │ │ │ │ ├── childProcessAttachHandler.ts │ │ │ │ ├── childProcessAttachService.ts │ │ │ │ ├── constants.ts │ │ │ │ ├── eventHandlerDispatcher.ts │ │ │ │ └── types.ts │ │ │ ├── serviceRegistry.ts │ │ │ └── types.ts │ │ └── types.ts │ ├── extension.ts │ ├── extensionActivation.ts │ ├── extensionInit.ts │ ├── formatters │ │ ├── autoPep8Formatter.ts │ │ ├── baseFormatter.ts │ │ ├── blackFormatter.ts │ │ ├── dummyFormatter.ts │ │ ├── helper.ts │ │ ├── lineFormatter.ts │ │ ├── serviceRegistry.ts │ │ ├── types.ts │ │ └── yapfFormatter.ts │ ├── interpreter │ │ ├── activation │ │ │ ├── preWarmVariables.ts │ │ │ ├── service.ts │ │ │ ├── terminalEnvironmentActivationService.ts │ │ │ ├── types.ts │ │ │ └── wrapperEnvironmentActivationService.ts │ │ ├── autoSelection │ │ │ ├── constants.ts │ │ │ ├── index.ts │ │ │ ├── interpreterSecurity │ │ │ │ ├── interpreterEvaluation.ts │ │ │ │ ├── interpreterSecurityService.ts │ │ │ │ └── interpreterSecurityStorage.ts │ │ │ ├── proxy.ts │ │ │ ├── rules │ │ │ │ ├── baseRule.ts │ │ │ │ ├── cached.ts │ │ │ │ ├── currentPath.ts │ │ │ │ ├── settings.ts │ │ │ │ ├── system.ts │ │ │ │ ├── winRegistry.ts │ │ │ │ └── workspaceEnv.ts │ │ │ └── types.ts │ │ ├── configuration │ │ │ ├── interpreterComparer.ts │ │ │ ├── interpreterSelector │ │ │ │ ├── commands │ │ │ │ │ ├── base.ts │ │ │ │ │ ├── resetInterpreter.ts │ │ │ │ │ ├── setInterpreter.ts │ │ │ │ │ └── setShebangInterpreter.ts │ │ │ │ └── interpreterSelector.ts │ │ │ ├── pythonPathUpdaterService.ts │ │ │ ├── pythonPathUpdaterServiceFactory.ts │ │ │ ├── services │ │ │ │ ├── globalUpdaterService.ts │ │ │ │ ├── workspaceFolderUpdaterService.ts │ │ │ │ └── workspaceUpdaterService.ts │ │ │ └── types.ts │ │ ├── contracts.ts │ │ ├── display │ │ │ ├── index.ts │ │ │ ├── interpreterSelectionTip.ts │ │ │ ├── progressDisplay.ts │ │ │ └── shebangCodeLensProvider.ts │ │ ├── helpers.ts │ │ ├── interpreterService.ts │ │ ├── interpreterVersion.ts │ │ ├── locators │ │ │ └── types.ts │ │ ├── serviceRegistry.ts │ │ └── virtualEnvs │ │ │ ├── condaInheritEnvPrompt.ts │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── virtualEnvPrompt.ts │ ├── ioc │ │ ├── container.ts │ │ ├── index.ts │ │ ├── serviceManager.ts │ │ └── types.ts │ ├── language │ │ ├── braceCounter.ts │ │ ├── characterStream.ts │ │ ├── characters.ts │ │ ├── iterableTextRange.ts │ │ ├── languageConfiguration.ts │ │ ├── textBuilder.ts │ │ ├── textIterator.ts │ │ ├── textRangeCollection.ts │ │ ├── tokenizer.ts │ │ ├── types.ts │ │ └── unicode.ts │ ├── languageServices │ │ ├── jediProxyFactory.ts │ │ └── proposeLanguageServerBanner.ts │ ├── linters │ │ ├── bandit.ts │ │ ├── baseLinter.ts │ │ ├── constants.ts │ │ ├── errorHandlers │ │ │ ├── baseErrorHandler.ts │ │ │ ├── errorHandler.ts │ │ │ ├── notInstalled.ts │ │ │ └── standard.ts │ │ ├── flake8.ts │ │ ├── linterAvailability.ts │ │ ├── linterCommands.ts │ │ ├── linterInfo.ts │ │ ├── linterManager.ts │ │ ├── lintingEngine.ts │ │ ├── mypy.ts │ │ ├── prospector.ts │ │ ├── pycodestyle.ts │ │ ├── pydocstyle.ts │ │ ├── pylama.ts │ │ ├── pylint.ts │ │ ├── serviceRegistry.ts │ │ └── types.ts │ ├── logging │ │ ├── _global.ts │ │ ├── formatters.ts │ │ ├── index.ts │ │ ├── levels.ts │ │ ├── logger.ts │ │ ├── trace.ts │ │ ├── transports.ts │ │ └── util.ts │ ├── providers │ │ ├── codeActionProvider │ │ │ ├── launchJsonCodeActionProvider.ts │ │ │ ├── main.ts │ │ │ └── pythonCodeActionProvider.ts │ │ ├── completionProvider.ts │ │ ├── completionSource.ts │ │ ├── definitionProvider.ts │ │ ├── docStringFoldingProvider.ts │ │ ├── formatProvider.ts │ │ ├── hoverProvider.ts │ │ ├── importSortProvider.ts │ │ ├── itemInfoSource.ts │ │ ├── jediProxy.ts │ │ ├── linterProvider.ts │ │ ├── objectDefinitionProvider.ts │ │ ├── providerUtilities.ts │ │ ├── referenceProvider.ts │ │ ├── renameProvider.ts │ │ ├── replProvider.ts │ │ ├── serviceRegistry.ts │ │ ├── signatureProvider.ts │ │ ├── simpleRefactorProvider.ts │ │ ├── symbolProvider.ts │ │ ├── terminalProvider.ts │ │ └── types.ts │ ├── pythonEnvironments │ │ ├── discovery │ │ │ ├── globalenv.ts │ │ │ ├── index.ts │ │ │ ├── locators │ │ │ │ ├── helpers.ts │ │ │ │ ├── index.ts │ │ │ │ ├── progressService.ts │ │ │ │ ├── services │ │ │ │ │ ├── KnownPathsService.ts │ │ │ │ │ ├── baseVirtualEnvService.ts │ │ │ │ │ ├── cacheableLocatorService.ts │ │ │ │ │ ├── conda.ts │ │ │ │ │ ├── condaEnvFileService.ts │ │ │ │ │ ├── condaEnvService.ts │ │ │ │ │ ├── condaHelper.ts │ │ │ │ │ ├── condaService.ts │ │ │ │ │ ├── currentPathService.ts │ │ │ │ │ ├── globalVirtualEnvService.ts │ │ │ │ │ ├── hashProvider.ts │ │ │ │ │ ├── hashProviderFactory.ts │ │ │ │ │ ├── interpreterFilter.ts │ │ │ │ │ ├── interpreterWatcherBuilder.ts │ │ │ │ │ ├── pipEnvService.ts │ │ │ │ │ ├── pipEnvServiceHelper.ts │ │ │ │ │ ├── windowsRegistryService.ts │ │ │ │ │ ├── windowsStoreInterpreter.ts │ │ │ │ │ ├── workspaceVirtualEnvService.ts │ │ │ │ │ └── workspaceVirtualEnvWatcherService.ts │ │ │ │ └── types.ts │ │ │ └── subenv.ts │ │ ├── exec.ts │ │ ├── info │ │ │ ├── executable.ts │ │ │ ├── index.ts │ │ │ ├── interpreter.ts │ │ │ └── pythonVersion.ts │ │ └── legacyIOC.ts │ ├── refactor │ │ └── proxy.ts │ ├── sourceMapSupport.ts │ ├── startupTelemetry.ts │ ├── telemetry │ │ ├── constants.ts │ │ ├── envFileTelemetry.ts │ │ ├── importTracker.ts │ │ ├── index.ts │ │ └── types.ts │ ├── terminals │ │ ├── activation.ts │ │ ├── codeExecution │ │ │ ├── codeExecutionManager.ts │ │ │ ├── djangoContext.ts │ │ │ ├── djangoShellCodeExecution.ts │ │ │ ├── helper.ts │ │ │ ├── repl.ts │ │ │ └── terminalCodeExecution.ts │ │ ├── serviceRegistry.ts │ │ └── types.ts │ ├── testing │ │ ├── codeLenses │ │ │ ├── main.ts │ │ │ └── testFiles.ts │ │ ├── common │ │ │ ├── argumentsHelper.ts │ │ │ ├── constants.ts │ │ │ ├── debugLauncher.ts │ │ │ ├── enablementTracker.ts │ │ │ ├── managers │ │ │ │ ├── baseTestManager.ts │ │ │ │ └── testConfigurationManager.ts │ │ │ ├── runner.ts │ │ │ ├── services │ │ │ │ ├── configSettingService.ts │ │ │ │ ├── contextService.ts │ │ │ │ ├── discoveredTestParser.ts │ │ │ │ ├── discovery.ts │ │ │ │ ├── storageService.ts │ │ │ │ ├── testManagerService.ts │ │ │ │ ├── testResultsService.ts │ │ │ │ ├── testsStatusService.ts │ │ │ │ ├── types.ts │ │ │ │ ├── unitTestDiagnosticService.ts │ │ │ │ └── workspaceTestManagerService.ts │ │ │ ├── testUtils.ts │ │ │ ├── testVisitors │ │ │ │ ├── flatteningVisitor.ts │ │ │ │ ├── resultResetVisitor.ts │ │ │ │ └── visitor.ts │ │ │ ├── types.ts │ │ │ ├── updateTestSettings.ts │ │ │ └── xUnitParser.ts │ │ ├── configuration.ts │ │ ├── configurationFactory.ts │ │ ├── display │ │ │ ├── main.ts │ │ │ └── picker.ts │ │ ├── explorer │ │ │ ├── commandHandlers.ts │ │ │ ├── failedTestHandler.ts │ │ │ ├── testTreeViewItem.ts │ │ │ ├── testTreeViewProvider.ts │ │ │ └── treeView.ts │ │ ├── main.ts │ │ ├── navigation │ │ │ ├── commandHandler.ts │ │ │ ├── fileNavigator.ts │ │ │ ├── functionNavigator.ts │ │ │ ├── helper.ts │ │ │ ├── serviceRegistry.ts │ │ │ ├── suiteNavigator.ts │ │ │ ├── symbolProvider.ts │ │ │ └── types.ts │ │ ├── nosetest │ │ │ ├── main.ts │ │ │ ├── runner.ts │ │ │ ├── services │ │ │ │ ├── argsService.ts │ │ │ │ ├── discoveryService.ts │ │ │ │ └── parserService.ts │ │ │ └── testConfigurationManager.ts │ │ ├── pytest │ │ │ ├── main.ts │ │ │ ├── runner.ts │ │ │ ├── services │ │ │ │ ├── argsService.ts │ │ │ │ ├── discoveryService.ts │ │ │ │ └── testMessageService.ts │ │ │ └── testConfigurationManager.ts │ │ ├── serviceRegistry.ts │ │ ├── types.ts │ │ └── unittest │ │ │ ├── helper.ts │ │ │ ├── main.ts │ │ │ ├── runner.ts │ │ │ ├── services │ │ │ ├── argsService.ts │ │ │ ├── discoveryService.ts │ │ │ └── parserService.ts │ │ │ ├── socketServer.ts │ │ │ └── testConfigurationManager.ts │ ├── typeFormatters │ │ ├── blockFormatProvider.ts │ │ ├── codeBlockFormatProvider.ts │ │ ├── contracts.ts │ │ ├── dispatcher.ts │ │ └── onEnterFormatter.ts │ └── workspaceSymbols │ │ ├── contracts.ts │ │ ├── generator.ts │ │ ├── main.ts │ │ ├── parser.ts │ │ └── provider.ts ├── datascience-ui │ ├── common │ │ ├── cellFactory.ts │ │ ├── index.css │ │ ├── index.ts │ │ └── main.ts │ ├── data-explorer │ │ ├── cellFormatter.css │ │ ├── cellFormatter.tsx │ │ ├── emptyRowsView.css │ │ ├── emptyRowsView.tsx │ │ ├── globalJQueryImports.ts │ │ ├── index.html │ │ ├── index.tsx │ │ ├── mainPanel.css │ │ ├── mainPanel.tsx │ │ ├── progressBar.css │ │ ├── progressBar.tsx │ │ ├── reactSlickGrid.css │ │ ├── reactSlickGrid.tsx │ │ ├── reactSlickGridFilterBox.css │ │ ├── reactSlickGridFilterBox.tsx │ │ └── testData.ts │ ├── history-react │ │ ├── index.html │ │ ├── index.tsx │ │ ├── interactiveCell.tsx │ │ ├── interactivePanel.less │ │ ├── interactivePanel.tsx │ │ └── redux │ │ │ ├── actions.ts │ │ │ ├── mapping.ts │ │ │ ├── reducers │ │ │ ├── creation.ts │ │ │ ├── effects.ts │ │ │ ├── execution.ts │ │ │ └── index.ts │ │ │ └── store.ts │ ├── interactive-common │ │ ├── buildSettingsCss.ts │ │ ├── cellInput.tsx │ │ ├── cellOutput.tsx │ │ ├── code.tsx │ │ ├── collapseButton.tsx │ │ ├── common.css │ │ ├── contentPanel.tsx │ │ ├── editor.tsx │ │ ├── executionCount.tsx │ │ ├── handlers.ts │ │ ├── images.d.ts │ │ ├── informationMessages.tsx │ │ ├── inputHistory.ts │ │ ├── intellisenseProvider.ts │ │ ├── jupyterInfo.tsx │ │ ├── mainState.ts │ │ ├── markdown.tsx │ │ ├── markdownManipulation.ts │ │ ├── redux │ │ │ ├── helpers.ts │ │ │ ├── postOffice.ts │ │ │ ├── reducers │ │ │ │ ├── commonEffects.ts │ │ │ │ ├── helpers.ts │ │ │ │ ├── kernel.ts │ │ │ │ ├── monaco.ts │ │ │ │ ├── transfer.ts │ │ │ │ ├── types.ts │ │ │ │ └── variables.ts │ │ │ └── store.ts │ │ ├── tokenizer.ts │ │ ├── transforms.tsx │ │ ├── trimmedOutputLink.tsx │ │ ├── trustMessage.tsx │ │ ├── utils.ts │ │ ├── variableExplorer.css │ │ ├── variableExplorer.tsx │ │ ├── variableExplorerButtonCellFormatter.css │ │ ├── variableExplorerButtonCellFormatter.tsx │ │ ├── variableExplorerCellFormatter.css │ │ ├── variableExplorerCellFormatter.tsx │ │ ├── variableExplorerEmptyRows.css │ │ ├── variableExplorerEmptyRows.tsx │ │ ├── variableExplorerGrid.less │ │ ├── variableExplorerHeaderCellFormatter.tsx │ │ ├── variableExplorerRowRenderer.tsx │ │ └── variablePanel.tsx │ ├── ipywidgets │ │ ├── README.md │ │ ├── container.tsx │ │ ├── incompatibleWidgetHandler.ts │ │ ├── index.ts │ │ ├── kernel.ts │ │ ├── manager.ts │ │ ├── requirejsRegistry.ts │ │ └── types.ts │ ├── native-editor │ │ ├── addCellLine.tsx │ │ ├── index.html │ │ ├── index.tsx │ │ ├── nativeCell.tsx │ │ ├── nativeEditor.less │ │ ├── nativeEditor.tsx │ │ ├── redux │ │ │ ├── actions.ts │ │ │ ├── mapping.ts │ │ │ ├── reducers │ │ │ │ ├── creation.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── execution.ts │ │ │ │ ├── index.ts │ │ │ │ └── movement.ts │ │ │ └── store.ts │ │ └── toolbar.tsx │ ├── plot │ │ ├── index.html │ │ ├── index.tsx │ │ ├── mainPanel.css │ │ ├── mainPanel.tsx │ │ ├── testSvg.ts │ │ ├── toolbar.css │ │ └── toolbar.tsx │ ├── react-common │ │ ├── arePathsSame.ts │ │ ├── button.tsx │ │ ├── codicon │ │ │ ├── codicon-animations.css │ │ │ ├── codicon-modifications.css │ │ │ ├── codicon.css │ │ │ ├── codicon.ts │ │ │ └── codicon.ttf │ │ ├── constants.ts │ │ ├── errorBoundary.tsx │ │ ├── event.ts │ │ ├── flyout.css │ │ ├── flyout.tsx │ │ ├── image.tsx │ │ ├── imageButton.css │ │ ├── imageButton.tsx │ │ ├── images │ │ │ ├── Cancel │ │ │ │ ├── Cancel_16xMD_vscode.svg │ │ │ │ └── Cancel_16xMD_vscode_dark.svg │ │ │ ├── ClearAllOutput │ │ │ │ ├── clear_all_output_dark.svg │ │ │ │ └── clear_all_output_light.svg │ │ │ ├── CollapseAll │ │ │ │ ├── CollapseAll_16x_vscode.svg │ │ │ │ └── CollapseAll_16x_vscode_dark.svg │ │ │ ├── Copy │ │ │ │ ├── copy.svg │ │ │ │ └── copy_inverse.svg │ │ │ ├── Delete │ │ │ │ ├── delete_dark.svg │ │ │ │ └── delete_light.svg │ │ │ ├── Down │ │ │ │ ├── down-inverse.svg │ │ │ │ └── down.svg │ │ │ ├── ExpandAll │ │ │ │ ├── ExpandAll_16x_vscode.svg │ │ │ │ └── ExpandAll_16x_vscode_dark.svg │ │ │ ├── ExportToPython │ │ │ │ ├── export_to_python_dark.svg │ │ │ │ └── export_to_python_light.svg │ │ │ ├── GatherCode │ │ │ │ ├── gather_dark.svg │ │ │ │ └── gather_light.svg │ │ │ ├── GoToSourceCode │ │ │ │ ├── GoToSourceCode_16x_vscode.svg │ │ │ │ └── GoToSourceCode_16x_vscode_dark.svg │ │ │ ├── InsertAbove │ │ │ │ ├── above-inverse.svg │ │ │ │ └── above.svg │ │ │ ├── InsertBelow │ │ │ │ ├── below-inverse.svg │ │ │ │ └── below.svg │ │ │ ├── Interrupt │ │ │ │ ├── Interrupt_16x_vscode.svg │ │ │ │ └── Interrupt_16x_vscode_dark.svg │ │ │ ├── JupyterServerConnected │ │ │ │ ├── connected-dark.svg │ │ │ │ ├── connected-hc.svg │ │ │ │ └── connected-light.svg │ │ │ ├── JupyterServerDisconnected │ │ │ │ ├── disconnected-dark.svg │ │ │ │ ├── disconnected-hc.svg │ │ │ │ └── disconnected-light.svg │ │ │ ├── Next │ │ │ │ ├── next-inverse.svg │ │ │ │ └── next.svg │ │ │ ├── OpenInNewWindow │ │ │ │ ├── OpenInNewWindow_16x_vscode.svg │ │ │ │ └── OpenInNewWindow_16x_vscode_dark.svg │ │ │ ├── OpenPlot │ │ │ │ ├── plot_dark.svg │ │ │ │ └── plot_light.svg │ │ │ ├── Pan │ │ │ │ ├── pan.svg │ │ │ │ └── pan_inverse.svg │ │ │ ├── PopIn │ │ │ │ ├── PopIn_16x_vscode.svg │ │ │ │ └── PopIn_16x_vscode_dark.svg │ │ │ ├── PopOut │ │ │ │ ├── PopOut_16x_vscode.svg │ │ │ │ └── PopOut_16x_vscode_dark.svg │ │ │ ├── Prev │ │ │ │ ├── previous-inverse.svg │ │ │ │ └── previous.svg │ │ │ ├── Redo │ │ │ │ ├── Redo_16x_vscode.svg │ │ │ │ └── Redo_16x_vscode_dark.svg │ │ │ ├── Restart │ │ │ │ ├── Restart_grey_16x_vscode.svg │ │ │ │ └── Restart_grey_16x_vscode_dark.svg │ │ │ ├── Run │ │ │ │ ├── run-dark.svg │ │ │ │ └── run-light.svg │ │ │ ├── RunAbove │ │ │ │ ├── runabove-inverse.svg │ │ │ │ └── runabove.svg │ │ │ ├── RunAll │ │ │ │ ├── run_all_dark.svg │ │ │ │ └── run_all_light.svg │ │ │ ├── RunBelow │ │ │ │ ├── runbelow-inverse.svg │ │ │ │ └── runbelow.svg │ │ │ ├── RunByLine │ │ │ │ ├── runbyline_dark.svg │ │ │ │ └── runbyline_light.svg │ │ │ ├── SaveAs │ │ │ │ ├── SaveAs_16x_vscode.svg │ │ │ │ └── SaveAs_16x_vscode_dark.svg │ │ │ ├── StartPage │ │ │ │ ├── Interactive-inverse.svg │ │ │ │ ├── Interactive.svg │ │ │ │ ├── Notebook-inverse.svg │ │ │ │ ├── Notebook.svg │ │ │ │ ├── OpenFolder-inverse.svg │ │ │ │ ├── OpenFolder.svg │ │ │ │ ├── Python-color.svg │ │ │ │ ├── Python-inverse.svg │ │ │ │ └── Python.svg │ │ │ ├── SwitchToCode │ │ │ │ ├── switchtocode-inverse.svg │ │ │ │ └── switchtocode.svg │ │ │ ├── SwitchToMarkdown │ │ │ │ ├── switchtomarkdown-inverse.svg │ │ │ │ └── switchtomarkdown.svg │ │ │ ├── Undo │ │ │ │ ├── Undo_16x_vscode.svg │ │ │ │ └── Undo_16x_vscode_dark.svg │ │ │ ├── Up │ │ │ │ ├── up-inverse.svg │ │ │ │ └── up.svg │ │ │ ├── VariableExplorer │ │ │ │ ├── variable_explorer_dark.svg │ │ │ │ └── variable_explorer_light.svg │ │ │ ├── Zoom │ │ │ │ ├── zoom.svg │ │ │ │ └── zoom_inverse.svg │ │ │ └── ZoomOut │ │ │ │ ├── zoomout.svg │ │ │ │ └── zoomout_inverse.svg │ │ ├── locReactSide.ts │ │ ├── logger.ts │ │ ├── monacoEditor.css │ │ ├── monacoEditor.tsx │ │ ├── monacoHelpers.ts │ │ ├── postOffice.ts │ │ ├── progress.css │ │ ├── progress.tsx │ │ ├── reduxUtils.ts │ │ ├── relativeImage.tsx │ │ ├── settingsReactSide.ts │ │ ├── styleInjector.tsx │ │ ├── svgList.css │ │ ├── svgList.tsx │ │ ├── svgViewer.css │ │ ├── svgViewer.tsx │ │ ├── textMeasure.ts │ │ └── themeDetector.ts │ ├── renderers │ │ ├── constants.ts │ │ ├── index.tsx │ │ ├── render.tsx │ │ └── webviewApi.d.ts │ └── startPage │ │ ├── index.html │ │ ├── index.tsx │ │ ├── startPage.css │ │ └── startPage.tsx ├── ipywidgets │ ├── .gitignore │ ├── .vscode │ │ └── settings.json │ ├── README.md │ ├── package.json │ ├── scripts │ │ ├── clean.js │ │ └── copyfiles.js │ ├── src │ │ ├── documentContext.ts │ │ ├── embed.ts │ │ ├── index.ts │ │ ├── libembed.ts │ │ ├── manager.ts │ │ ├── signal.ts │ │ ├── widgetLoader.ts │ │ └── widgets.css │ ├── tsconfig.json │ ├── types │ │ ├── index.d.ts │ │ └── require.js.d.ts │ └── webpack.config.js ├── test │ ├── .vscode │ │ ├── launch.json │ │ ├── launch.json.README │ │ ├── settings.json │ │ └── tags │ ├── activation │ │ ├── aaTesting.unit.test.ts │ │ ├── activationManager.unit.test.ts │ │ ├── activationService.unit.test.ts │ │ ├── activeResource.unit.test.ts │ │ ├── extensionSurvey.unit.test.ts │ │ ├── languageServer │ │ │ ├── activator.unit.test.ts │ │ │ ├── analysisOptions.unit.test.ts │ │ │ ├── downloadChannelRules.unit.test.ts │ │ │ ├── downloader.unit.test.ts │ │ │ ├── languageClientFactory.unit.test.ts │ │ │ ├── languageServer.unit.test.ts │ │ │ ├── languageServerCompatibilityService.unit.test.ts │ │ │ ├── languageServerExtension.unit.test.ts │ │ │ ├── languageServerFolderService.unit.test.ts │ │ │ ├── languageServerPackageRepository.unit.test.ts │ │ │ ├── languageServerPackageService.test.ts │ │ │ ├── languageServerPackageService.unit.test.ts │ │ │ ├── manager.unit.test.ts │ │ │ ├── outputChannel.unit.test.ts │ │ │ └── platformData.unit.test.ts │ │ ├── node │ │ │ ├── activator.unit.test.ts │ │ │ ├── languageServerChangeHandler.unit.test.ts │ │ │ └── languageServerFolderService.unit.test.ts │ │ └── serviceRegistry.unit.test.ts │ ├── analysisEngineTest.ts │ ├── api.functional.test.ts │ ├── application │ │ └── diagnostics │ │ │ ├── applicationDiagnostics.unit.test.ts │ │ │ ├── checks │ │ │ ├── envPathVariable.unit.test.ts │ │ │ ├── invalidLaunchJsonDebugger.unit.test.ts │ │ │ ├── invalidPythonPathInDebugger.unit.test.ts │ │ │ ├── lsNotSupported.unit.test.ts │ │ │ ├── macPythonInterpreter.unit.test.ts │ │ │ ├── powerShellActivation.unit.test.ts │ │ │ ├── pythonInterpreter.unit.test.ts │ │ │ ├── pythonPathDeprecated.unit.test.ts │ │ │ ├── updateTestSettings.unit.test.ts │ │ │ └── upgradeCodeRunner.unit.test.ts │ │ │ ├── commands │ │ │ ├── execVSCCommands.unit.test.ts │ │ │ ├── factory.unit.test.ts │ │ │ ├── ignore.unit.test.ts │ │ │ └── launchBrowser.unit.test.ts │ │ │ ├── filter.unit.test.ts │ │ │ ├── promptHandler.unit.test.ts │ │ │ ├── serviceRegistry.unit.test.ts │ │ │ └── sourceMapSupportService.unit.test.ts │ ├── ciConstants.ts │ ├── common.ts │ ├── common │ │ ├── application │ │ │ └── commands │ │ │ │ └── reloadCommand.unit.test.ts │ │ ├── asyncDump.ts │ │ ├── configSettings.test.ts │ │ ├── configSettings │ │ │ ├── configSettings.pythonPath.unit.test.ts │ │ │ └── configSettings.unit.test.ts │ │ ├── configuration │ │ │ ├── service.test.ts │ │ │ └── service.unit.test.ts │ │ ├── crypto.unit.test.ts │ │ ├── dotnet │ │ │ ├── compatibilityService.unit.test.ts │ │ │ ├── serviceRegistry.unit.test.ts │ │ │ └── services │ │ │ │ ├── linuxCompatibilityService.unit.test.ts │ │ │ │ ├── macCompatibilityService.unit.test.ts │ │ │ │ ├── unknownOsCompatibilityService.unit.test.ts │ │ │ │ └── winCompatibilityService.unit.test.ts │ │ ├── exitCIAfterTestReporter.ts │ │ ├── experiments │ │ │ ├── manager.unit.test.ts │ │ │ ├── service.unit.test.ts │ │ │ └── telemetry.unit.test.ts │ │ ├── extensions.unit.test.ts │ │ ├── featureDeprecationManager.unit.test.ts │ │ ├── helpers.test.ts │ │ ├── insidersBuild │ │ │ ├── downloadChannelRules.unit.test.ts │ │ │ ├── downloadChannelService.unit.test.ts │ │ │ ├── insidersExtensionPrompt.unit.test.ts │ │ │ └── insidersExtensionService.unit.test.ts │ │ ├── installer.test.ts │ │ ├── installer │ │ │ ├── channelManager.unit.test.ts │ │ │ ├── condaInstaller.unit.test.ts │ │ │ ├── extensionBuildInstaller.unit.test.ts │ │ │ ├── installer.invalidPath.unit.test.ts │ │ │ ├── installer.unit.test.ts │ │ │ ├── moduleInstaller.unit.test.ts │ │ │ ├── pipEnvInstaller.unit.test.ts │ │ │ ├── pipInstaller.unit.test.ts │ │ │ ├── poetryInstaller.unit.test.ts │ │ │ ├── productPath.unit.test.ts │ │ │ └── serviceRegistry.unit.test.ts │ │ ├── interpreterPathService.unit.test.ts │ │ ├── misc.test.ts │ │ ├── moduleInstaller.test.ts │ │ ├── net │ │ │ ├── fileDownloader.unit.test.ts │ │ │ └── httpClient.unit.test.ts │ │ ├── nuget │ │ │ ├── azureBobStoreRepository.functional.test.ts │ │ │ ├── azureBobStoreRepository.unit.test.ts │ │ │ ├── nugetRepository.unit.test.ts │ │ │ └── nugetService.unit.test.ts │ │ ├── platform │ │ │ ├── errors.unit.test.ts │ │ │ ├── filesystem.functional.test.ts │ │ │ ├── filesystem.test.ts │ │ │ ├── filesystem.unit.test.ts │ │ │ ├── fs-paths.functional.test.ts │ │ │ ├── fs-paths.unit.test.ts │ │ │ ├── fs-temp.functional.test.ts │ │ │ ├── fs-temp.unit.test.ts │ │ │ ├── pathUtils.functional.test.ts │ │ │ ├── platformService.test.ts │ │ │ ├── serviceRegistry.unit.test.ts │ │ │ └── utils.ts │ │ ├── process │ │ │ ├── currentProcess.test.ts │ │ │ ├── decoder.test.ts │ │ │ ├── execFactory.test.ts │ │ │ ├── logger.unit.test.ts │ │ │ ├── proc.exec.test.ts │ │ │ ├── proc.observable.test.ts │ │ │ ├── proc.unit.test.ts │ │ │ ├── processFactory.unit.test.ts │ │ │ ├── pythonDaemon.functional.test.ts │ │ │ ├── pythonDaemonPool.functional.test.ts │ │ │ ├── pythonDaemonPool.unit.test.ts │ │ │ ├── pythonEnvironment.unit.test.ts │ │ │ ├── pythonExecutionFactory.unit.test.ts │ │ │ ├── pythonProc.simple.multiroot.test.ts │ │ │ ├── pythonProcess.unit.test.ts │ │ │ ├── pythonToolService.unit.test.ts │ │ │ └── serviceRegistry.unit.test.ts │ │ ├── randomWords.txt │ │ ├── serviceRegistry.unit.test.ts │ │ ├── socketCallbackHandler.test.ts │ │ ├── socketStream.test.ts │ │ ├── terminals │ │ │ ├── activation.bash.unit.test.ts │ │ │ ├── activation.commandPrompt.unit.test.ts │ │ │ ├── activation.conda.unit.test.ts │ │ │ ├── activation.unit.test.ts │ │ │ ├── activator │ │ │ │ ├── base.unit.test.ts │ │ │ │ ├── index.unit.test.ts │ │ │ │ └── powerShellFailedHandler.unit.test.ts │ │ │ ├── commandPrompt.unit.test.ts │ │ │ ├── environmentActivationProviders │ │ │ │ ├── pipEnvActivationProvider.unit.test.ts │ │ │ │ └── terminalActivation.testvirtualenvs.ts │ │ │ ├── factory.unit.test.ts │ │ │ ├── helper.unit.test.ts │ │ │ ├── pyenvActivationProvider.unit.test.ts │ │ │ ├── service.unit.test.ts │ │ │ ├── serviceRegistry.unit.test.ts │ │ │ ├── shellDetector.unit.test.ts │ │ │ ├── shellDetectors │ │ │ │ └── shellDetectors.unit.test.ts │ │ │ └── synchronousTerminalService.unit.test.ts │ │ ├── utils │ │ │ ├── async.unit.test.ts │ │ │ ├── cacheUtils.unit.test.ts │ │ │ ├── decorators.unit.test.ts │ │ │ ├── localize.functional.test.ts │ │ │ ├── regexp.unit.test.ts │ │ │ └── text.unit.test.ts │ │ └── variables │ │ │ ├── envVarsProvider.multiroot.test.ts │ │ │ ├── envVarsService.functional.test.ts │ │ │ ├── envVarsService.test.ts │ │ │ ├── envVarsService.unit.test.ts │ │ │ ├── environmentVariablesProvider.unit.test.ts │ │ │ └── serviceRegistry.unit.test.ts │ ├── configuration │ │ └── interpreterSelector │ │ │ ├── commands │ │ │ ├── resetInterpreter.unit.test.ts │ │ │ └── setInterpreter.unit.test.ts │ │ │ └── interpreterSelector.unit.test.ts │ ├── constants.ts │ ├── core.ts │ ├── datascience │ │ ├── .vscode │ │ │ └── settings.json │ │ ├── DefaultSalesReport.csv │ │ ├── activation.unit.test.ts │ │ ├── cellFactory.unit.test.ts │ │ ├── cellMatcher.unit.test.ts │ │ ├── color.test.ts │ │ ├── commands │ │ │ ├── commandRegistry.unit.test.ts │ │ │ ├── notebookCommands.functional.test.ts │ │ │ └── serverSelector.unit.test.ts │ │ ├── common.unit.test.ts │ │ ├── crossProcessLock.unit.test.ts │ │ ├── data-viewing │ │ │ ├── dataViewer.unit.test.ts │ │ │ └── dataViewerPDependencyService.unit.test.ts │ │ ├── dataScienceIocContainer.ts │ │ ├── datascience.unit.test.ts │ │ ├── datascienceSurveyBanner.unit.test.ts │ │ ├── dataviewer.functional.test.tsx │ │ ├── debugLocationTracker.unit.test.ts │ │ ├── debugger.functional.test.tsx │ │ ├── dsTestSetup.ts │ │ ├── editor-integration │ │ │ ├── cellhashprovider.unit.test.ts │ │ │ ├── codelensprovider.unit.test.ts │ │ │ ├── codewatcher.unit.test.ts │ │ │ ├── gotocell.functional.test.ts │ │ │ └── helpers.ts │ │ ├── errorHandler.functional.test.tsx │ │ ├── errorHandler.unit.test.ts │ │ ├── execution.unit.test.ts │ │ ├── executionServiceMock.ts │ │ ├── export │ │ │ ├── exportFileOpener.unit.test.ts │ │ │ ├── exportManager.test.ts │ │ │ ├── exportToHTML.test.ts │ │ │ ├── exportToPython.test.ts │ │ │ ├── exportUtil.test.ts │ │ │ ├── test.ipynb │ │ │ └── testPDF.ipynb │ │ ├── extensionapi │ │ │ └── exampleextension │ │ │ │ └── ms-ai-tools-test │ │ │ │ ├── .eslintrc.js │ │ │ │ ├── .gitignore │ │ │ │ ├── .vscode │ │ │ │ ├── extensions.json │ │ │ │ └── launch.json │ │ │ │ ├── .vscodeignore │ │ │ │ ├── README.md │ │ │ │ ├── package-lock.json │ │ │ │ ├── package.json │ │ │ │ ├── src │ │ │ │ ├── extension.ts │ │ │ │ ├── serverPicker.ts │ │ │ │ └── typings │ │ │ │ │ └── python.d.ts │ │ │ │ ├── tsconfig.json │ │ │ │ └── webpack.config.js │ │ ├── foo.py │ │ ├── helpers.ts │ │ ├── inputHistory.unit.test.ts │ │ ├── intellisense.functional.test.tsx │ │ ├── intellisense.unit.test.ts │ │ ├── interactive-common │ │ │ ├── notebookProvider.unit.test.ts │ │ │ ├── notebookServerProvider.unit.test.ts │ │ │ ├── trustCommandHandler.unit.test.ts │ │ │ └── trustService.unit.test.ts │ │ ├── interactive-ipynb │ │ │ ├── nativeEditorProvider.functional.test.ts │ │ │ └── nativeEditorStorage.unit.test.ts │ │ ├── interactivePanel.functional.test.tsx │ │ ├── interactiveWindow.functional.test.tsx │ │ ├── interactiveWindowCommandListener.unit.test.ts │ │ ├── interactiveWindowTestHelpers.tsx │ │ ├── ipywidgets │ │ │ ├── cdnWidgetScriptSourceProvider.unit.test.ts │ │ │ ├── incompatibleWidgetHandler.unit.test.ts │ │ │ ├── ipyWidgetScriptSourceProvider.unit.test.ts │ │ │ └── localWidgetScriptSourceProvider.unit.test.ts │ │ ├── jupyter │ │ │ ├── interpreter │ │ │ │ ├── jupyterInterpreterDependencyService.unit.test.ts │ │ │ │ ├── jupyterInterpreterSelectionCommand.unit.test.ts │ │ │ │ ├── jupyterInterpreterSelector.unit.test.ts │ │ │ │ ├── jupyterInterpreterService.unit.test.ts │ │ │ │ ├── jupyterInterpreterStateStore.unit.test.ts │ │ │ │ └── jupyterInterpreterSubCommandExecutionService.unit.test.ts │ │ │ ├── jupyterCellOutputMimeTypeTracker.unit.test.ts │ │ │ ├── jupyterConnection.unit.test.ts │ │ │ ├── jupyterSession.unit.test.ts │ │ │ ├── kernels │ │ │ │ ├── kernelDependencyService.unit.test.ts │ │ │ │ ├── kernelSelections.unit.test.ts │ │ │ │ ├── kernelSelector.unit.test.ts │ │ │ │ ├── kernelService.unit.test.ts │ │ │ │ └── kernelSwitcher.unit.test.ts │ │ │ ├── serverCache.unit.test.ts │ │ │ └── serverSelector.unit.test.ts │ │ ├── jupyterHelpers.ts │ │ ├── jupyterPasswordConnect.unit.test.ts │ │ ├── jupyterUriProviderRegistration.functional.test.ts │ │ ├── jupyterUriProviderRegistration.unit.test.ts │ │ ├── jupyterUtils.unit.test.ts │ │ ├── kernel-launcher │ │ │ ├── kernelDaemonPool.unit.test.ts │ │ │ ├── kernelDaemonPoolPreWarmer.unit.test.ts │ │ │ └── kernelLauncherDaemon.unit.test.ts │ │ ├── kernelFinder.unit.test.ts │ │ ├── kernelLauncher.functional.test.ts │ │ ├── liveloss.py │ │ ├── liveshare.functional.test.tsx │ │ ├── mainState.unit.test.ts │ │ ├── manualTestFiles │ │ │ ├── manualTestFile.py │ │ │ └── manualTestFileNoCells.py │ │ ├── markdownManipulation.unit.test.ts │ │ ├── matplotlib.txt │ │ ├── mockCode2ProtocolConverter.ts │ │ ├── mockCommandManager.ts │ │ ├── mockCustomEditorService.ts │ │ ├── mockDebugService.ts │ │ ├── mockDocument.ts │ │ ├── mockDocumentManager.ts │ │ ├── mockExtensions.ts │ │ ├── mockFileSystem.ts │ │ ├── mockInputBox.ts │ │ ├── mockJupyterManager.ts │ │ ├── mockJupyterManagerFactory.ts │ │ ├── mockJupyterNotebook.ts │ │ ├── mockJupyterRequest.ts │ │ ├── mockJupyterServer.ts │ │ ├── mockJupyterSession.ts │ │ ├── mockKernelFinder.ts │ │ ├── mockLanguageClient.ts │ │ ├── mockLanguageServer.ts │ │ ├── mockLanguageServerAnalysisOptions.ts │ │ ├── mockLanguageServerCache.ts │ │ ├── mockLanguageServerProxy.ts │ │ ├── mockLiveShare.ts │ │ ├── mockProcessService.ts │ │ ├── mockProtocol2CodeConverter.ts │ │ ├── mockPythonService.ts │ │ ├── mockPythonSettings.ts │ │ ├── mockQuickPick.ts │ │ ├── mockStatusProvider.ts │ │ ├── mockTextEditor.ts │ │ ├── mockWorkspaceConfig.ts │ │ ├── mockWorkspaceConfiguration.ts │ │ ├── mockWorkspaceFolder.ts │ │ ├── mountedWebView.ts │ │ ├── mountedWebViewFactory.ts │ │ ├── nativeEditor.functional.test.tsx │ │ ├── nativeEditor.toolbar.functional.test.tsx │ │ ├── nativeEditorTestHelpers.tsx │ │ ├── nativeEditorViewTracker.unit.test.ts │ │ ├── notebook.functional.test.ts │ │ ├── notebook │ │ │ ├── cellOutput.ds.test.ts │ │ │ ├── contentProvider.ds.test.ts │ │ │ ├── contentProvider.unit.test.ts │ │ │ ├── edit.ds.test.ts │ │ │ ├── empty.ipynb │ │ │ ├── empty.py │ │ │ ├── executionErrors.ds.test.ts │ │ │ ├── executionService.ds.test.ts │ │ │ ├── helper.ts │ │ │ ├── helpers.unit.test.ts │ │ │ ├── interrupRestart.ds.test.ts │ │ │ ├── notebookEditorProvider.ds.test.ts │ │ │ ├── notebookStorage.unit.test.ts │ │ │ ├── notebookTrust.ds.test.ts │ │ │ ├── rendererExension.unit.test.ts │ │ │ ├── rendererExtensionDownloader.unit.test.ts │ │ │ ├── saving.ds.test.ts │ │ │ ├── survey.unit.test.ts │ │ │ ├── test.ipynb │ │ │ ├── test.png │ │ │ ├── with3CellsAndOutput.ipynb │ │ │ ├── withOutput.ipynb │ │ │ ├── withOutputForTrust.ipynb │ │ │ └── withOutputNew.ipynb │ │ ├── plotViewer.functional.test.tsx │ │ ├── preWarmVariables.unit.test.ts │ │ ├── progress │ │ │ ├── decorators.unit.test.ts │ │ │ └── progressReporter.unit.test.ts │ │ ├── raw-kernel │ │ │ ├── rawKernel.functional.test.ts │ │ │ └── rawKernelTestHelpers.ts │ │ ├── reactHelpers.ts │ │ ├── remoteTestHelpers.ts │ │ ├── serverConfigFiles │ │ │ ├── jcert.pem │ │ │ ├── jkey.key │ │ │ ├── remoteNoAuth.py │ │ │ ├── remotePassword.py │ │ │ └── remoteToken.py │ │ ├── shiftEnterBanner.unit.test.ts │ │ ├── sub │ │ │ └── test.ipynb │ │ ├── testHelpers.tsx │ │ ├── testHelpersCore.ts │ │ ├── testInteractiveWindowProvider.ts │ │ ├── testNativeEditorProvider.ts │ │ ├── testPersistentStateFactory.ts │ │ ├── testexecutionLogger.ts │ │ ├── trustedNotebooks.functional.test.tsx │ │ ├── uiTests │ │ │ ├── helpers.ts │ │ │ ├── ipywidget.ui.functional.test.ts │ │ │ ├── notebookHelpers.ts │ │ │ ├── notebookUi.ts │ │ │ ├── notebooks │ │ │ │ ├── beakerx_widgets.ipynb │ │ │ │ ├── bqplot_widgets.ipynb │ │ │ │ ├── ipySheet_widgets.ipynb │ │ │ │ ├── ipyvolume_widgets.ipynb │ │ │ │ ├── k3d_widgets.ipynb │ │ │ │ ├── outputinteract_widgets.ipynb │ │ │ │ ├── pythreejs_widgets.ipynb │ │ │ │ ├── simple_abc.ipynb │ │ │ │ └── standard_widgets.ipynb │ │ │ ├── recorder.ts │ │ │ ├── webBrowserPanel.ts │ │ │ └── webBrowserPanelProvider.ts │ │ ├── variableTestHelpers.ts │ │ └── variableexplorer.functional.test.tsx │ ├── debugger │ │ ├── common │ │ │ ├── constants.ts │ │ │ └── protocolparser.test.ts │ │ ├── envVars.test.ts │ │ ├── extension │ │ │ ├── adapter │ │ │ │ ├── activator.unit.test.ts │ │ │ │ ├── adapter.test.ts │ │ │ │ ├── factory.unit.test.ts │ │ │ │ ├── logging.unit.test.ts │ │ │ │ ├── outdatedDebuggerPrompt.unit.test.ts │ │ │ │ └── remoteLaunchers.unit.test.ts │ │ │ ├── attachQuickPick │ │ │ │ ├── factory.unit.test.ts │ │ │ │ ├── provider.unit.test.ts │ │ │ │ ├── psProcessParser.unit.test.ts │ │ │ │ └── wmicProcessParser.unit.test.ts │ │ │ ├── banner.unit.test.ts │ │ │ ├── configuration │ │ │ │ ├── debugConfigurationService.unit.test.ts │ │ │ │ ├── launch.json │ │ │ │ │ ├── completionProvider.unit.test.ts │ │ │ │ │ ├── interpreterPathCommand.unit.test.ts │ │ │ │ │ └── updaterServer.unit.test.ts │ │ │ │ ├── providers │ │ │ │ │ ├── djangoLaunch.unit.test.ts │ │ │ │ │ ├── fileLaunch.unit.test.ts │ │ │ │ │ ├── flaskLaunch.unit.test.ts │ │ │ │ │ ├── moduleLaunch.unit.test.ts │ │ │ │ │ ├── pidAttach.unit.test.ts │ │ │ │ │ ├── providerFactory.unit.test.ts │ │ │ │ │ ├── pyramidLaunch.unit.test.ts │ │ │ │ │ └── remoteAttach.unit.test.ts │ │ │ │ └── resolvers │ │ │ │ │ ├── attach.unit.test.ts │ │ │ │ │ ├── base.unit.test.ts │ │ │ │ │ ├── common.ts │ │ │ │ │ └── launch.unit.test.ts │ │ │ ├── hooks │ │ │ │ ├── childProcessAttachHandler.unit.test.ts │ │ │ │ └── childProcessAttachService.unit.test.ts │ │ │ └── serviceRegistry.unit.test.ts │ │ └── utils.ts │ ├── debuggerTest.ts │ ├── extension-version.functional.test.ts │ ├── fixtures.ts │ ├── format │ │ ├── extension.dispatch.test.ts │ │ ├── extension.format.ds.test.ts │ │ ├── extension.format.test.ts │ │ ├── extension.lineFormatter.test.ts │ │ ├── extension.onEnterFormat.test.ts │ │ ├── extension.onTypeFormat.test.ts │ │ ├── extension.sort.test.ts │ │ ├── format.helper.test.ts │ │ └── formatter.unit.test.ts │ ├── index.ts │ ├── initialize.ts │ ├── install │ │ ├── channelManager.channels.test.ts │ │ └── channelManager.messages.test.ts │ ├── interpreters │ │ ├── activation │ │ │ ├── preWarmVariables.unit.test.ts │ │ │ ├── service.unit.test.ts │ │ │ ├── terminalEnvironmentActivationService.unit.test.ts │ │ │ └── wrapperEnvironmentActivationService.unit.test.ts │ │ ├── autoSelection │ │ │ ├── index.unit.test.ts │ │ │ ├── interpreterSecurity │ │ │ │ ├── interpreterEvaluation.unit.test.ts │ │ │ │ ├── interpreterSecurityService.unit.test.ts │ │ │ │ └── interpreterSecurityStorage.unit.test.ts │ │ │ ├── proxy.unit.test.ts │ │ │ └── rules │ │ │ │ ├── base.unit.test.ts │ │ │ │ ├── cached.unit.test.ts │ │ │ │ ├── currentPath.unit.test.ts │ │ │ │ ├── settings.unit.test.ts │ │ │ │ ├── system.unit.test.ts │ │ │ │ ├── winRegistry.unit.test.ts │ │ │ │ └── workspaceEnv.unit.test.ts │ │ ├── currentPathService.unit.test.ts │ │ ├── display.unit.test.ts │ │ ├── display │ │ │ ├── interpreterSelectionTip.unit.test.ts │ │ │ └── progressDisplay.unit.test.ts │ │ ├── helpers.unit.test.ts │ │ ├── interpreterService.unit.test.ts │ │ ├── interpreterVersion.unit.test.ts │ │ ├── mocks.ts │ │ ├── pythonPathUpdaterFactory.unit.test.ts │ │ ├── serviceRegistry.unit.test.ts │ │ ├── virtualEnvManager.unit.test.ts │ │ └── virtualEnvs │ │ │ ├── condaInheritEnvPrompt.unit.test.ts │ │ │ ├── index.unit.test.ts │ │ │ └── virtualEnvPrompt.unit.test.ts │ ├── language │ │ ├── braceCounter.unit.test.ts │ │ ├── characterStream.unit.test.ts │ │ ├── languageConfiguration.unit.test.ts │ │ ├── textBuilder.unit.test.ts │ │ ├── textIterator.unit.test.ts │ │ ├── textRange.unit.test.ts │ │ ├── textRangeCollection.unit.test.ts │ │ └── tokenizer.unit.test.ts │ ├── languageServers │ │ └── jedi │ │ │ ├── autocomplete │ │ │ ├── base.test.ts │ │ │ ├── pep484.test.ts │ │ │ └── pep526.test.ts │ │ │ ├── completionSource.unit.test.ts │ │ │ ├── definitions │ │ │ ├── hover.jedi.test.ts │ │ │ ├── navigation.test.ts │ │ │ └── parallel.jedi.test.ts │ │ │ ├── pythonSignatureProvider.unit.test.ts │ │ │ ├── signature │ │ │ └── signature.jedi.test.ts │ │ │ └── symbolProvider.unit.test.ts │ ├── linters │ │ ├── common.ts │ │ ├── lint.args.test.ts │ │ ├── lint.functional.test.ts │ │ ├── lint.manager.unit.test.ts │ │ ├── lint.multilinter.test.ts │ │ ├── lint.multiroot.test.ts │ │ ├── lint.provider.test.ts │ │ ├── lint.test.ts │ │ ├── lint.unit.test.ts │ │ ├── lintengine.test.ts │ │ ├── linter.availability.unit.test.ts │ │ ├── linterCommands.unit.test.ts │ │ ├── linterManager.unit.test.ts │ │ ├── linterinfo.unit.test.ts │ │ ├── mypy.unit.test.ts │ │ ├── pylint.test.ts │ │ ├── pylint.unit.test.ts │ │ └── serviceRegistry.unit.test.ts │ ├── markdown │ │ └── restTextConverter.test.ts │ ├── mockClasses.ts │ ├── mocks │ │ ├── autoSelector.ts │ │ ├── mementos.ts │ │ ├── moduleInstaller.ts │ │ ├── proc.ts │ │ ├── process.ts │ │ └── vsc │ │ │ ├── README.md │ │ │ ├── arrays.ts │ │ │ ├── charCode.ts │ │ │ ├── extHostedTypes.ts │ │ │ ├── htmlContent.ts │ │ │ ├── index.ts │ │ │ ├── position.ts │ │ │ ├── range.ts │ │ │ ├── selection.ts │ │ │ ├── strings.ts │ │ │ ├── telemetryReporter.ts │ │ │ ├── uri.ts │ │ │ └── uuid.ts │ ├── multiRootTest.ts │ ├── multiRootWkspc │ │ ├── disableLinters │ │ │ ├── .vscode │ │ │ │ └── tags │ │ │ └── file.py │ │ ├── multi.code-workspace │ │ ├── parent │ │ │ └── child │ │ │ │ ├── .vscode │ │ │ │ ├── settings.json │ │ │ │ └── tags │ │ │ │ ├── childFile.py │ │ │ │ └── file.py │ │ ├── workspace1 │ │ │ ├── .vscode │ │ │ │ ├── settings.json │ │ │ │ └── tags │ │ │ └── file.py │ │ ├── workspace2 │ │ │ ├── .vscode │ │ │ │ └── settings.json │ │ │ ├── file.py │ │ │ ├── workspace2.tags.file │ │ │ └── workspace2File.py │ │ └── workspace3 │ │ │ ├── .vscode │ │ │ └── settings.json │ │ │ ├── file.py │ │ │ └── workspace3.tags.file │ ├── performance │ │ ├── load.perf.test.ts │ │ ├── sample.py │ │ └── settings.json │ ├── performanceTest.ts │ ├── pipRequirements │ │ └── example-requirements.txt │ ├── proc.ts │ ├── providers │ │ ├── codeActionProvider │ │ │ ├── launchJsonCodeActionProvider.unit.test.ts │ │ │ ├── main.unit.test.ts │ │ │ └── pythonCodeActionsProvider.unit.test.ts │ │ ├── foldingProvider.test.ts │ │ ├── importSortProvider.unit.test.ts │ │ ├── repl.unit.test.ts │ │ ├── serviceRegistry.unit.test.ts │ │ ├── shebangCodeLenseProvider.unit.test.ts │ │ └── terminal.unit.test.ts │ ├── pythonEnvironments │ │ ├── discovery │ │ │ ├── globalenv.unit.test.ts │ │ │ ├── locators │ │ │ │ ├── cacheableLocatorService.unit.test.ts │ │ │ │ ├── condaEnvFileService.unit.test.ts │ │ │ │ ├── condaEnvService.unit.test.ts │ │ │ │ ├── condaHelper.unit.test.ts │ │ │ │ ├── condaService.unit.test.ts │ │ │ │ ├── hasProviderFactory.unit.test.ts │ │ │ │ ├── hashProvider.unit.test.ts │ │ │ │ ├── helpers.unit.test.ts │ │ │ │ ├── index.unit.test.ts │ │ │ │ ├── interpreterFilter.unit.test.ts │ │ │ │ ├── interpreterLocatorService.testvirtualenvs.ts │ │ │ │ ├── interpreterWatcherBuilder.unit.test.ts │ │ │ │ ├── knownPathService.unit.test.ts │ │ │ │ ├── pipEnvService.unit.test.ts │ │ │ │ ├── progressService.unit.test.ts │ │ │ │ ├── venv.unit.test.ts │ │ │ │ ├── windowsRegistryService.unit.test.ts │ │ │ │ ├── windowsStoreInterpreter.unit.test.ts │ │ │ │ ├── workspaceVirtualEnvService.test.ts │ │ │ │ ├── workspaceVirtualEnvService.unit.test.ts │ │ │ │ └── workspaceVirtualEnvWatcherService.unit.test.ts │ │ │ └── subenv.unit.test.ts │ │ └── info │ │ │ ├── executable.unit.test.ts │ │ │ ├── interpreter.unit.test.ts │ │ │ └── pythonVersion.unit.test.ts │ ├── pythonFiles │ │ ├── autocomp │ │ │ ├── deco.py │ │ │ ├── doc.py │ │ │ ├── five.py │ │ │ ├── four.py │ │ │ ├── hoverTest.py │ │ │ ├── imp.py │ │ │ ├── lamb.py │ │ │ ├── misc.py │ │ │ ├── one.py │ │ │ ├── pep484.py │ │ │ ├── pep526.py │ │ │ ├── suppress.py │ │ │ ├── three.py │ │ │ └── two.py │ │ ├── autoimport │ │ │ ├── one.py │ │ │ └── two │ │ │ │ ├── __init__.py │ │ │ │ └── three.py │ │ ├── datascience │ │ │ ├── simple_nb.ipynb │ │ │ └── simple_note_book.py │ │ ├── debugging │ │ │ ├── forever.py │ │ │ ├── logMessage.py │ │ │ ├── loopyTest.py │ │ │ ├── multiThread.py │ │ │ ├── printSysArgv.py │ │ │ ├── sample2.py │ │ │ ├── sample2WithoutSleep.py │ │ │ ├── sample3WithEx.py │ │ │ ├── sampleWithAssertEx.py │ │ │ ├── sampleWithSleep.py │ │ │ ├── simplePrint.py │ │ │ ├── stackFrame.py │ │ │ ├── startAndWait.py │ │ │ ├── stdErrOutput.py │ │ │ ├── stdOutOutput.py │ │ │ └── wait_for_file.py │ │ ├── definition │ │ │ ├── await.test.py │ │ │ ├── five.py │ │ │ ├── four.py │ │ │ ├── navigation │ │ │ │ ├── __init__.py │ │ │ │ ├── definitions.py │ │ │ │ └── usages.py │ │ │ ├── one.py │ │ │ ├── three.py │ │ │ └── two.py │ │ ├── docstrings │ │ │ └── one.py │ │ ├── dummy.py │ │ ├── environments │ │ │ ├── conda │ │ │ │ ├── Scripts │ │ │ │ │ └── conda.exe │ │ │ │ ├── bin │ │ │ │ │ └── python │ │ │ │ └── envs │ │ │ │ │ ├── numpy │ │ │ │ │ ├── bin │ │ │ │ │ │ └── python │ │ │ │ │ └── python.exe │ │ │ │ │ └── scipy │ │ │ │ │ ├── bin │ │ │ │ │ └── python │ │ │ │ │ └── python.exe │ │ │ ├── path1 │ │ │ │ ├── one │ │ │ │ ├── one.exe │ │ │ │ └── python.exe │ │ │ └── path2 │ │ │ │ ├── one │ │ │ │ ├── one.exe │ │ │ │ └── python.exe │ │ ├── exclusions │ │ │ ├── Lib │ │ │ │ ├── fileLib.py │ │ │ │ └── site-packages │ │ │ │ │ └── sitePackages.py │ │ │ ├── dir1 │ │ │ │ ├── dir1file.py │ │ │ │ └── dir2 │ │ │ │ │ └── dir2file.py │ │ │ └── one.py │ │ ├── folding │ │ │ ├── attach_server.py │ │ │ ├── empty.py │ │ │ ├── miscSamples.py │ │ │ ├── noComments.py │ │ │ ├── noDocStrings.py │ │ │ ├── visualstudio_ipython_repl.py │ │ │ ├── visualstudio_ipython_repl_double_quotes.py │ │ │ ├── visualstudio_py_debugger.py │ │ │ └── visualstudio_py_repl.py │ │ ├── formatting │ │ │ ├── autoPep8Formatted.py │ │ │ ├── autopep8.output │ │ │ ├── black.output │ │ │ ├── blackFormatted.py │ │ │ ├── dummy.ts │ │ │ ├── fileToFormat.py │ │ │ ├── fileToFormatOnEnter.py │ │ │ ├── formatWhenDirty.py │ │ │ ├── formatWhenDirtyResult.py │ │ │ ├── pythonGrammar.py │ │ │ ├── yapf.output │ │ │ └── yapfFormatted.py │ │ ├── hover │ │ │ ├── functionHover.py │ │ │ └── stringFormat.py │ │ ├── linting │ │ │ ├── file.py │ │ │ ├── flake8config │ │ │ │ ├── .flake8 │ │ │ │ └── file.py │ │ │ ├── minCheck.py │ │ │ ├── print.py │ │ │ ├── pycodestyleconfig │ │ │ │ ├── .pycodestyle │ │ │ │ └── file.py │ │ │ ├── pydocstyleconfig27 │ │ │ │ ├── .pydocstyle │ │ │ │ └── file.py │ │ │ ├── pylintconfig │ │ │ │ ├── .pylintrc │ │ │ │ ├── file.py │ │ │ │ └── file2.py │ │ │ └── threeLineLints.py │ │ ├── markdown │ │ │ ├── aifc.md │ │ │ ├── aifc.pydoc │ │ │ ├── anydbm.md │ │ │ ├── anydbm.pydoc │ │ │ ├── astroid.md │ │ │ ├── astroid.pydoc │ │ │ ├── scipy.md │ │ │ ├── scipy.pydoc │ │ │ ├── scipy.spatial.distance.md │ │ │ ├── scipy.spatial.distance.pydoc │ │ │ ├── scipy.spatial.md │ │ │ └── scipy.spatial.pydoc │ │ ├── refactoring │ │ │ ├── source folder │ │ │ │ ├── with empty line.py │ │ │ │ └── without empty line.py │ │ │ └── standAlone │ │ │ │ └── refactor.py │ │ ├── shebang │ │ │ ├── plain.py │ │ │ ├── shebang.py │ │ │ ├── shebangEnv.py │ │ │ └── shebangInvalid.py │ │ ├── signature │ │ │ ├── basicSig.py │ │ │ ├── classCtor.py │ │ │ ├── ellipsis.py │ │ │ └── noSigPy3.py │ │ ├── sorting │ │ │ ├── noconfig │ │ │ │ ├── after.py │ │ │ │ ├── before.py │ │ │ │ └── original.py │ │ │ └── withconfig │ │ │ │ ├── .isort.cfg │ │ │ │ ├── after.py │ │ │ │ ├── before.1.py │ │ │ │ ├── before.py │ │ │ │ ├── original.1.py │ │ │ │ └── original.py │ │ ├── symbolFiles │ │ │ ├── childFile.py │ │ │ ├── file.py │ │ │ └── workspace2File.py │ │ ├── terminalExec │ │ │ ├── sample1_normalized.py │ │ │ ├── sample1_raw.py │ │ │ ├── sample2_normalized.py │ │ │ ├── sample2_raw.py │ │ │ ├── sample3_normalized.py │ │ │ ├── sample3_raw.py │ │ │ ├── sample4_normalized.py │ │ │ ├── sample4_raw.py │ │ │ ├── sample5_normalized.py │ │ │ ├── sample5_raw.py │ │ │ ├── sample6_normalized.py │ │ │ ├── sample6_raw.py │ │ │ ├── sample7_normalized.py │ │ │ ├── sample7_raw.py │ │ │ ├── sample8_normalized.py │ │ │ ├── sample8_raw.py │ │ │ ├── sample_normalized.py │ │ │ └── sample_raw.py │ │ ├── testFiles │ │ │ ├── counter │ │ │ │ └── tests │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_unit_test_counter.py │ │ │ ├── cwd │ │ │ │ └── src │ │ │ │ │ └── tests │ │ │ │ │ └── test_cwd.py │ │ │ ├── debuggerTest │ │ │ │ └── tests │ │ │ │ │ ├── test_debugger_one.py │ │ │ │ │ ├── test_debugger_two.py │ │ │ │ │ ├── test_debugger_two.txt │ │ │ │ │ └── test_debugger_two.updated.txt │ │ │ ├── multi │ │ │ │ └── tests │ │ │ │ │ ├── more_tests │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_three.py │ │ │ │ │ ├── test_one.py │ │ │ │ │ └── test_two.py │ │ │ ├── noseFiles │ │ │ │ ├── five.output │ │ │ │ ├── four.output │ │ │ │ ├── one.output │ │ │ │ ├── run.five.output │ │ │ │ ├── run.five.result │ │ │ │ ├── run.four.output │ │ │ │ ├── run.four.result │ │ │ │ ├── run.one.output │ │ │ │ ├── run.one.result │ │ │ │ ├── run.three.output │ │ │ │ ├── run.three.result │ │ │ │ ├── run.two.again.result │ │ │ │ ├── run.two.output │ │ │ │ ├── run.two.result │ │ │ │ ├── specific │ │ │ │ │ ├── tst_unittest_one.py │ │ │ │ │ └── tst_unittest_two.py │ │ │ │ ├── test_root.py │ │ │ │ ├── tests │ │ │ │ │ ├── test4.py │ │ │ │ │ ├── test_unittest_one.py │ │ │ │ │ ├── test_unittest_two.py │ │ │ │ │ └── unittest_three_test.py │ │ │ │ ├── three.output │ │ │ │ └── two.output │ │ │ ├── pytestFiles │ │ │ │ └── results │ │ │ │ │ ├── five.output │ │ │ │ │ ├── five.xml │ │ │ │ │ ├── four.output │ │ │ │ │ ├── four.xml │ │ │ │ │ ├── one.output │ │ │ │ │ ├── one.xml │ │ │ │ │ ├── three.output │ │ │ │ │ ├── three.xml │ │ │ │ │ ├── two.again.xml │ │ │ │ │ ├── two.output │ │ │ │ │ └── two.xml │ │ │ ├── single │ │ │ │ ├── test_root.py │ │ │ │ └── tests │ │ │ │ │ └── test_one.py │ │ │ ├── specificTest │ │ │ │ └── tests │ │ │ │ │ ├── test_unittest_one.py │ │ │ │ │ └── test_unittest_two.py │ │ │ ├── standard │ │ │ │ ├── test_root.py │ │ │ │ └── tests │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── external.py │ │ │ │ │ ├── test_another_pytest.py │ │ │ │ │ ├── test_foreign_nested_tests.py │ │ │ │ │ ├── test_pytest.py │ │ │ │ │ ├── test_unittest_one.py │ │ │ │ │ ├── test_unittest_two.py │ │ │ │ │ └── unittest_three_test.py │ │ │ └── unittestsWithConfigs │ │ │ │ ├── other │ │ │ │ ├── test_pytest.py │ │ │ │ └── test_unittest_one.py │ │ │ │ ├── pytest.ini │ │ │ │ ├── test_root.py │ │ │ │ └── tests │ │ │ │ ├── test_another_pytest.py │ │ │ │ ├── test_pytest.py │ │ │ │ ├── test_unittest_one.py │ │ │ │ ├── test_unittest_two.py │ │ │ │ └── unittest_three_test.py │ │ └── typeFormatFiles │ │ │ ├── elseBlocks2.py │ │ │ ├── elseBlocks4.py │ │ │ ├── elseBlocksFirstLine2.py │ │ │ ├── elseBlocksFirstLine4.py │ │ │ ├── elseBlocksFirstLineTab.py │ │ │ ├── elseBlocksTab.py │ │ │ ├── tryBlocks2.py │ │ │ ├── tryBlocks4.py │ │ │ └── tryBlocksTab.py │ ├── refactor │ │ ├── extension.refactor.extract.method.test.ts │ │ ├── extension.refactor.extract.var.test.ts │ │ └── rename.test.ts │ ├── serviceRegistry.ts │ ├── smoke │ │ ├── common.ts │ │ ├── datascience.smoke.test.ts │ │ ├── languageServer.smoke.test.ts │ │ └── runInTerminal.smoke.test.ts │ ├── smokeTest.ts │ ├── sourceMapSupport.test.ts │ ├── sourceMapSupport.unit.test.ts │ ├── standardTest.ts │ ├── startPage │ │ ├── startPage.functional.test.tsx │ │ └── startPage.unit.test.ts │ ├── startupTelemetry.unit.test.ts │ ├── telemetry │ │ ├── envFileTelemetry.unit.test.ts │ │ ├── importTracker.unit.test.ts │ │ └── index.unit.test.ts │ ├── terminals │ │ ├── activation.unit.test.ts │ │ ├── codeExecution │ │ │ ├── codeExecutionManager.unit.test.ts │ │ │ ├── djangoShellCodeExect.unit.test.ts │ │ │ ├── helper.test.ts │ │ │ └── terminalCodeExec.unit.test.ts │ │ └── serviceRegistry.unit.test.ts │ ├── testBootstrap.ts │ ├── testLogger.ts │ ├── testRunner.ts │ ├── testing │ │ ├── argsService.test.ts │ │ ├── banners │ │ │ └── proposeNewLanguageServerBanner.unit.test.ts │ │ ├── codeLenses │ │ │ └── testFiles.unit.test.ts │ │ ├── common │ │ │ ├── argsHelper.unit.test.ts │ │ │ ├── debugLauncher.unit.test.ts │ │ │ ├── managers │ │ │ │ ├── baseTestManager.unit.test.ts │ │ │ │ └── testConfigurationManager.unit.test.ts │ │ │ ├── services │ │ │ │ ├── configSettingService.unit.test.ts │ │ │ │ ├── contextService.unit.test.ts │ │ │ │ ├── discoveredTestParser.unit.test.ts │ │ │ │ ├── discovery.unit.test.ts │ │ │ │ ├── storageService.unit.test.ts │ │ │ │ ├── testResultsService.unit.test.ts │ │ │ │ └── testStatusService.unit.test.ts │ │ │ ├── testUtils.unit.test.ts │ │ │ ├── testVisitors │ │ │ │ └── resultResetVisitor.unit.test.ts │ │ │ ├── trackEnablement.unit.test.ts │ │ │ └── xUnitParser.unit.test.ts │ │ ├── configuration.unit.test.ts │ │ ├── configurationFactory.unit.test.ts │ │ ├── debugger.test.ts │ │ ├── display │ │ │ ├── main.unit.test.ts │ │ │ ├── picker.functional.test.ts │ │ │ └── picker.unit.test.ts │ │ ├── explorer │ │ │ ├── explorerTestData.ts │ │ │ ├── failedTestHandler.unit.test.ts │ │ │ ├── testExplorerCommandHandler.unit.test.ts │ │ │ ├── testTreeViewItem.unit.test.ts │ │ │ ├── testTreeViewProvider.unit.test.ts │ │ │ └── treeView.unit.test.ts │ │ ├── helper.ts │ │ ├── main.unit.test.ts │ │ ├── mocks.ts │ │ ├── navigation │ │ │ ├── commandHandlers.unit.test.ts │ │ │ ├── fileNavigator.unit.test.ts │ │ │ ├── functionNavigator.unit.test.ts │ │ │ ├── helper.unit.test.ts │ │ │ ├── serviceRegistry.unit.test.ts │ │ │ ├── suiteNavigator.unit.test.ts │ │ │ └── symbolNavigator.unit.test.ts │ │ ├── nosetest │ │ │ ├── nosetest.argsService.unit.test.ts │ │ │ ├── nosetest.discovery.unit.test.ts │ │ │ ├── nosetest.disovery.test.ts │ │ │ ├── nosetest.run.test.ts │ │ │ └── nosetest.test.ts │ │ ├── pytest │ │ │ ├── pytest.argsService.unit.test.ts │ │ │ ├── pytest.discovery.test.ts │ │ │ ├── pytest.run.test.ts │ │ │ ├── pytest.test.ts │ │ │ ├── pytest.testMessageService.test.ts │ │ │ ├── pytest_run_tests_data.ts │ │ │ ├── pytest_unittest_parser_data.ts │ │ │ └── services │ │ │ │ └── discoveryService.unit.test.ts │ │ ├── rediscover.test.ts │ │ ├── results.ts │ │ ├── serviceRegistry.ts │ │ ├── stoppingDiscoverAndTest.test.ts │ │ └── unittest │ │ │ ├── unittest.argsService.unit.test.ts │ │ │ ├── unittest.diagnosticService.unit.test.ts │ │ │ ├── unittest.discovery.test.ts │ │ │ ├── unittest.discovery.unit.test.ts │ │ │ ├── unittest.run.test.ts │ │ │ ├── unittest.test.ts │ │ │ └── unittest.unit.test.ts │ ├── textUtils.ts │ ├── unittests.ts │ ├── utils │ │ ├── fs.ts │ │ └── interpreters.ts │ ├── vscode-mock.ts │ └── workspaceSymbols │ │ ├── common.ts │ │ ├── generator.unit.test.ts │ │ ├── main.unit.test.ts │ │ └── provider.unit.test.ts └── testMultiRootWkspc │ ├── disableLinters │ ├── .vscode │ │ └── tags │ └── file.py │ ├── multi.code-workspace │ ├── parent │ └── child │ │ ├── .vscode │ │ ├── settings.json │ │ └── tags │ │ ├── childFile.py │ │ └── file.py │ ├── smokeTests │ ├── .gitignore │ ├── definitions.py │ └── testExecInTerminal.py │ ├── workspace1 │ ├── .vscode │ │ ├── settings.json │ │ └── tags │ └── file.py │ ├── workspace2 │ ├── .vscode │ │ └── settings.json │ ├── file.py │ ├── workspace2.tags.file │ └── workspace2File.py │ ├── workspace3 │ ├── .vscode │ │ └── settings.json │ ├── file.py │ └── workspace3.tags.file │ ├── workspace4 │ ├── .env │ ├── .env2 │ ├── .env5 │ ├── .env6 │ ├── .vscode │ │ └── settings.json │ └── one.py │ └── workspace5 │ ├── .vscode │ └── settings.json │ ├── djangoApp │ ├── home │ │ ├── __init__.py │ │ ├── templates │ │ │ └── index.html │ │ ├── urls.py │ │ └── views.py │ ├── manage.py │ └── mysite │ │ ├── __init__.py │ │ ├── settings.py │ │ ├── urls.py │ │ └── wsgi.py │ ├── flaskApp │ ├── run.py │ └── templates │ │ └── index.html │ ├── hello │ ├── __init__.py │ └── world.py │ ├── mymod │ ├── __init__.py │ └── __main__.py │ ├── remoteDebugger-start-with-nowait.py │ ├── remoteDebugger-start.py │ └── remoteDebugger.py ├── syntaxes └── pip-requirements.tmLanguage.json ├── tsconfig.datascience-ui.json ├── tsconfig.extension.json ├── tsconfig.json ├── tsfmt.json ├── tslint.json ├── types ├── @nteract │ ├── transform-dataresource.d.ts │ ├── transform-geojson.d.ts │ ├── transform-model-debug.d.ts │ ├── transform-plotly.d.ts │ ├── transform-vsdom.d.ts │ └── transforms.d.ts ├── ansi-to-html.d.ts ├── react-data-grid.d.ts ├── react-svg-pan-zoom.d.ts ├── react-svgmt.d.ts ├── react-tabulator.d.ts ├── slickgrid │ ├── index.d.ts │ └── plugins │ │ ├── slick.autotooltips.d.ts │ │ ├── slick.checkboxselectcolumn.d.ts │ │ ├── slick.columnpicker.d.ts │ │ ├── slick.headerbuttons.d.ts │ │ └── slick.rowselectionmodel.d.ts ├── svg-inline-react.d.ts ├── vscode-proposed │ └── index.d.ts └── vscode.proposed.d.ts ├── typings ├── dom.fix.rx.compiler.d.ts ├── extensions.d.ts ├── index.d.ts └── vscode-proposed │ └── index.d.ts └── vscode-python-signing.csproj /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: http://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | # Tab indentation 7 | [*] 8 | indent_style = space 9 | indent_size = 4 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | 13 | # The indent size used in the `package.json` file cannot be changed 14 | # https://github.com/npm/npm/pull/3180#issuecomment-16336516 15 | [{.travis.yml,npm-shrinkwrap.json,package.json}] 16 | indent_style = space 17 | indent_size = 4 18 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | src/ipywidgets/* 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | package.json text eol=lf 2 | package-lock.json text eol=lf 3 | requirements.txt text eol=lf 4 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/4_feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: General feature request 3 | about: Suggest an idea for this project 4 | labels: classify, type-enhancement 5 | --- 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Stack Overflow 4 | url: https://stackoverflow.com/questions/tagged/visual-studio-code+python 5 | about: Please ask questions here. 6 | -------------------------------------------------------------------------------- /.github/lock.yml: -------------------------------------------------------------------------------- 1 | daysUntilLock: 7 2 | lockComment: false 3 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | @types:registry=https://registry.npmjs.org 2 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v12.15.0 2 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | singleQuote: true, 3 | printWidth: 120, 4 | tabWidth: 4, 5 | endOfLine: 'auto', 6 | trailingComma: 'none', 7 | overrides: [ 8 | { 9 | files: ['*.yml', '*.yaml'], 10 | options: { 11 | tabWidth: 2 12 | } 13 | }, 14 | { 15 | files: ['**/datascience/serviceRegistry.ts'], 16 | options: { 17 | printWidth: 240 18 | } 19 | } 20 | ] 21 | }; 22 | -------------------------------------------------------------------------------- /.sonarcloud.properties: -------------------------------------------------------------------------------- 1 | sonar.sources=src/client,src/datascience-ui 2 | sonar.exclusions=src/datascience-ui/**/codicon*.* 3 | sonar.tests=src/test 4 | sonar.cfamily.build-wrapper-output.bypass=true 5 | sonar.cpd.exclusions=src/datascience-ui/**/redux/actions.ts,src/client/**/raw-kernel/rawKernel.ts,src/client/datascience/jupyter/*ariable*.ts 6 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See https://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "ms-vscode.vscode-typescript-tslint-plugin", 6 | "editorconfig.editorconfig", 7 | "esbenp.prettier-vscode" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | This project has adopted the [Microsoft Open Source Code of 2 | Conduct](https://opensource.microsoft.com/codeofconduct/). 3 | For more information see the [Code of Conduct 4 | FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or 5 | contact [opencode@microsoft.com](mailto:opencode@microsoft.com) 6 | with any additional questions or comments. 7 | -------------------------------------------------------------------------------- /build/.mocha-multi-reporters.config: -------------------------------------------------------------------------------- 1 | { 2 | "reporterEnabled": "spec,mocha-junit-reporter" 3 | } 4 | -------------------------------------------------------------------------------- /build/.mocha.functional.json: -------------------------------------------------------------------------------- 1 | { 2 | "spec": "./out/test/**/*.functional.test.js", 3 | "require": ["out/test/unittests.js"], 4 | "exclude": "out/**/*.jsx", 5 | "reporter": "mocha-multi-reporters", 6 | "reporter-option": "configFile=build/.mocha-multi-reporters.config", 7 | "ui": "tdd", 8 | "recursive": true, 9 | "colors": true, 10 | "exit": true, 11 | "timeout": 180000 12 | } 13 | -------------------------------------------------------------------------------- /build/.mocha.functional.perf.json: -------------------------------------------------------------------------------- 1 | { 2 | "spec": "./out/test/**/*.functional.test.js", 3 | "exclude-out": "out/**/*.jsx", 4 | "require": ["out/test/unittests.js"], 5 | "reporter": "spec", 6 | "ui": "tdd", 7 | "recursive": true, 8 | "colors": true, 9 | "exit": true, 10 | "timeout": 180000 11 | } 12 | -------------------------------------------------------------------------------- /build/.mocha.perf.config: -------------------------------------------------------------------------------- 1 | { 2 | "reporterEnabled": "spec,xunit", 3 | "xunitReporterOptions": { 4 | "output": "xunit-test-results.xml" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /build/.mocha.performance.json: -------------------------------------------------------------------------------- 1 | { 2 | "spec": "./out/test/**/*.functional.test.js", 3 | "require": ["out/test/unittests.js"], 4 | "reporter": "mocha-multi-reporters", 5 | "reporter-option": "configFile=build/.mocha.perf.config", 6 | "ui": "tdd", 7 | "recursive": true, 8 | "colors": true, 9 | "exit": true, 10 | "timeout": 30000, 11 | "grep": "DataScience" 12 | } 13 | -------------------------------------------------------------------------------- /build/.mocha.unittests.js.json: -------------------------------------------------------------------------------- 1 | { 2 | "spec": "./out/test/**/*.unit.test.js", 3 | "require": ["source-map-support/register", "out/test/unittests.js"], 4 | "reporter": "mocha-multi-reporters", 5 | "reporter-option": "configFile=build/.mocha-multi-reporters.config", 6 | "ui": "tdd", 7 | "recursive": true, 8 | "colors": true 9 | } 10 | -------------------------------------------------------------------------------- /build/.mocha.unittests.json: -------------------------------------------------------------------------------- 1 | { 2 | "spec": "./out/test/**/*.unit.test.js", 3 | "require": ["out/test/unittests.js"], 4 | "reporter": "mocha-multi-reporters", 5 | "reporter-option": "configFile=build/.mocha-multi-reporters.config", 6 | "ui": "tdd", 7 | "recursive": true, 8 | "colors": true 9 | } 10 | -------------------------------------------------------------------------------- /build/.mocha.unittests.ts.json: -------------------------------------------------------------------------------- 1 | { 2 | "spec": "./src/test/**/*.unit.test.ts", 3 | "require": ["ts-node/register", "out/test/unittests.js"], 4 | "reporter": "mocha-multi-reporters", 5 | "reporter-option": "configFile=build/.mocha-multi-reporters.config", 6 | "ui": "tdd", 7 | "recursive": true, 8 | "colors": true 9 | } 10 | -------------------------------------------------------------------------------- /build/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@istanbuljs/nyc-config-typescript", 3 | "all": true, 4 | "include": [ 5 | "src/client/**/*.ts", "src/test/**/*.js", 6 | "src/datascience-ui/**/*.ts", "src/datascience-ui/**/*.js" 7 | ], 8 | "exclude": ["src/test/**/*.ts", "src/test/**/*.js"] 9 | } -------------------------------------------------------------------------------- /build/ci/TSAOptions.json: -------------------------------------------------------------------------------- 1 | { 2 | "projectName": "PVSC", 3 | "areaPath": "PVSC\\Security", 4 | "iterationPath": "PVSC", 5 | "allTools": true 6 | } 7 | -------------------------------------------------------------------------------- /build/ci/codecov.yml: -------------------------------------------------------------------------------- 1 | codecov: 2 | notify: 3 | require_ci_to_pass: yes 4 | 5 | coverage: 6 | precision: 0 7 | round: down 8 | range: '70...100' 9 | 10 | status: 11 | project: yes 12 | patch: yes 13 | changes: no 14 | 15 | parsers: 16 | gcov: 17 | branch_detection: 18 | conditional: yes 19 | loop: yes 20 | method: no 21 | macro: no 22 | 23 | comment: 24 | branch: !release* 25 | layout: 'header, diff, files' 26 | behavior: default 27 | require_changes: no 28 | -------------------------------------------------------------------------------- /build/ci/conda_base.yml: -------------------------------------------------------------------------------- 1 | pandas 2 | jupyter 3 | numpy 4 | matplotlib 5 | pip 6 | -------------------------------------------------------------------------------- /build/ci/conda_env_1.yml: -------------------------------------------------------------------------------- 1 | name: conda_env_1 2 | dependencies: 3 | - python=3.7 4 | - pandas 5 | - jupyter 6 | - numpy 7 | - matplotlib 8 | - pip 9 | -------------------------------------------------------------------------------- /build/ci/conda_env_2.yml: -------------------------------------------------------------------------------- 1 | name: conda_env_2 2 | dependencies: 3 | - python=3.8 4 | - pandas 5 | - jupyter 6 | - numpy 7 | - matplotlib 8 | - pip 9 | -------------------------------------------------------------------------------- /build/ci/templates/jobs/coverage.yml: -------------------------------------------------------------------------------- 1 | jobs: 2 | - job: Coverage 3 | pool: 4 | vmImage: 'ubuntu-16.04' 5 | variables: 6 | TestsToRun: 'testUnitTests' 7 | steps: 8 | - template: ../steps/merge_upload_coverage.yml 9 | -------------------------------------------------------------------------------- /build/ci/templates/steps/compile.yml: -------------------------------------------------------------------------------- 1 | # Compiles the source 2 | 3 | steps: 4 | - template: initialization.yml 5 | parameters: 6 | PythonVersion: $(PythonVersion) 7 | workingDirectory: $(Build.SourcesDirectory) 8 | compile: 'false' 9 | installVSCEorNPX: 'false' 10 | 11 | - task: Gulp@0 12 | displayName: 'Compile and check for errors' 13 | inputs: 14 | targets: 'prePublishNonBundle' 15 | -------------------------------------------------------------------------------- /build/conda-functional-requirements.txt: -------------------------------------------------------------------------------- 1 | # List of requirements for conda environments that cannot be installed using conda 2 | livelossplot 3 | versioneer 4 | flake8 5 | autopep8 6 | bandit 7 | black ; python_version>='3.6' 8 | yapf 9 | pylint 10 | pycodestyle 11 | pydocstyle 12 | nose 13 | pytest==4.6.9 # Last version of pytest with Python 2.7 support 14 | rope 15 | flask 16 | django 17 | isort 18 | pathlib2>=2.2.0 ; python_version<'3.6' # Python 2.7 compatibility (pytest) 19 | pythreejs 20 | ipysheet 21 | ipyvolume 22 | beakerx 23 | py4j 24 | bqplot 25 | K3D 26 | debugpy -------------------------------------------------------------------------------- /build/constants.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | 5 | const util = require('./util'); 6 | exports.ExtensionRootDir = util.ExtensionRootDir; 7 | // This is a list of files that existed before MS got the extension. 8 | exports.existingFiles = util.getListOfFiles('existingFiles.json'); 9 | exports.contributedFiles = util.getListOfFiles('contributedFiles.json'); 10 | exports.isWindows = /^win/.test(process.platform); 11 | exports.isCI = process.env.TRAVIS === 'true' || process.env.TF_BUILD !== undefined; 12 | -------------------------------------------------------------------------------- /build/contributedFiles.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /build/debugger-install-requirements.txt: -------------------------------------------------------------------------------- 1 | # Requirements needed to run install_debugpy.py 2 | packaging 3 | -------------------------------------------------------------------------------- /build/functional-test-requirements.txt: -------------------------------------------------------------------------------- 1 | # List of requirements for functional tests 2 | versioneer 3 | -------------------------------------------------------------------------------- /build/ipython-test-requirements.txt: -------------------------------------------------------------------------------- 1 | # List of requirements for ipython tests 2 | numpy 3 | pandas 4 | ipython 5 | -------------------------------------------------------------------------------- /build/test-requirements.txt: -------------------------------------------------------------------------------- 1 | # Install flake8 first, as both flake8 and autopep8 require pycodestyle, 2 | # but flake8 has a tighter pinning. 3 | flake8 4 | autopep8 5 | bandit 6 | black ; python_version>='3.6' 7 | yapf 8 | pylint 9 | pycodestyle 10 | prospector==1.2.0 # Last version of prospector with Python 2.7 support 11 | pydocstyle 12 | nose 13 | pytest==4.6.9 # Last version of pytest with Python 2.7 support 14 | py==1.8.1 15 | rope 16 | flask 17 | django 18 | isort 19 | pathlib2>=2.2.0 ; python_version<'3.6' # Python 2.7 compatibility (pytest) 20 | -------------------------------------------------------------------------------- /build/webpack/loaders/jsonloader.js: -------------------------------------------------------------------------------- 1 | // For some reason this has to be in commonjs format 2 | 3 | module.exports = function (source) { 4 | // Just inline the source and fix up defaults so that they don't 5 | // mess up the logic in the setOptions.js file 6 | return `module.exports = ${source}\nmodule.exports.default = false`; 7 | }; 8 | -------------------------------------------------------------------------------- /build/webpack/loaders/remarkLoader.js: -------------------------------------------------------------------------------- 1 | // For some reason this has to be in commonjs format 2 | 3 | module.exports = function (source) { 4 | // Just inline the source and fix up defaults so that they don't 5 | // mess up the logic in the setOptions.js file 6 | return `module.exports = ${source}\nmodule.exports.default = false`; 7 | }; 8 | -------------------------------------------------------------------------------- /build/webpack/nativeOrInteractivePicker.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Click here to Open Native Editor
6 | Click here to Open Interactive Window 7 | 8 | 9 | -------------------------------------------------------------------------------- /build/webpack/pdfkit.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | /* 7 | This file is only used when using webpack for bundling. 8 | We have a dummy file so that webpack doesn't fall over when trying to bundle pdfkit. 9 | Just point it to a dummy file (this file). 10 | Once webpack is done, we override the pdfkit.js file in the externalized node modules directory 11 | with the actual source of pdfkit that needs to be used by nodejs (our extension code). 12 | */ 13 | 14 | class PDFDocument {} 15 | module.exports = PDFDocument; 16 | -------------------------------------------------------------------------------- /build/webpack/webpack.datascience-ui-notebooks.config.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | const builder = require('./webpack.datascience-ui.config.builder'); 7 | module.exports = [builder.notebooks]; 8 | -------------------------------------------------------------------------------- /build/webpack/webpack.datascience-ui-renderers.config.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | const builder = require('./webpack.datascience-ui.config.builder'); 7 | module.exports = [builder.renderers]; 8 | -------------------------------------------------------------------------------- /build/webpack/webpack.datascience-ui-viewers.config.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | const builder = require('./webpack.datascience-ui.config.builder'); 7 | module.exports = [builder.viewers]; 8 | -------------------------------------------------------------------------------- /build/webpack/webpack.datascience-ui.config.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | const builder = require('./webpack.datascience-ui.config.builder'); 7 | module.exports = [builder.notebooks, builder.viewers]; 8 | -------------------------------------------------------------------------------- /customEditor.json: -------------------------------------------------------------------------------- 1 | { 2 | "activationEvents": [ 3 | "onCustomEditor:ms-python.python.notebook.ipynb" 4 | ], 5 | "contributes": { 6 | "customEditors": [ 7 | { 8 | "viewType": "ms-python.python.notebook.ipynb", 9 | "displayName": "Jupyter Notebook", 10 | "selector": [ 11 | { 12 | "filenamePattern": "*.ipynb" 13 | } 14 | ], 15 | "priority": "default" 16 | } 17 | ] 18 | } 19 | } -------------------------------------------------------------------------------- /data/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.pythonPath": "/usr/bin/python3" 3 | } 4 | -------------------------------------------------------------------------------- /data/test.py: -------------------------------------------------------------------------------- 1 | #%% 2 | print('hello') 3 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/icon.png -------------------------------------------------------------------------------- /images/ConfigureDebugger.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/images/ConfigureDebugger.gif -------------------------------------------------------------------------------- /images/ConfigureTests.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/images/ConfigureTests.gif -------------------------------------------------------------------------------- /images/InterpreterSelectionZoom.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/images/InterpreterSelectionZoom.gif -------------------------------------------------------------------------------- /images/JavascriptProfiler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/images/JavascriptProfiler.png -------------------------------------------------------------------------------- /images/OpenOrCreateNotebook.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/images/OpenOrCreateNotebook.gif -------------------------------------------------------------------------------- /images/dataviewer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/images/dataviewer.gif -------------------------------------------------------------------------------- /images/debugDemo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/images/debugDemo.gif -------------------------------------------------------------------------------- /images/general.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/images/general.gif -------------------------------------------------------------------------------- /images/interactive.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/images/interactive.gif -------------------------------------------------------------------------------- /images/kernelchange.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/images/kernelchange.gif -------------------------------------------------------------------------------- /images/plotviewer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/images/plotviewer.gif -------------------------------------------------------------------------------- /images/remoteserver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/images/remoteserver.gif -------------------------------------------------------------------------------- /images/runbyline.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/images/runbyline.gif -------------------------------------------------------------------------------- /images/savetopythonfile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/images/savetopythonfile.png -------------------------------------------------------------------------------- /images/unittest.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/images/unittest.gif -------------------------------------------------------------------------------- /images/variableexplorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/images/variableexplorer.png -------------------------------------------------------------------------------- /languages/pip-requirements.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /news/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.languageServer": "Microsoft", 3 | "python.formatting.provider": "black", 4 | "editor.formatOnSave": true, 5 | "python.testing.pytestArgs": ["."], 6 | "python.testing.unittestEnabled": false, 7 | "python.testing.nosetestsEnabled": false, 8 | "python.testing.pytestEnabled": true 9 | } 10 | -------------------------------------------------------------------------------- /news/1 Enhancements/10496.md: -------------------------------------------------------------------------------- 1 | Opening notebooks in the preview Notebook editor for [Visual Studio Code Insiders](https://code.visualstudio.com/insiders/). 2 | * Install Python extension in the latest [Visual Studio Code Insiders](https://code.visualstudio.com/insiders/). 3 | * Wait for `Python Extension` to get activated (e.g. open a `Python` file). 4 | * Right click on an `*.ipynb (Jupyter Notebook)` file and select `Open in preview Notebook Editor`. 5 | -------------------------------------------------------------------------------- /news/1 Enhancements/12414.md: -------------------------------------------------------------------------------- 1 | Add cell editing shortcuts for python interactive cells. Thanks [@earthastronaut](https://github.com/earthastronaut/)! 2 | -------------------------------------------------------------------------------- /news/1 Enhancements/12827.md: -------------------------------------------------------------------------------- 1 | Allow `python.dataScience.runStartupCommands` to be an array. (thanks @janosh) 2 | -------------------------------------------------------------------------------- /news/1 Enhancements/12828.md: -------------------------------------------------------------------------------- 1 | Remember remote kernel ids when reopening notebooks. -------------------------------------------------------------------------------- /news/1 Enhancements/12959.md: -------------------------------------------------------------------------------- 1 | The file explorer dialog now has an appropriate title when browsing for an interpreter. (thanks [ziebam](https://github.com/ziebam)) 2 | -------------------------------------------------------------------------------- /news/1 Enhancements/12980.md: -------------------------------------------------------------------------------- 1 | Warn users if they are connecting over http without a token. -------------------------------------------------------------------------------- /news/1 Enhancements/12988.md: -------------------------------------------------------------------------------- 1 | Allow a custom display string for remote servers as part of the remote Jupyter server provider extensibility point. 2 | -------------------------------------------------------------------------------- /news/1 Enhancements/13037.md: -------------------------------------------------------------------------------- 1 | Update to the latest version of [`jedi`](https://github.com/davidhalter/jedi) (`0.17.2`). This adds support for Python 3.9 and fixes some bugs, but is expected to be the last release to support Python 2.7 and 3.5. (thanks [Peter Law](https://github.com/PeterJCLaw/)) 2 | -------------------------------------------------------------------------------- /news/1 Enhancements/13122.md: -------------------------------------------------------------------------------- 1 | Expose `Pylance` setting in `python.languageServer`. If [Pylance extension](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance) is not installed, prompt user to install it. 2 | -------------------------------------------------------------------------------- /news/1 Enhancements/13218.md: -------------------------------------------------------------------------------- 1 | Added "pythonArgs" to debugpy launch.json schema. 2 | -------------------------------------------------------------------------------- /news/1 Enhancements/13259.md: -------------------------------------------------------------------------------- 1 | Use jupyter inspect to get signature of dynamic functions in notebook editor when language server doesn't provide enough hint. 2 | -------------------------------------------------------------------------------- /news/1 Enhancements/3073.md: -------------------------------------------------------------------------------- 1 | Add "Restart Language Server" command 2 | -------------------------------------------------------------------------------- /news/1 Enhancements/3104.md: -------------------------------------------------------------------------------- 1 | Support multiple and per file interactive windows. See the description for the new 'python.dataScience.interactiveWindowMode' setting. -------------------------------------------------------------------------------- /news/1 Enhancements/README.md: -------------------------------------------------------------------------------- 1 | Changes that add new features. 2 | 3 | -------------------------------------------------------------------------------- /news/2 Fixes/10924.md: -------------------------------------------------------------------------------- 1 | Gathered notebooks will now use the same kernelspec as the notebook it was created from. 2 | -------------------------------------------------------------------------------- /news/2 Fixes/11122.md: -------------------------------------------------------------------------------- 1 | Check for hideFromUser before activating current terminal. 2 | -------------------------------------------------------------------------------- /news/2 Fixes/11743.md: -------------------------------------------------------------------------------- 1 | Don't loop selection through all failed tests every time tests are run. 2 | -------------------------------------------------------------------------------- /news/2 Fixes/11875.md: -------------------------------------------------------------------------------- 1 | Some tools (like pytest) rely on the existence of `sys.path[0]`, so 2 | deleting it in the isolation script can sometimes cause problems. The 3 | solution is to point `sys.path[0]` to a bogus directory that we know 4 | does not exist (assuming noone modifies the extension install dir). 5 | -------------------------------------------------------------------------------- /news/2 Fixes/12202.md: -------------------------------------------------------------------------------- 1 | Fix missing css for some ipywidget output. -------------------------------------------------------------------------------- /news/2 Fixes/12510.md: -------------------------------------------------------------------------------- 1 | Delete backing untitled ipynb notebook files as soon as the remote session has been created. 2 | 3 | -------------------------------------------------------------------------------- /news/2 Fixes/12766.md: -------------------------------------------------------------------------------- 1 | Make the data science variable explorer support high contrast color theme. -------------------------------------------------------------------------------- /news/2 Fixes/12821.md: -------------------------------------------------------------------------------- 1 | Use the given interpreter for launching the non-daemon python -------------------------------------------------------------------------------- /news/2 Fixes/12833.md: -------------------------------------------------------------------------------- 1 | The change in PR #12795 led to one particular test suite to take longer 2 | to run. Here we increase the timeout for that suite to get the test 3 | passing. 4 | -------------------------------------------------------------------------------- /news/2 Fixes/12931.md: -------------------------------------------------------------------------------- 1 | Refactor data science filesystem usage to correctly handle files which are potentially remote. 2 | -------------------------------------------------------------------------------- /news/2 Fixes/12987.md: -------------------------------------------------------------------------------- 1 | Allow custom Jupyter server URI providers to have an expiration on their authorization headers. -------------------------------------------------------------------------------- /news/2 Fixes/13106.md: -------------------------------------------------------------------------------- 1 | If a webpanel fails to load, dispose our webviewhost so that it can try again. -------------------------------------------------------------------------------- /news/2 Fixes/13117.md: -------------------------------------------------------------------------------- 1 | Ensure terminal is not shown or activated if hideFromUser is set to true. 2 | -------------------------------------------------------------------------------- /news/2 Fixes/13124.md: -------------------------------------------------------------------------------- 1 | Do not automatically start kernel for untrusted notebooks. 2 | -------------------------------------------------------------------------------- /news/2 Fixes/13156.md: -------------------------------------------------------------------------------- 1 | Fix settings links to open correctly in the notebook editor. -------------------------------------------------------------------------------- /news/2 Fixes/13165.md: -------------------------------------------------------------------------------- 1 | "a" and "b" Jupyter shortcuts should not automatically enter edit mode. 2 | -------------------------------------------------------------------------------- /news/2 Fixes/13172.md: -------------------------------------------------------------------------------- 1 | Scope custom notebook keybindings to Jupyter Notebooks. 2 | -------------------------------------------------------------------------------- /news/2 Fixes/13205.md: -------------------------------------------------------------------------------- 1 | Rename "Count" column in variable explorer to "Size". 2 | -------------------------------------------------------------------------------- /news/2 Fixes/13235.md: -------------------------------------------------------------------------------- 1 | Handle `Save As` of preview Notebooks. 2 | -------------------------------------------------------------------------------- /news/2 Fixes/README.md: -------------------------------------------------------------------------------- 1 | Changes that fix broken behaviour. 2 | -------------------------------------------------------------------------------- /news/3 Code Health/10772.md: -------------------------------------------------------------------------------- 1 | Move non-mock jupyter nightly tests to use raw kernel by default. -------------------------------------------------------------------------------- /news/3 Code Health/12554.md: -------------------------------------------------------------------------------- 1 | Add tests for trusted notebooks. 2 | -------------------------------------------------------------------------------- /news/3 Code Health/12809.md: -------------------------------------------------------------------------------- 1 | Add new services to data science IOC container and rename misspelled service. -------------------------------------------------------------------------------- /news/3 Code Health/12844.md: -------------------------------------------------------------------------------- 1 | Update categories in `package.json`. 2 | -------------------------------------------------------------------------------- /news/3 Code Health/12893.md: -------------------------------------------------------------------------------- 1 | Disable Notebook icons when Notebook is not trusted. 2 | -------------------------------------------------------------------------------- /news/3 Code Health/12919.md: -------------------------------------------------------------------------------- 1 | Removed control tower code for the start page. 2 | -------------------------------------------------------------------------------- /news/3 Code Health/12966.md: -------------------------------------------------------------------------------- 1 | Add better tests for trusted notebooks in the classic notebook editor. 2 | -------------------------------------------------------------------------------- /news/3 Code Health/12977.md: -------------------------------------------------------------------------------- 1 | Custom renderers for `png/jpeg` images in `Notebooks`. 2 | -------------------------------------------------------------------------------- /news/3 Code Health/13075.md: -------------------------------------------------------------------------------- 1 | Fix broken nightly variable explorer tests. -------------------------------------------------------------------------------- /news/3 Code Health/13171.md: -------------------------------------------------------------------------------- 1 | Fix nightly flake test failures for startup and shutdown native editor test. -------------------------------------------------------------------------------- /news/3 Code Health/13269.md: -------------------------------------------------------------------------------- 1 | Fix failing interactive window and variable explorer tests. -------------------------------------------------------------------------------- /news/3 Code Health/README.md: -------------------------------------------------------------------------------- 1 | Changes that should not be user-facing. 2 | -------------------------------------------------------------------------------- /news/__main__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | 4 | import runpy 5 | 6 | runpy.run_module('announce', run_name='__main__', alter_sys=True) 7 | -------------------------------------------------------------------------------- /news/requirements.in: -------------------------------------------------------------------------------- 1 | docopt 2 | pytest 3 | -------------------------------------------------------------------------------- /pythonFiles/.env: -------------------------------------------------------------------------------- 1 | PYTHONPATH=./lib/python 2 | -------------------------------------------------------------------------------- /pythonFiles/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.exclude": { 3 | "**/__pycache__/**": true, 4 | "**/**/*.pyc": true 5 | }, 6 | "python.formatting.provider": "black" 7 | } 8 | -------------------------------------------------------------------------------- /pythonFiles/interpreterInfo.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | 4 | import json 5 | import sys 6 | 7 | obj = {} 8 | obj["versionInfo"] = tuple(sys.version_info) 9 | obj["sysPrefix"] = sys.prefix 10 | obj["version"] = sys.version 11 | obj["is64Bit"] = sys.maxsize > 2 ** 32 12 | 13 | print(json.dumps(obj)) 14 | -------------------------------------------------------------------------------- /pythonFiles/printEnvVariables.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | 4 | import os 5 | import json 6 | 7 | print(json.dumps(dict(os.environ))) 8 | -------------------------------------------------------------------------------- /pythonFiles/printEnvVariablesToFile.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | 4 | import os 5 | import json 6 | import sys 7 | 8 | 9 | # Last argument is the target file into which we'll write the env variables as json. 10 | json_file = sys.argv[-1] 11 | 12 | with open(json_file, "w") as outfile: 13 | json.dump(dict(os.environ), outfile) 14 | -------------------------------------------------------------------------------- /pythonFiles/pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.black] 2 | exclude = ''' 3 | 4 | ( 5 | /( 6 | .data 7 | | .vscode 8 | | lib 9 | )/ 10 | ) 11 | ''' 12 | -------------------------------------------------------------------------------- /pythonFiles/testing_tools/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | -------------------------------------------------------------------------------- /pythonFiles/testing_tools/adapter/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | -------------------------------------------------------------------------------- /pythonFiles/testing_tools/adapter/errors.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | 4 | 5 | class UnsupportedToolError(ValueError): 6 | def __init__(self, tool): 7 | msg = "unsupported tool {!r}".format(tool) 8 | super(UnsupportedToolError, self).__init__(msg) 9 | self.tool = tool 10 | 11 | 12 | class UnsupportedCommandError(ValueError): 13 | def __init__(self, cmd): 14 | msg = "unsupported cmd {!r}".format(cmd) 15 | super(UnsupportedCommandError, self).__init__(msg) 16 | self.cmd = cmd 17 | -------------------------------------------------------------------------------- /pythonFiles/testing_tools/adapter/pytest/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | 4 | from __future__ import absolute_import 5 | 6 | from ._cli import add_subparser as add_cli_subparser 7 | from ._discovery import discover 8 | -------------------------------------------------------------------------------- /pythonFiles/testing_tools/adapter/pytest/_cli.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | 4 | from __future__ import absolute_import 5 | 6 | from ..errors import UnsupportedCommandError 7 | 8 | 9 | def add_subparser(cmd, name, parent): 10 | """Add a new subparser to the given parent and add args to it.""" 11 | parser = parent.add_parser(name) 12 | if cmd == "discover": 13 | # For now we don't have any tool-specific CLI options to add. 14 | pass 15 | else: 16 | raise UnsupportedCommandError(cmd) 17 | return parser 18 | -------------------------------------------------------------------------------- /pythonFiles/testing_tools/run_adapter.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | 4 | # Replace the "." entry. 5 | import os.path 6 | import sys 7 | 8 | sys.path.insert( 9 | 1, 10 | os.path.dirname( # pythonFiles 11 | os.path.dirname( # pythonFiles/testing_tools 12 | os.path.abspath(__file__) # this file 13 | ) 14 | ), 15 | ) 16 | 17 | from testing_tools.adapter.__main__ import parse_args, main 18 | 19 | 20 | if __name__ == "__main__": 21 | tool, cmd, subargs, toolargs = parse_args() 22 | main(tool, cmd, subargs, toolargs) 23 | -------------------------------------------------------------------------------- /pythonFiles/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | import os.path 4 | 5 | TEST_ROOT = os.path.dirname(__file__) 6 | SRC_ROOT = os.path.dirname(TEST_ROOT) 7 | PROJECT_ROOT = os.path.dirname(SRC_ROOT) 8 | IPYTHON_ROOT = os.path.join(SRC_ROOT, "ipython") 9 | TESTING_TOOLS_ROOT = os.path.join(SRC_ROOT, "testing_tools") 10 | DEBUG_ADAPTER_ROOT = os.path.join(SRC_ROOT, "debug_adapter") 11 | 12 | PYTHONFILES = os.path.join(SRC_ROOT, "lib", "python") 13 | -------------------------------------------------------------------------------- /pythonFiles/tests/debug_adapter/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | -------------------------------------------------------------------------------- /pythonFiles/tests/ipython/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | -------------------------------------------------------------------------------- /pythonFiles/tests/run_all.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | 4 | # Replace the "." entry. 5 | import os.path 6 | import sys 7 | 8 | sys.path[0] = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 9 | 10 | from tests.__main__ import main, parse_args 11 | 12 | 13 | if __name__ == "__main__": 14 | mainkwargs, pytestargs = parse_args() 15 | ec = main(pytestargs, **mainkwargs) 16 | sys.exit(ec) 17 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/NormCase/tests/A/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/pythonFiles/tests/testing_tools/adapter/.data/NormCase/tests/A/__init__.py -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/NormCase/tests/A/b/C/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/pythonFiles/tests/testing_tools/adapter/.data/NormCase/tests/A/b/C/__init__.py -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/NormCase/tests/A/b/C/test_Spam.py: -------------------------------------------------------------------------------- 1 | 2 | def test_okay(): 3 | assert True 4 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/NormCase/tests/A/b/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/pythonFiles/tests/testing_tools/adapter/.data/NormCase/tests/A/b/__init__.py -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/NormCase/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/pythonFiles/tests/testing_tools/adapter/.data/NormCase/tests/__init__.py -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/pythonFiles/tests/testing_tools/adapter/.data/complex/tests/__init__.py -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/spam.py: -------------------------------------------------------------------------------- 1 | 2 | def test_simple(): 3 | assert True 4 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/test_42-43.py: -------------------------------------------------------------------------------- 1 | 2 | def test_simple(): 3 | assert True 4 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/test_42.py: -------------------------------------------------------------------------------- 1 | 2 | def test_simple(): 3 | assert True 4 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/test_doctest.py: -------------------------------------------------------------------------------- 1 | """ 2 | Doctests: 3 | 4 | >>> 1 == 1 5 | True 6 | """ 7 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/test_doctest.txt: -------------------------------------------------------------------------------- 1 | 2 | assignment & lookup: 3 | 4 | >>> x = 3 5 | >>> x 6 | 3 7 | 8 | deletion: 9 | 10 | >>> del x 11 | >>> x 12 | Traceback (most recent call last): 13 | ... 14 | NameError: name 'x' is not defined 15 | 16 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/test_foo.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | def test_simple(): 4 | assert True 5 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/test_mixed.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | import unittest 3 | 4 | 5 | def test_top_level(): 6 | assert True 7 | 8 | 9 | @pytest.mark.skip 10 | def test_skipped(): 11 | assert False 12 | 13 | 14 | class TestMySuite(object): 15 | 16 | def test_simple(self): 17 | assert True 18 | 19 | 20 | class MyTests(unittest.TestCase): 21 | 22 | def test_simple(self): 23 | assert True 24 | 25 | @pytest.mark.skip 26 | def test_skipped(self): 27 | assert False 28 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/test_pytest_param.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | 3 | 4 | # module-level parameterization 5 | pytestmark = pytest.mark.parametrize('x', [(1,), (1.0,), (1+0j,)]) 6 | 7 | 8 | def test_param_13(x): 9 | assert x == 1 10 | 11 | 12 | class TestParamAll(object): 13 | 14 | def test_param_13(self, x): 15 | assert x == 1 16 | 17 | def test_spam_13(self, x): 18 | assert x == 1 19 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/testspam.py: -------------------------------------------------------------------------------- 1 | ''' 2 | ... 3 | ... 4 | ... 5 | ''' 6 | 7 | 8 | def test_simple(): 9 | assert True 10 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/v/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/pythonFiles/tests/testing_tools/adapter/.data/complex/tests/v/__init__.py -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/v/spam.py: -------------------------------------------------------------------------------- 1 | 2 | def test_simple(self): 3 | assert True 4 | 5 | 6 | class TestSimple(object): 7 | 8 | def test_simple(self): 9 | assert True 10 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/v/test_eggs.py: -------------------------------------------------------------------------------- 1 | from .spam import * 2 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/v/test_ham.py: -------------------------------------------------------------------------------- 1 | from .spam import test_simple 2 | from .spam import test_simple as test_not_hard 3 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/v/test_spam.py: -------------------------------------------------------------------------------- 1 | from .spam import test_simple 2 | 3 | 4 | def test_simpler(self): 5 | assert True 6 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/w/test_spam.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | def test_simple(): 5 | assert True 6 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/w/test_spam_ex.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | def test_simple(): 5 | assert True 6 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/x/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/pythonFiles/tests/testing_tools/adapter/.data/complex/tests/x/__init__.py -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/x/y/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/pythonFiles/tests/testing_tools/adapter/.data/complex/tests/x/y/__init__.py -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/x/y/z/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/pythonFiles/tests/testing_tools/adapter/.data/complex/tests/x/y/z/__init__.py -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/x/y/z/a/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/pythonFiles/tests/testing_tools/adapter/.data/complex/tests/x/y/z/a/__init__.py -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/x/y/z/a/test_spam.py: -------------------------------------------------------------------------------- 1 | """ 2 | ... 3 | """ 4 | 5 | 6 | # ... 7 | 8 | ANSWER = 42 9 | 10 | 11 | def test_simple(): 12 | assert True 13 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/x/y/z/b/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/pythonFiles/tests/testing_tools/adapter/.data/complex/tests/x/y/z/b/__init__.py -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/x/y/z/b/test_spam.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | # ?!? 4 | CHORUS = 'spamspamspamspamspam...' 5 | 6 | 7 | def test_simple(): 8 | assert True 9 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/complex/tests/x/y/z/test_ham.py: -------------------------------------------------------------------------------- 1 | 2 | def test_simple(): 3 | assert True 4 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/notests/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/pythonFiles/tests/testing_tools/adapter/.data/notests/tests/__init__.py -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/simple/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/pythonFiles/tests/testing_tools/adapter/.data/simple/tests/__init__.py -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/simple/tests/test_spam.py: -------------------------------------------------------------------------------- 1 | 2 | def test_simple(): 3 | assert True 4 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/syntax-error/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/pythonFiles/tests/testing_tools/adapter/.data/syntax-error/tests/__init__.py -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/.data/syntax-error/tests/test_spam.py: -------------------------------------------------------------------------------- 1 | 2 | def test_simple(): 3 | assert True 4 | 5 | 6 | # A syntax error: 7 | : 8 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | -------------------------------------------------------------------------------- /pythonFiles/tests/testing_tools/adapter/pytest/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | -------------------------------------------------------------------------------- /pythonFiles/vscode_datascience_helpers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | -------------------------------------------------------------------------------- /pythonFiles/vscode_datascience_helpers/daemon/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | -------------------------------------------------------------------------------- /pythonFiles/vscode_datascience_helpers/dataframes/vscodeGetDataFrameRows.py: -------------------------------------------------------------------------------- 1 | # Query for the rows of a data frame 2 | import pandas.io.json as _VSCODE_pd_json 3 | import vscodeDataFrameHelpers as _VSCODE_dataFrameHelpers 4 | 5 | # Function to retrieve a set of rows for a data frame 6 | def _VSCODE_getDataFrameRows(df, start, end): 7 | df = _VSCODE_dataFrameHelpers._VSCODE_convertToDataFrame(df) 8 | 9 | # Turn into JSON using pandas. We use pandas because it's about 3 orders of magnitude faster to turn into JSON 10 | rows = df.iloc[start:end] 11 | return _VSCODE_pd_json.to_json(None, rows, orient="table", date_format="iso") 12 | -------------------------------------------------------------------------------- /pythonFiles/vscode_datascience_helpers/getJupyterKernels.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | 4 | import json 5 | import jupyter_client.kernelspec 6 | import sys 7 | 8 | 9 | specs = jupyter_client.kernelspec.KernelSpecManager().get_all_specs() 10 | all_specs = {"kernelspecs": specs} 11 | 12 | sys.stdout.write(json.dumps(all_specs)) 13 | sys.stdout.flush() 14 | -------------------------------------------------------------------------------- /pythonFiles/vscode_datascience_helpers/getJupyterKernelspecVersion.py: -------------------------------------------------------------------------------- 1 | # Check whether kernelspec module exists. 2 | import sys 3 | import jupyter_client 4 | import jupyter_client.kernelspec 5 | 6 | sys.stdout.write(jupyter_client.__version__) 7 | sys.stdout.flush() 8 | -------------------------------------------------------------------------------- /pythonFiles/vscode_datascience_helpers/jupyter_nbInstalled.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | 4 | try: 5 | from notebook import notebookapp as app 6 | 7 | print("Available") 8 | except Exception: 9 | print("No") 10 | -------------------------------------------------------------------------------- /requirements.in: -------------------------------------------------------------------------------- 1 | # IntelliSense 2 | jedi==0.17.2 3 | # Sort Imports 4 | isort==4.3.21 5 | # DS Python daemon 6 | python-jsonrpc-server==0.2.0 7 | -------------------------------------------------------------------------------- /resources/InstallJupyter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/resources/InstallJupyter.png -------------------------------------------------------------------------------- /resources/PythonSelector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/resources/PythonSelector.png -------------------------------------------------------------------------------- /resources/ctagOptions: -------------------------------------------------------------------------------- 1 | --recurse=yes 2 | --tag-relative=yes 3 | --exclude=.git 4 | --exclude=log 5 | --exclude=tmp 6 | --exclude=doc 7 | --exclude=deps 8 | --exclude=node_modules 9 | --exclude=.vscode 10 | --exclude=public/assets 11 | --exclude=*.git* 12 | --exclude=*.pyc 13 | --exclude=*.pyo 14 | --exclude=.DS_Store 15 | --exclude=**/*.jar 16 | --exclude=**/*.class 17 | --exclude=**/.idea/ 18 | --exclude=build 19 | --exclude=Builds 20 | --exclude=doc 21 | --fields=Knz 22 | --extra=+f 23 | --append=no -------------------------------------------------------------------------------- /resources/dark/open-file.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /resources/dark/play.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/dark/refresh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /resources/dark/repl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/dark/restart-kernel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/dark/run-file.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/dark/run-tests.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/dark/start.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/light/open-file.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /resources/light/play.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/light/refresh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /resources/light/repl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/light/restart-kernel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/light/run-file.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /resources/light/run-tests.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/light/start.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/client/.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | server 3 | node_modules -------------------------------------------------------------------------------- /src/client/.vscodeignore: -------------------------------------------------------------------------------- 1 | .vscode/** 2 | typings/** 3 | out/test/** 4 | test/** 5 | src/** 6 | **/*.map 7 | .gitignore 8 | tsconfig.json 9 | vsc-extension-quickstart.md 10 | -------------------------------------------------------------------------------- /src/client/activation/commands.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | 5 | export namespace Commands { 6 | export const ClearAnalyisCache = 'python.analysis.clearCache'; 7 | export const RestartLS = 'python.analysis.restartLanguageServer'; 8 | } 9 | -------------------------------------------------------------------------------- /src/client/application/diagnostics/commands/base.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | import { IDiagnostic, IDiagnosticCommand } from '../types'; 7 | 8 | export abstract class BaseDiagnosticCommand implements IDiagnosticCommand { 9 | constructor(public readonly diagnostic: IDiagnostic) {} 10 | public abstract invoke(): Promise; 11 | } 12 | -------------------------------------------------------------------------------- /src/client/application/types.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | import { Resource } from '../common/types'; 7 | 8 | export const IApplicationDiagnostics = Symbol('IApplicationDiagnostics'); 9 | 10 | export interface IApplicationDiagnostics { 11 | /** 12 | * Perform pre-extension activation health checks. 13 | * E.g. validate user environment, etc. 14 | * @returns {Promise} 15 | * @memberof IApplicationDiagnostics 16 | */ 17 | performPreStartupHealthCheck(resource: Resource): Promise; 18 | register(): void; 19 | } 20 | -------------------------------------------------------------------------------- /src/client/common/application/clipboard.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | import { injectable } from 'inversify'; 7 | import { env } from 'vscode'; 8 | import { IClipboard } from './types'; 9 | 10 | @injectable() 11 | export class ClipboardService implements IClipboard { 12 | public async readText(): Promise { 13 | return env.clipboard.readText(); 14 | } 15 | public async writeText(value: string): Promise { 16 | await env.clipboard.writeText(value); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/client/common/contextKey.ts: -------------------------------------------------------------------------------- 1 | import { ICommandManager } from './application/types'; 2 | 3 | export class ContextKey { 4 | public get value(): boolean | undefined { 5 | return this.lastValue; 6 | } 7 | private lastValue?: boolean; 8 | 9 | constructor(private name: string, private commandManager: ICommandManager) {} 10 | 11 | public async set(value: boolean): Promise { 12 | if (this.lastValue === value) { 13 | return; 14 | } 15 | this.lastValue = value; 16 | await this.commandManager.executeCommand('setContext', this.name, this.lastValue); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/client/common/dotnet/services/unknownOsCompatibilityService.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | import { injectable } from 'inversify'; 7 | import { traceDecorators } from '../../logger'; 8 | import { IOSDotNetCompatibilityService } from '../types'; 9 | 10 | @injectable() 11 | export class UnknownOSDotNetCompatibilityService implements IOSDotNetCompatibilityService { 12 | @traceDecorators.info('Unable to determine compatiblity of DOT.NET with an unknown OS') 13 | public async isSupported() { 14 | return false; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/client/common/dotnet/services/windowsCompatibilityService.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | import { injectable } from 'inversify'; 7 | import { IOSDotNetCompatibilityService } from '../types'; 8 | 9 | @injectable() 10 | export class WindowsDotNetCompatibilityService implements IOSDotNetCompatibilityService { 11 | public async isSupported() { 12 | return true; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/client/common/dotnet/types.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | export const IDotNetCompatibilityService = Symbol('IDotNetCompatibilityService'); 7 | export interface IDotNetCompatibilityService { 8 | isSupported(): Promise; 9 | } 10 | export const IOSDotNetCompatibilityService = Symbol('IOSDotNetCompatibilityService'); 11 | export interface IOSDotNetCompatibilityService extends IDotNetCompatibilityService {} 12 | -------------------------------------------------------------------------------- /src/client/common/errors/moduleNotInstalledError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | export class ModuleNotInstalledError extends Error { 5 | constructor(moduleName: string) { 6 | super(`Module '${moduleName}' not installed.`); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/client/common/logger.ts: -------------------------------------------------------------------------------- 1 | // These are all just temporary aliases, for backward compatibility 2 | // and to avoid churn. 3 | export { 4 | traceDecorators, 5 | logError as traceError, 6 | logInfo as traceInfo, 7 | logVerbose as traceVerbose, 8 | logWarning as traceWarning 9 | } from '../logging'; 10 | export { TraceOptions as LogOptions } from '../logging/trace'; 11 | -------------------------------------------------------------------------------- /src/client/common/net/browser.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | // tslint:disable:no-var-requires 7 | 8 | import { injectable } from 'inversify'; 9 | import { env, Uri } from 'vscode'; 10 | import { IBrowserService } from '../types'; 11 | 12 | export function launch(url: string) { 13 | env.openExternal(Uri.parse(url)); 14 | } 15 | 16 | @injectable() 17 | export class BrowserService implements IBrowserService { 18 | public launch(url: string): void { 19 | launch(url); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/client/common/platform/constants.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | // tslint:disable-next-line:no-suspicious-comment 5 | // TODO : Drop all these in favor of IPlatformService. 6 | // See https://github.com/microsoft/vscode-python/issues/8542. 7 | 8 | export const WINDOWS_PATH_VARIABLE_NAME = 'Path'; 9 | export const NON_WINDOWS_PATH_VARIABLE_NAME = 'PATH'; 10 | export const IS_WINDOWS = /^win/.test(process.platform); 11 | -------------------------------------------------------------------------------- /src/client/common/process/constants.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | export const DEFAULT_ENCODING = 'utf8'; 5 | -------------------------------------------------------------------------------- /src/client/common/process/decoder.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | import * as iconv from 'iconv-lite'; 5 | import { injectable } from 'inversify'; 6 | import { DEFAULT_ENCODING } from './constants'; 7 | import { IBufferDecoder } from './types'; 8 | 9 | @injectable() 10 | export class BufferDecoder implements IBufferDecoder { 11 | public decode(buffers: Buffer[], encoding: string = DEFAULT_ENCODING): string { 12 | encoding = iconv.encodingExists(encoding) ? encoding : DEFAULT_ENCODING; 13 | return iconv.decode(Buffer.concat(buffers), encoding); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/client/common/refBool.ts: -------------------------------------------------------------------------------- 1 | export class RefBool { 2 | constructor(private val: boolean) {} 3 | 4 | public get value(): boolean { 5 | return this.val; 6 | } 7 | 8 | public update(newVal: boolean) { 9 | this.val = newVal; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/client/common/utils/stopWatch.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | export class StopWatch { 7 | private started = new Date().getTime(); 8 | public get elapsedTime() { 9 | return new Date().getTime() - this.started; 10 | } 11 | public reset() { 12 | this.started = new Date().getTime(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/client/common/utils/version.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | import * as semver from 'semver'; 7 | 8 | export function parseVersion(raw: string): semver.SemVer { 9 | raw = raw.replace(/\.00*(?=[1-9]|0\.)/, '.'); 10 | const ver = semver.coerce(raw); 11 | if (ver === null || !semver.valid(ver)) { 12 | // tslint:disable-next-line: no-suspicious-comment 13 | // TODO: Raise an exception instead? 14 | return new semver.SemVer('0.0.0'); 15 | } 16 | return ver; 17 | } 18 | -------------------------------------------------------------------------------- /src/client/datascience/export/exportToHTML.ts: -------------------------------------------------------------------------------- 1 | import { injectable } from 'inversify'; 2 | import { CancellationToken, Uri } from 'vscode'; 3 | import { ExportBase } from './exportBase'; 4 | import { ExportFormat } from './types'; 5 | 6 | @injectable() 7 | export class ExportToHTML extends ExportBase { 8 | public async export(source: Uri, target: Uri, token: CancellationToken): Promise { 9 | await this.executeCommand(source, target, ExportFormat.html, token); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/client/datascience/export/exportToPDF.ts: -------------------------------------------------------------------------------- 1 | import { injectable } from 'inversify'; 2 | import { CancellationToken, Uri } from 'vscode'; 3 | import { ExportBase } from './exportBase'; 4 | import { ExportFormat } from './types'; 5 | 6 | @injectable() 7 | export class ExportToPDF extends ExportBase { 8 | public async export(source: Uri, target: Uri, token: CancellationToken): Promise { 9 | await this.executeCommand(source, target, ExportFormat.pdf, token); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/client/datascience/export/exportToPython.ts: -------------------------------------------------------------------------------- 1 | import { injectable } from 'inversify'; 2 | import { CancellationToken, Uri } from 'vscode'; 3 | import { ExportBase } from './exportBase'; 4 | 5 | @injectable() 6 | export class ExportToPython extends ExportBase { 7 | public async export(source: Uri, target: Uri, token: CancellationToken): Promise { 8 | if (token.isCancellationRequested) { 9 | return; 10 | } 11 | const contents = await this.importer.importFromFile(source); 12 | await this.fs.writeFile(target, contents); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/client/datascience/ipywidgets/constants.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | export const WIDGET_MIMETYPE = 'application/vnd.jupyter.widget-view+json'; 5 | -------------------------------------------------------------------------------- /src/client/datascience/jupyter/interpreter/README.md: -------------------------------------------------------------------------------- 1 | # Contains code related to the interpreter(s) used to start Jupyter, get kernel specs, etc. 2 | -------------------------------------------------------------------------------- /src/client/datascience/jupyter/invalidNotebookFileError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | import '../../common/extensions'; 5 | import * as localize from '../../common/utils/localize'; 6 | 7 | export class InvalidNotebookFileError extends Error { 8 | constructor(file?: string) { 9 | super( 10 | file 11 | ? localize.DataScience.invalidNotebookFileErrorFormat().format(file) 12 | : localize.DataScience.invalidNotebookFileError() 13 | ); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/client/datascience/jupyter/jupyterConnectError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | import '../../common/extensions'; 5 | 6 | export class JupyterConnectError extends Error { 7 | constructor(message: string, stderr?: string) { 8 | super(message + (stderr ? `\n${stderr}` : '')); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/client/datascience/jupyter/jupyterDataRateLimitError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | import * as localize from '../../common/utils/localize'; 5 | 6 | export class JupyterDataRateLimitError extends Error { 7 | constructor() { 8 | super(localize.DataScience.jupyterDataRateExceeded()); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/client/datascience/jupyter/jupyterDebuggerNotInstalledError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | import '../../common/extensions'; 5 | import * as localize from '../../common/utils/localize'; 6 | 7 | export class JupyterDebuggerNotInstalledError extends Error { 8 | constructor(debuggerPkg: string, message?: string) { 9 | const errorMessage = message 10 | ? message 11 | : localize.DataScience.jupyterDebuggerNotInstalledError().format(debuggerPkg); 12 | super(errorMessage); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/client/datascience/jupyter/jupyterDebuggerRemoteNotSupported.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | import '../../common/extensions'; 5 | import * as localize from '../../common/utils/localize'; 6 | 7 | export class JupyterDebuggerRemoteNotSupported extends Error { 8 | constructor() { 9 | super(localize.DataScience.remoteDebuggerNotSupported()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/client/datascience/jupyter/jupyterInstallError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | import '../../common/extensions'; 5 | import { HelpLinks } from '../constants'; 6 | 7 | export class JupyterInstallError extends Error { 8 | public action: string; 9 | public actionTitle: string; 10 | 11 | constructor(message: string, actionFormatString: string) { 12 | super(message); 13 | this.action = HelpLinks.PythonInteractiveHelpLink; 14 | this.actionTitle = actionFormatString.format(HelpLinks.PythonInteractiveHelpLink); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/client/datascience/jupyter/jupyterInterruptError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | 5 | export class JupyterInterruptError extends Error { 6 | constructor(message: string) { 7 | super(message); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/client/datascience/jupyter/jupyterSelfCertsError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | import '../../common/extensions'; 5 | 6 | export class JupyterSelfCertsError extends Error { 7 | constructor(message: string) { 8 | super(message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/client/datascience/jupyter/jupyterWaitForIdleError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | 5 | export class JupyterWaitForIdleError extends Error { 6 | constructor(message: string) { 7 | super(message); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/client/datascience/jupyter/jupyterZMQBinariesNotFoundError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | 5 | export class JupyterZMQBinariesNotFoundError extends Error { 6 | constructor(message: string) { 7 | super(message); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/client/datascience/jupyter/kernels/jupyterKernelPromiseFailedError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | 5 | export class JupyterKernelPromiseFailedError extends Error { 6 | constructor(message: string) { 7 | super(message); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/client/datascience/monacoMessages.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | import * as monacoEditor from 'monaco-editor/esm/vs/editor/editor.api'; 5 | 6 | export interface IGetMonacoThemeResponse { 7 | theme: monacoEditor.editor.IStandaloneThemeData; 8 | } 9 | -------------------------------------------------------------------------------- /src/client/datascience/notebook/constants.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | export const JupyterNotebookView = 'jupyter-notebook'; 5 | export const JupyterNotebookRenderer = 'jupyter-notebook-renderer'; 6 | export const RendererExtensionId = 'ms-ai-tools.notebook-renderers'; 7 | export const RendererExtensionDownloadUri = 'https://aka.ms/NotebookRendererDownloadLink'; 8 | -------------------------------------------------------------------------------- /src/client/debugger/constants.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | import * as path from 'path'; 7 | import { EXTENSION_ROOT_DIR } from '../common/constants'; 8 | 9 | export const DEBUGGER_PATH = path.join(EXTENSION_ROOT_DIR, 'pythonFiles', 'lib', 'python', 'debugpy'); 10 | export const DebuggerTypeName = 'python'; 11 | -------------------------------------------------------------------------------- /src/client/debugger/extension/adapter/types.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | export const IPromptShowState = Symbol('IPromptShowState'); 7 | export interface IPromptShowState { 8 | shouldShowPrompt(): boolean; 9 | setShowPrompt(show: boolean): void; 10 | } 11 | -------------------------------------------------------------------------------- /src/client/debugger/extension/hooks/constants.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | export enum DebuggerEvents { 7 | // Event sent by PTVSD when a child process is launched and ready to be attached to for multi-proc debugging. 8 | PtvsdAttachToSubprocess = 'ptvsd_attach', 9 | DebugpyAttachToSubprocess = 'debugpyAttach' 10 | } 11 | -------------------------------------------------------------------------------- /src/client/formatters/serviceRegistry.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | import { IServiceManager } from '../ioc/types'; 5 | import { FormatterHelper } from './helper'; 6 | import { IFormatterHelper } from './types'; 7 | 8 | export function registerTypes(serviceManager: IServiceManager) { 9 | serviceManager.addSingleton(IFormatterHelper, FormatterHelper); 10 | } 11 | -------------------------------------------------------------------------------- /src/client/interpreter/activation/types.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | import { Resource } from '../../common/types'; 7 | import { PythonInterpreter } from '../../pythonEnvironments/info'; 8 | 9 | export const IEnvironmentActivationService = Symbol('IEnvironmentActivationService'); 10 | export interface IEnvironmentActivationService { 11 | getActivatedEnvironmentVariables( 12 | resource: Resource, 13 | interpreter?: PythonInterpreter, 14 | allowExceptions?: boolean 15 | ): Promise; 16 | } 17 | -------------------------------------------------------------------------------- /src/client/interpreter/autoSelection/constants.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | export const unsafeInterpreterPromptKey = 'unsafeInterpreterPromptKey'; 7 | export const unsafeInterpretersKey = 'unsafeInterpretersKey'; 8 | export const safeInterpretersKey = 'safeInterpretersKey'; 9 | export const flaggedWorkspacesKeysStorageKey = 'flaggedWorkspacesKeysInterpreterSecurityStorageKey'; 10 | export const learnMoreOnInterpreterSecurityURI = 'https://aka.ms/AA7jfor'; 11 | -------------------------------------------------------------------------------- /src/client/interpreter/virtualEnvs/types.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | import { Uri } from 'vscode'; 5 | import { InterpreterType } from '../../pythonEnvironments/info'; 6 | export const IVirtualEnvironmentManager = Symbol('VirtualEnvironmentManager'); 7 | export interface IVirtualEnvironmentManager { 8 | getEnvironmentName(pythonPath: string, resource?: Uri): Promise; 9 | getEnvironmentType(pythonPath: string, resource?: Uri): Promise; 10 | getPyEnvRoot(resource?: Uri): Promise; 11 | } 12 | -------------------------------------------------------------------------------- /src/client/ioc/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | import { IServiceContainer } from './types'; 5 | 6 | let container: IServiceContainer; 7 | export function getServiceContainer() { 8 | return container; 9 | } 10 | export function setServiceContainer(serviceContainer: IServiceContainer) { 11 | container = serviceContainer; 12 | } 13 | -------------------------------------------------------------------------------- /src/client/logging/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | 5 | export { 6 | // aliases 7 | // (for convenience) 8 | setLoggingLevel, 9 | addOutputChannelLogging, 10 | logError, 11 | logInfo, 12 | logVerbose, 13 | logWarning, 14 | traceDecorators, 15 | tracing 16 | } from './_global'; 17 | -------------------------------------------------------------------------------- /src/client/providers/types.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | import { CancellationToken, Uri, WorkspaceEdit } from 'vscode'; 7 | 8 | export const ISortImportsEditingProvider = Symbol('ISortImportsEditingProvider'); 9 | export interface ISortImportsEditingProvider { 10 | provideDocumentSortImportsEdits(uri: Uri, token?: CancellationToken): Promise; 11 | sortImports(uri?: Uri): Promise; 12 | registerCommands(): void; 13 | } 14 | -------------------------------------------------------------------------------- /src/client/pythonEnvironments/discovery/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | /** 5 | * Decide if the given Python executable looks like the MacOS default Python. 6 | */ 7 | export function isMacDefaultPythonPath(pythonPath: string) { 8 | return pythonPath === 'python' || pythonPath === '/usr/bin/python'; 9 | } 10 | -------------------------------------------------------------------------------- /src/client/pythonEnvironments/discovery/locators/services/hashProvider.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | import { inject } from 'inversify'; 7 | import { IFileSystem } from '../../../../common/platform/types'; 8 | 9 | export class InterpreterHashProvider { 10 | constructor(@inject(IFileSystem) private readonly fs: IFileSystem) {} 11 | public async getInterpreterHash(pythonPath: string): Promise { 12 | return this.fs.getFileHash(pythonPath); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/client/pythonEnvironments/discovery/locators/services/interpreterFilter.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | import { PythonInterpreter } from '../../../info'; 7 | import { isRestrictedWindowsStoreInterpreterPath } from './windowsStoreInterpreter'; 8 | 9 | export function isHiddenInterpreter(interpreter: PythonInterpreter): boolean { 10 | // Any set of rules to hide interpreters should go here 11 | return isRestrictedWindowsStoreInterpreterPath(interpreter.path); 12 | } 13 | -------------------------------------------------------------------------------- /src/client/pythonEnvironments/discovery/locators/types.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | import { GetInterpreterOptions } from '../../../interpreter/interpreterService'; 5 | 6 | export type GetInterpreterLocatorOptions = GetInterpreterOptions & { ignoreCache?: boolean }; 7 | -------------------------------------------------------------------------------- /src/client/workspaceSymbols/contracts.ts: -------------------------------------------------------------------------------- 1 | import { Position, SymbolKind } from 'vscode'; 2 | 3 | export interface ITag { 4 | fileName: string; 5 | symbolName: string; 6 | symbolKind: SymbolKind; 7 | position: Position; 8 | code: string; 9 | } 10 | -------------------------------------------------------------------------------- /src/datascience-ui/common/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | font-family: sans-serif; 5 | } 6 | -------------------------------------------------------------------------------- /src/datascience-ui/common/main.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | declare let __webpack_public_path__: string; 5 | 6 | // tslint:disable-next-line: no-any 7 | if ((window as any).__PVSC_Public_Path) { 8 | // This variable tells Webpack to this as the root path used to request webpack bundles. 9 | // tslint:disable-next-line: no-any 10 | __webpack_public_path__ = (window as any).__PVSC_Public_Path; 11 | } 12 | -------------------------------------------------------------------------------- /src/datascience-ui/data-explorer/cellFormatter.css: -------------------------------------------------------------------------------- 1 | .number-formatter { 2 | text-align: right; 3 | } 4 | 5 | .cell-formatter { 6 | /* Note: This is impacted by the RowHeightAdjustment in reactSlickGrid.tsx */ 7 | margin: 0px 0px 0px 0px; 8 | } -------------------------------------------------------------------------------- /src/datascience-ui/data-explorer/emptyRowsView.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/datascience-ui/data-explorer/emptyRowsView.css -------------------------------------------------------------------------------- /src/datascience-ui/data-explorer/emptyRowsView.tsx: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | import './emptyRowsView.css'; 5 | 6 | import * as React from 'react'; 7 | import { getLocString } from '../react-common/locReactSide'; 8 | 9 | export interface IEmptyRowsProps {} 10 | 11 | export const EmptyRows = (_props: IEmptyRowsProps) => { 12 | const message = getLocString('DataScience.noRowsInDataViewer', 'No rows match current filter'); 13 | 14 | return
{message}
; 15 | }; 16 | -------------------------------------------------------------------------------- /src/datascience-ui/data-explorer/mainPanel.css: -------------------------------------------------------------------------------- 1 | 2 | .main-panel { 3 | position: absolute; 4 | bottom: 0; 5 | top: 0px; 6 | left: 0px; 7 | right: 0; 8 | font-size: var(--code-font-size); 9 | font-family: var(--code-font-family); 10 | background-color: var(--vscode-editor-background); 11 | overflow: hidden; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /src/datascience-ui/data-explorer/progressBar.css: -------------------------------------------------------------------------------- 1 | .progress-bar { 2 | margin:2px; 3 | text-align: center; 4 | } 5 | 6 | .progress-container { 7 | padding: 20px; 8 | text-align:center; 9 | } -------------------------------------------------------------------------------- /src/datascience-ui/data-explorer/reactSlickGridFilterBox.css: -------------------------------------------------------------------------------- 1 | .filter-box { 2 | border-color: var(--vscode-editor-inactiveSelectionBackground); 3 | border-style: solid; 4 | border-width: 1px; 5 | display: block; 6 | position: relative; 7 | left: -2px; 8 | top: -3px; 9 | width: 98%; 10 | padding: 1px; 11 | margin: 0px; 12 | } 13 | 14 | .filter-box:focus { 15 | border-color: var(--vscode-editor-selectionBackground); 16 | outline: none; 17 | } -------------------------------------------------------------------------------- /src/datascience-ui/interactive-common/images.d.ts: -------------------------------------------------------------------------------- 1 | // tslint:disable:copyright 2 | // Copyright (c) Microsoft Corporation. All rights reserved. 3 | // Licensed under the MIT License. 4 | 5 | declare module '*.svg'; 6 | declare module '*.png'; 7 | declare module '*.jpg'; 8 | -------------------------------------------------------------------------------- /src/datascience-ui/interactive-common/utils.ts: -------------------------------------------------------------------------------- 1 | export function getMaxWidth(charLength: number): string { 2 | // This comes from a linear regression 3 | const width = 0.57674 * charLength + 1.70473; 4 | const unit = 'em'; 5 | return Math.round(width).toString() + unit; 6 | } 7 | -------------------------------------------------------------------------------- /src/datascience-ui/interactive-common/variableExplorerButtonCellFormatter.css: -------------------------------------------------------------------------------- 1 | .variable-explorer-button-cell { 2 | height: 18px; 3 | width: 18px; 4 | } 5 | -------------------------------------------------------------------------------- /src/datascience-ui/interactive-common/variableExplorerEmptyRows.css: -------------------------------------------------------------------------------- 1 | #variable-explorer-empty-rows { 2 | margin: 5px; 3 | font-family: var(--code-font-family); 4 | } -------------------------------------------------------------------------------- /src/datascience-ui/interactive-common/variableExplorerEmptyRows.tsx: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | import './variableExplorerEmptyRows.css'; 5 | 6 | import * as React from 'react'; 7 | import { getLocString } from '../react-common/locReactSide'; 8 | 9 | export const VariableExplorerEmptyRowsView = () => { 10 | const message = getLocString('DataScience.noRowsInVariableExplorer', 'No variables defined'); 11 | 12 | return
{message}
; 13 | }; 14 | -------------------------------------------------------------------------------- /src/datascience-ui/interactive-common/variableExplorerRowRenderer.tsx: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | 5 | import * as React from 'react'; 6 | 7 | // tslint:disable:no-any 8 | interface IVariableExplorerRowProps { 9 | renderBaseRow(props: any): JSX.Element; 10 | } 11 | 12 | export const VariableExplorerRowRenderer: React.SFC = (props) => { 13 | return
{props.renderBaseRow(props)}
; 14 | }; 15 | -------------------------------------------------------------------------------- /src/datascience-ui/ipywidgets/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | export { WidgetManager } from './manager'; 7 | export { WidgetManagerComponent } from './container'; 8 | -------------------------------------------------------------------------------- /src/datascience-ui/plot/mainPanel.css: -------------------------------------------------------------------------------- 1 | 2 | .main-panel { 3 | position: absolute; 4 | bottom: 0; 5 | top: 0; 6 | left: 0; 7 | right: 0; 8 | font-size: var(--code-font-size); 9 | font-family: var(--code-font-family); 10 | background-color: var(--vscode-editor-background); 11 | overflow: hidden; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /src/datascience-ui/plot/toolbar.css: -------------------------------------------------------------------------------- 1 | #plot-toolbar-panel { 2 | position: absolute; 3 | top: 0; 4 | left: 0; 5 | background-color: var(--vscode-editor-background); 6 | border: 1px solid black; 7 | } -------------------------------------------------------------------------------- /src/datascience-ui/react-common/codicon/codicon-animations.css: -------------------------------------------------------------------------------- 1 | /*--------------------------------------------------------------------------------------------- 2 | * Copyright (c) Microsoft Corporation. All rights reserved. 3 | * Licensed under the MIT License. See License.txt in the project root for license information. 4 | *--------------------------------------------------------------------------------------------*/ 5 | 6 | @keyframes codicon-spin { 7 | 100% { 8 | transform:rotate(360deg); 9 | } 10 | } 11 | 12 | .codicon-animation-spin { 13 | animation: codicon-spin 1.5s linear infinite; 14 | } 15 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/codicon/codicon-modifications.css: -------------------------------------------------------------------------------- 1 | /*--------------------------------------------------------------------------------------------- 2 | * Copyright (c) Microsoft Corporation. All rights reserved. 3 | * Licensed under the MIT License. See License.txt in the project root for license information. 4 | *--------------------------------------------------------------------------------------------*/ 5 | 6 | .codicon-wrench-subaction { 7 | opacity: 0.5; 8 | } 9 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/codicon/codicon.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | // These values come from VS code source. 5 | export enum CodIcon { 6 | RunByLine = '\uead4', // This is actually debug-step-into 7 | Stop = '\uead7' 8 | } 9 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/codicon/codicon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/datascience-ui/react-common/codicon/codicon.ttf -------------------------------------------------------------------------------- /src/datascience-ui/react-common/flyout.css: -------------------------------------------------------------------------------- 1 | 2 | .flyout-container { 3 | position: relative; 4 | height: 16px; 5 | width: auto; 6 | } 7 | 8 | .flyout-inner-disabled-filter { 9 | opacity: 0.5; 10 | } 11 | 12 | .flyout-button-hidden { 13 | visibility: hidden; 14 | } 15 | 16 | .flyout-children-hidden { 17 | visibility: hidden; 18 | width: 0px; 19 | } 20 | 21 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Cancel/Cancel_16xMD_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Cancel/Cancel_16xMD_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/CollapseAll/CollapseAll_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/CollapseAll/CollapseAll_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Copy/copy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Copy/copy_inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/ExpandAll/ExpandAll_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/ExpandAll/ExpandAll_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/InsertAbove/above-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/InsertAbove/above.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/InsertBelow/below-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/InsertBelow/below.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Interrupt/Interrupt_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Interrupt/Interrupt_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Next/next-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Next/next.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/OpenInNewWindow/OpenInNewWindow_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/OpenInNewWindow/OpenInNewWindow_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/OpenPlot/plot_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/OpenPlot/plot_light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/PopIn/PopIn_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | PopIn_16x -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/PopIn/PopIn_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | PopIn_16x -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/PopOut/PopOut_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | PopOut_16x -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/PopOut/PopOut_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | PopOut_16x -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Prev/previous-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Prev/previous.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Redo/Redo_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Redo/Redo_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Restart/Restart_grey_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Restart/Restart_grey_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Run/run-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Run/run-light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/RunAll/run_all_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/RunAll/run_all_light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/RunByLine/runbyline_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | RunByLine_16x 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/RunByLine/runbyline_light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | RunByLine_16x 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/SaveAs/SaveAs_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/SaveAs/SaveAs_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/StartPage/Interactive-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/StartPage/Interactive.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/StartPage/Notebook-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/StartPage/Notebook.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/StartPage/OpenFolder-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/StartPage/OpenFolder.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Undo/Undo_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Undo/Undo_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Up/up-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/Up/up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/VariableExplorer/variable_explorer_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/images/VariableExplorer/variable_explorer_light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/datascience-ui/react-common/svgViewer.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/datascience-ui/react-common/svgViewer.css -------------------------------------------------------------------------------- /src/datascience-ui/renderers/constants.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | export const JupyterNotebookRenderer = 'jupyter-notebook-renderer'; 5 | -------------------------------------------------------------------------------- /src/ipywidgets/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | out 3 | dist 4 | **/node_modules 5 | .nyc_output 6 | npm-debug.log 7 | bin/** 8 | obj/** 9 | tmp/** 10 | -------------------------------------------------------------------------------- /src/ipywidgets/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ipywidgets", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "scripts": { 6 | "build": "npm run clean && tsc && node scripts/copyfiles.js && webpack --mode='production' && npm run copyFile && npm run clean", 7 | "build:dev": "npm run clean && tsc && node scripts/copyfiles.js && webpack --mode='development' && npm run copyFile && npm run clean", 8 | "clean": "rimraf out && rimraf tsconfig.tsbuildinfo && rimraf dist", 9 | "lint": "tslint --project tsconfig.json", 10 | "copyFile": "node scripts/copyBuild.js" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/ipywidgets/scripts/clean.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | const rimraf = require('rimraf'); 7 | const path = require('path'); 8 | 9 | rimraf.sync(path.join(__dirname, '..', '..', '..', 'out', 'ipywidgets')); 10 | -------------------------------------------------------------------------------- /src/ipywidgets/scripts/copyfiles.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | const path = require('path'); 7 | const fs = require('fs'); 8 | const outputDir = path.join(__dirname, '..', '..', '..', 'out/ipywidgets'); 9 | 10 | if (!fs.existsSync(outputDir)) { 11 | fs.mkdirSync(outputDir); 12 | } 13 | fs.copyFileSync(path.join(__dirname, '../src/widgets.css'), path.join(outputDir, 'widgets.css')); 14 | -------------------------------------------------------------------------------- /src/ipywidgets/src/widgets.css: -------------------------------------------------------------------------------- 1 | /* Copyright (c) Jupyter Development Team. 2 | * Distributed under the terms of the Modified BSD License. 3 | */ 4 | 5 | /* 6 | * This example shows how to customize the theming and still compile the CSS 7 | * down to something that all browsers support. 8 | */ 9 | @import "@jupyter-widgets/controls/css/widgets.css"; 10 | -------------------------------------------------------------------------------- /src/ipywidgets/types/index.d.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | // Added to allow compilation of backbone types pulled in from ipywidgets (@jupyterlab/widgets). 5 | declare module JQuery { 6 | type TriggeredEvent = any; 7 | } 8 | -------------------------------------------------------------------------------- /src/test/.vscode/launch.json.README: -------------------------------------------------------------------------------- 1 | // These configs are used in full-stack integration tests. 2 | // They mostly borrow from the code in src/client/debugger/extension/configuration/providers. 3 | 4 | -------------------------------------------------------------------------------- /src/test/common/asyncDump.ts: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | //tslint:disable:no-require-imports no-var-requires 4 | const log = require('why-is-node-running'); 5 | 6 | // Call this function to debug async hangs. It should print out stack traces of still running promises. 7 | export function asyncDump() { 8 | log(); 9 | } 10 | -------------------------------------------------------------------------------- /src/test/common/misc.test.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | import { expect } from 'chai'; 7 | import { isTestExecution } from '../../client/common/constants'; 8 | 9 | // Defines a Mocha test suite to group tests of similar kind together 10 | suite('Common - Misc', () => { 11 | test("Ensure its identified that we're running unit tests", () => { 12 | expect(isTestExecution()).to.be.equal(true, 'incorrect'); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /src/test/core.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | // File without any dependencies on VS Code. 7 | 8 | export async function sleep(milliseconds: number) { 9 | return new Promise((resolve) => setTimeout(resolve, milliseconds)); 10 | } 11 | 12 | // tslint:disable-next-line:no-empty 13 | export function noop() {} 14 | 15 | export const isWindows = /^win/.test(process.platform); 16 | -------------------------------------------------------------------------------- /src/test/datascience/extensionapi/exampleextension/ms-ai-tools-test/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /**@type {import('eslint').Linter.Config} */ 2 | // eslint-disable-next-line no-undef 3 | module.exports = { 4 | root: true, 5 | parser: '@typescript-eslint/parser', 6 | plugins: [ 7 | '@typescript-eslint', 8 | ], 9 | extends: [ 10 | 'eslint:recommended', 11 | 'plugin:@typescript-eslint/recommended', 12 | ], 13 | rules: { 14 | 'semi': [2, "always"], 15 | '@typescript-eslint/no-unused-vars': 0, 16 | '@typescript-eslint/no-explicit-any': 0, 17 | '@typescript-eslint/explicit-module-boundary-types': 0, 18 | '@typescript-eslint/no-non-null-assertion': 0, 19 | } 20 | }; -------------------------------------------------------------------------------- /src/test/datascience/extensionapi/exampleextension/ms-ai-tools-test/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | *.vsix 4 | -------------------------------------------------------------------------------- /src/test/datascience/extensionapi/exampleextension/ms-ai-tools-test/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations. 3 | // Extension identifier format: ${publisher}.${name}. Example: vscode.csharp 4 | 5 | // List of extensions which should be recommended for users of this workspace. 6 | "recommendations": [ 7 | "dbaeumer.vscode-eslint" 8 | ] 9 | } -------------------------------------------------------------------------------- /src/test/datascience/extensionapi/exampleextension/ms-ai-tools-test/.vscodeignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | node_modules 3 | src/** 4 | package-json.lock 5 | tsconfig.json 6 | webpack.config.js 7 | -------------------------------------------------------------------------------- /src/test/datascience/foo.py: -------------------------------------------------------------------------------- 1 | # Dummy file just to find a file for use in jupyter execution 2 | -------------------------------------------------------------------------------- /src/test/datascience/liveloss.py: -------------------------------------------------------------------------------- 1 | #%% 2 | from time import sleep 3 | import numpy as np 4 | 5 | from livelossplot import PlotLosses 6 | 7 | #%% 8 | liveplot = PlotLosses() 9 | 10 | for i in range(10): 11 | liveplot.update({ 12 | 'accuracy': 1 - np.random.rand() / (i + 2.), 13 | 'val_accuracy': 1 - np.random.rand() / (i + 0.5), 14 | 'mse': 1. / (i + 2.), 15 | 'val_mse': 1. / (i + 0.5) 16 | }) 17 | liveplot.draw() 18 | sleep(1.) 19 | -------------------------------------------------------------------------------- /src/test/datascience/manualTestFiles/manualTestFileNoCells.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import pandas as pd 3 | import matplotlib.pyplot as plt 4 | 5 | # Matplotlib Plot 6 | x = np.linspace(0, 20, 100) 7 | plt.plot(x, np.sin(x)) 8 | plt.show() 9 | 10 | # Bokeh Plot 11 | from bokeh.io import output_notebook, show 12 | from bokeh.plotting import figure 13 | output_notebook() 14 | p = figure(plot_width=400, plot_height=400) 15 | p.circle([1,2,3,4,5], [6,7,2,4,5], size=15, line_color="navy", fill_color="orange", fill_alpha=0.5) 16 | show(p) 17 | 18 | # Progress bar 19 | from tqdm import trange 20 | import time 21 | for i in trange(100): 22 | time.sleep(0.01) -------------------------------------------------------------------------------- /src/test/datascience/mockWorkspaceFolder.ts: -------------------------------------------------------------------------------- 1 | import { Uri, WorkspaceFolder } from 'vscode'; 2 | 3 | export class MockWorkspaceFolder implements WorkspaceFolder { 4 | public uri: Uri; 5 | public name: string; 6 | public ownedResources = new Set(); 7 | 8 | constructor(folder: string, public index: number) { 9 | this.uri = Uri.file(folder); 10 | this.name = folder; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/datascience/notebook/empty.ipynb: -------------------------------------------------------------------------------- 1 | {"cells":[],"nbformat":4,"nbformat_minor":2,"metadata":{"language_info":{"name":"python","codemirror_mode":{"name":"ipython","version":3}},"orig_nbformat":2,"file_extension":".py","mimetype":"text/x-python","name":"python","npconvert_exporter":"python","pygments_lexer":"ipython3","version":3}} 2 | -------------------------------------------------------------------------------- /src/test/datascience/notebook/empty.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/datascience/notebook/empty.py -------------------------------------------------------------------------------- /src/test/datascience/notebook/test.ipynb: -------------------------------------------------------------------------------- 1 | {"cells":[{"source":["a=1\n","a"],"cell_type":"code","outputs":[{"output_type":"execute_result","data":{"text/plain":"1"},"metadata":{},"execution_count":1}],"metadata":{},"execution_count":1}],"nbformat":4,"nbformat_minor":2,"metadata":{"language_info":{"name":"python","codemirror_mode":{"name":"ipython","version":3}},"orig_nbformat":2,"file_extension":".py","mimetype":"text/x-python","name":"python","npconvert_exporter":"python","pygments_lexer":"ipython3","version":3}} -------------------------------------------------------------------------------- /src/test/datascience/notebook/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/datascience/notebook/test.png -------------------------------------------------------------------------------- /src/test/datascience/serverConfigFiles/remoteNoAuth.py: -------------------------------------------------------------------------------- 1 | # With these settings you can connect to a server with no token and no password 2 | c.NotebookApp.token = '' 3 | c.NotebookApp.open_browser = False 4 | c.NotebookApp.disable_check_xsrf = True -------------------------------------------------------------------------------- /src/test/datascience/serverConfigFiles/remotePassword.py: -------------------------------------------------------------------------------- 1 | c.NotebookApp.ip = "*" 2 | c.NotebookApp.port = 9799 3 | c.NotebookApp.open_browser = False 4 | # Python 5 | c.NotebookApp.password = "sha1:74182e119a7b:e1b98bbba98f9ada3fd714eda9652437e80082e2" 6 | 7 | -------------------------------------------------------------------------------- /src/test/datascience/serverConfigFiles/remoteToken.py: -------------------------------------------------------------------------------- 1 | c.NotebookApp.open_browser = False -------------------------------------------------------------------------------- /src/test/debugger/common/constants.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | // Sometimes PTVSD can take a while for thread & other events to be reported. 7 | export const DEBUGGER_TIMEOUT = 20000; 8 | -------------------------------------------------------------------------------- /src/test/mocks/vsc/telemetryReporter.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | 'use strict'; 5 | 6 | // tslint:disable:all 7 | export class vscMockTelemetryReporter { 8 | constructor() { 9 | // 10 | } 11 | 12 | public sendTelemetryEvent(): void { 13 | // 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/multiRootWkspc/parent/child/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.workspaceSymbols.enabled": true 3 | } 4 | -------------------------------------------------------------------------------- /src/test/multiRootWkspc/parent/child/childFile.py: -------------------------------------------------------------------------------- 1 | """pylint option block-disable""" 2 | 3 | __revision__ = None 4 | 5 | class Child2Class(object): 6 | """block-disable test""" 7 | 8 | def __init__(self): 9 | pass 10 | 11 | def meth1OfChild(self, arg): 12 | """this issues a message""" 13 | print (self) 14 | -------------------------------------------------------------------------------- /src/test/multiRootWkspc/workspace1/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.linting.pylintEnabled": true, 3 | "python.linting.enabled": false, 4 | "python.linting.flake8Enabled": true 5 | } 6 | -------------------------------------------------------------------------------- /src/test/multiRootWkspc/workspace2/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.workspaceSymbols.tagFilePath": "${workspaceRoot}/workspace2.tags.file", 3 | "python.workspaceSymbols.enabled": true 4 | } 5 | -------------------------------------------------------------------------------- /src/test/multiRootWkspc/workspace2/workspace2File.py: -------------------------------------------------------------------------------- 1 | """pylint option block-disable""" 2 | 3 | __revision__ = None 4 | 5 | class Workspace2Class(object): 6 | """block-disable test""" 7 | 8 | def __init__(self): 9 | pass 10 | 11 | def meth1OfWorkspace2(self, arg): 12 | """this issues a message""" 13 | print (self) 14 | -------------------------------------------------------------------------------- /src/test/multiRootWkspc/workspace3/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.workspaceSymbols.tagFilePath": "${workspaceRoot}/workspace3.tags.file" 3 | } 4 | -------------------------------------------------------------------------------- /src/test/performance/sample.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/performance/sample.py -------------------------------------------------------------------------------- /src/test/performance/settings.json: -------------------------------------------------------------------------------- 1 | { "python.languageServer": "Jedi" } 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/discovery/globalenv.unit.test.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | suite('getPyenvTypeFinder()', () => { 5 | // We will pull tests over from src/test/interpreters/virtualEnvs/index.unit.test.ts at some point. 6 | }); 7 | 8 | suite('getPyenvRootFinder()', () => { 9 | // We will pull tests over from src/test/interpreters/virtualEnvs/index.unit.test.ts at some point. 10 | }); 11 | -------------------------------------------------------------------------------- /src/test/pythonFiles/autocomp/deco.py: -------------------------------------------------------------------------------- 1 | 2 | import abc 3 | class Decorator(metaclass=abc.ABCMeta): 4 | @abc.-# no abstract class 5 | @abc.abstractclassmethod 6 | -------------------------------------------------------------------------------- /src/test/pythonFiles/autocomp/doc.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | if os.path.exists(("/etc/hosts")): 4 | with open("/etc/hosts", "a") as f: 5 | for line in f.readlines(): 6 | content = line.upper() 7 | 8 | 9 | 10 | import time 11 | time.slee -------------------------------------------------------------------------------- /src/test/pythonFiles/autocomp/five.py: -------------------------------------------------------------------------------- 1 | import four 2 | four.showMessage() 3 | -------------------------------------------------------------------------------- /src/test/pythonFiles/autocomp/hoverTest.py: -------------------------------------------------------------------------------- 1 | import random 2 | import math 3 | 4 | for x in range(0, 10): 5 | print(x) 6 | 7 | rnd = random.Random() 8 | print(rnd.randint(0, 5)) 9 | print(math.acos(90)) 10 | 11 | import misc 12 | rnd2 = misc.Random() 13 | rnd2.randint() 14 | 15 | t = misc.Thread() 16 | t.__init__() -------------------------------------------------------------------------------- /src/test/pythonFiles/autocomp/imp.py: -------------------------------------------------------------------------------- 1 | from os import * 2 | fsta -------------------------------------------------------------------------------- /src/test/pythonFiles/autocomp/lamb.py: -------------------------------------------------------------------------------- 1 | instant_print = lambda x: [print(x), sys.stdout.flush(), sys.stderr.flush()] 2 | instant_print("X"). -------------------------------------------------------------------------------- /src/test/pythonFiles/autocomp/pep484.py: -------------------------------------------------------------------------------- 1 | 2 | def greeting(name: str) -> str: 3 | return 'Hello ' + name.upper() 4 | 5 | 6 | def add(num1, num2) -> int: 7 | return num1 + num2 8 | 9 | add().bit_length() 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/test/pythonFiles/autocomp/pep526.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | PEP_526_style: str = "hello world" 4 | captain: str # Note: no initial value! 5 | PEP_484_style = SOMETHING # type: str 6 | 7 | 8 | PEP_484_style.upper() 9 | PEP_526_style.upper() 10 | captain.upper() 11 | 12 | # https://github.com/DonJayamanne/pythonVSCode/issues/918 13 | class A: 14 | a = 0 15 | 16 | 17 | class B: 18 | b: int = 0 19 | 20 | 21 | A().a # -> Autocomplete works 22 | B().b.bit_length() # -> Autocomplete doesn't work -------------------------------------------------------------------------------- /src/test/pythonFiles/autocomp/suppress.py: -------------------------------------------------------------------------------- 1 | "string" #comment 2 | """ 3 | content 4 | """ 5 | #comment 6 | 'un#closed 7 | -------------------------------------------------------------------------------- /src/test/pythonFiles/autocomp/three.py: -------------------------------------------------------------------------------- 1 | import two 2 | two.ct().fun() -------------------------------------------------------------------------------- /src/test/pythonFiles/autocomp/two.py: -------------------------------------------------------------------------------- 1 | class ct: 2 | def fun(): 3 | """ 4 | This is fun 5 | """ 6 | pass -------------------------------------------------------------------------------- /src/test/pythonFiles/autoimport/one.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/autoimport/one.py -------------------------------------------------------------------------------- /src/test/pythonFiles/autoimport/two/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/autoimport/two/__init__.py -------------------------------------------------------------------------------- /src/test/pythonFiles/autoimport/two/three.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/autoimport/two/three.py -------------------------------------------------------------------------------- /src/test/pythonFiles/datascience/simple_note_book.py: -------------------------------------------------------------------------------- 1 | # %% 2 | import os.path 3 | dir_path = os.path.dirname(os.path.realpath(__file__)) 4 | 5 | with open(os.path.join(dir_path, 'ds.log'), 'a') as fp: 6 | fp.write('Hello World') 7 | 8 | -------------------------------------------------------------------------------- /src/test/pythonFiles/debugging/forever.py: -------------------------------------------------------------------------------- 1 | import time 2 | 3 | for i in range(1000): 4 | time.sleep(1) 5 | print(i) 6 | -------------------------------------------------------------------------------- /src/test/pythonFiles/debugging/logMessage.py: -------------------------------------------------------------------------------- 1 | import time 2 | a = 1 3 | b = 2 4 | c = a + b 5 | -------------------------------------------------------------------------------- /src/test/pythonFiles/debugging/loopyTest.py: -------------------------------------------------------------------------------- 1 | for i in range(10): 2 | print(i) 3 | -------------------------------------------------------------------------------- /src/test/pythonFiles/debugging/multiThread.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import threading 3 | import time 4 | 5 | def bar(): 6 | time.sleep(2) 7 | print('bar') 8 | 9 | def foo(x): 10 | while True: 11 | bar() 12 | 13 | threading.Thread(target = lambda: foo(2), name="foo").start() 14 | foo(1) 15 | -------------------------------------------------------------------------------- /src/test/pythonFiles/debugging/printSysArgv.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import time 3 | sys.stdout.write(','.join(sys.argv[1:])) 4 | sys.stdout.flush() 5 | -------------------------------------------------------------------------------- /src/test/pythonFiles/debugging/sample2.py: -------------------------------------------------------------------------------- 1 | import time 2 | time.sleep(3) 3 | a = 1 4 | b = 2 5 | print(a + b) 6 | 7 | def do_something(name): 8 | print("inside") 9 | print(name) 10 | 11 | do_something("Do that") 12 | 13 | print("hello world") 14 | -------------------------------------------------------------------------------- /src/test/pythonFiles/debugging/sample2WithoutSleep.py: -------------------------------------------------------------------------------- 1 | import time 2 | # time.sleep(3) 3 | a = 1 4 | b = 2 5 | print(a + b) 6 | 7 | def do_something(name): 8 | print("inside") 9 | print(name) 10 | 11 | do_something("Do that") 12 | 13 | print("hello world") 14 | -------------------------------------------------------------------------------- /src/test/pythonFiles/debugging/sample3WithEx.py: -------------------------------------------------------------------------------- 1 | print("hello") 2 | 3 | def this_will_throw_an_error(): 4 | print("inside") 5 | print(1/0) 6 | 7 | this_will_throw_an_error() 8 | 9 | print("bye") 10 | -------------------------------------------------------------------------------- /src/test/pythonFiles/debugging/sampleWithAssertEx.py: -------------------------------------------------------------------------------- 1 | assert False 2 | -------------------------------------------------------------------------------- /src/test/pythonFiles/debugging/sampleWithSleep.py: -------------------------------------------------------------------------------- 1 | import time 2 | import os 3 | print(os.getpid()) 4 | time.sleep(1) 5 | for i in 10000: 6 | time.sleep(0.1) 7 | print(i) 8 | print('end') 9 | -------------------------------------------------------------------------------- /src/test/pythonFiles/debugging/simplePrint.py: -------------------------------------------------------------------------------- 1 | print("hello world") 2 | -------------------------------------------------------------------------------- /src/test/pythonFiles/debugging/stackFrame.py: -------------------------------------------------------------------------------- 1 | import time 2 | 3 | def foo(): 4 | time.sleep(3) 5 | print(1) 6 | 7 | def bar(): 8 | foo() 9 | 10 | bar() 11 | -------------------------------------------------------------------------------- /src/test/pythonFiles/debugging/startAndWait.py: -------------------------------------------------------------------------------- 1 | import time 2 | time.sleep(10) 3 | -------------------------------------------------------------------------------- /src/test/pythonFiles/debugging/stdErrOutput.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import time 3 | sys.stderr.write('error output') 4 | sys.stderr.flush() 5 | -------------------------------------------------------------------------------- /src/test/pythonFiles/debugging/stdOutOutput.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import time 3 | sys.stdout.write('normal output') 4 | sys.stdout.flush() 5 | -------------------------------------------------------------------------------- /src/test/pythonFiles/definition/await.test.py: -------------------------------------------------------------------------------- 1 | # https://github.com/DonJayamanne/pythonVSCode/issues/962 2 | 3 | class A: 4 | def __init__(self): 5 | self.test_value = 0 6 | 7 | async def test(self): 8 | pass 9 | 10 | async def test2(self): 11 | await self.test() 12 | 13 | async def testthis(): 14 | """ 15 | Wow 16 | """ 17 | pass 18 | 19 | await testthis() -------------------------------------------------------------------------------- /src/test/pythonFiles/definition/five.py: -------------------------------------------------------------------------------- 1 | import four 2 | four.showMessage() 3 | -------------------------------------------------------------------------------- /src/test/pythonFiles/definition/navigation/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/definition/navigation/__init__.py -------------------------------------------------------------------------------- /src/test/pythonFiles/definition/navigation/usages.py: -------------------------------------------------------------------------------- 1 | import definitions 2 | from .definitions import my_context_manager, my_decorator, thing 3 | 4 | @definitions.my_decorator 5 | def one(): 6 | pass 7 | 8 | @my_decorator 9 | def two(): 10 | pass 11 | 12 | with definitions.my_context_manager(): 13 | definitions.thing(19) 14 | 15 | with my_context_manager(): 16 | thing(19) 17 | -------------------------------------------------------------------------------- /src/test/pythonFiles/definition/three.py: -------------------------------------------------------------------------------- 1 | import two 2 | two.ct().fun() -------------------------------------------------------------------------------- /src/test/pythonFiles/definition/two.py: -------------------------------------------------------------------------------- 1 | class ct: 2 | def fun(): 3 | """ 4 | This is fun 5 | """ 6 | pass -------------------------------------------------------------------------------- /src/test/pythonFiles/docstrings/one.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/docstrings/one.py -------------------------------------------------------------------------------- /src/test/pythonFiles/dummy.py: -------------------------------------------------------------------------------- 1 | #dummy file to be opened by Test VS Code instance, so that Python Configuration (workspace configuration will be initialized) -------------------------------------------------------------------------------- /src/test/pythonFiles/environments/conda/Scripts/conda.exe: -------------------------------------------------------------------------------- 1 | // Test file -------------------------------------------------------------------------------- /src/test/pythonFiles/environments/conda/bin/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/environments/conda/bin/python -------------------------------------------------------------------------------- /src/test/pythonFiles/environments/conda/envs/numpy/bin/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/environments/conda/envs/numpy/bin/python -------------------------------------------------------------------------------- /src/test/pythonFiles/environments/conda/envs/numpy/python.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/environments/conda/envs/numpy/python.exe -------------------------------------------------------------------------------- /src/test/pythonFiles/environments/conda/envs/scipy/bin/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/environments/conda/envs/scipy/bin/python -------------------------------------------------------------------------------- /src/test/pythonFiles/environments/conda/envs/scipy/python.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/environments/conda/envs/scipy/python.exe -------------------------------------------------------------------------------- /src/test/pythonFiles/environments/path1/one: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/environments/path1/one -------------------------------------------------------------------------------- /src/test/pythonFiles/environments/path1/one.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/environments/path1/one.exe -------------------------------------------------------------------------------- /src/test/pythonFiles/environments/path1/python.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/environments/path1/python.exe -------------------------------------------------------------------------------- /src/test/pythonFiles/environments/path2/one: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/environments/path2/one -------------------------------------------------------------------------------- /src/test/pythonFiles/environments/path2/one.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/environments/path2/one.exe -------------------------------------------------------------------------------- /src/test/pythonFiles/environments/path2/python.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/environments/path2/python.exe -------------------------------------------------------------------------------- /src/test/pythonFiles/exclusions/Lib/fileLib.py: -------------------------------------------------------------------------------- 1 | a -------------------------------------------------------------------------------- /src/test/pythonFiles/exclusions/Lib/site-packages/sitePackages.py: -------------------------------------------------------------------------------- 1 | b -------------------------------------------------------------------------------- /src/test/pythonFiles/exclusions/dir1/dir1file.py: -------------------------------------------------------------------------------- 1 | for -------------------------------------------------------------------------------- /src/test/pythonFiles/exclusions/dir1/dir2/dir2file.py: -------------------------------------------------------------------------------- 1 | for -------------------------------------------------------------------------------- /src/test/pythonFiles/exclusions/one.py: -------------------------------------------------------------------------------- 1 | if -------------------------------------------------------------------------------- /src/test/pythonFiles/folding/empty.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/folding/empty.py -------------------------------------------------------------------------------- /src/test/pythonFiles/formatting/dummy.ts: -------------------------------------------------------------------------------- 1 | // Dummy ts file to ensure this folder gets created in output directory. 2 | 3 | // Code to ensure linter doesn't complain about empty files. 4 | const a = '1'; 5 | -------------------------------------------------------------------------------- /src/test/pythonFiles/formatting/fileToFormatOnEnter.py: -------------------------------------------------------------------------------- 1 | x=1 2 | """x=1 3 | """ 4 | # comment 5 | # x=1 6 | x+1 # 7 | @x 8 | x.y 9 | if x<=1: 10 | if 1<=x: 11 | def __init__(self, age = 23) 12 | while(1) 13 | x+""" 14 | -------------------------------------------------------------------------------- /src/test/pythonFiles/formatting/formatWhenDirty.py: -------------------------------------------------------------------------------- 1 | x = 0 2 | if x > 0: 3 | x = 1 4 | -------------------------------------------------------------------------------- /src/test/pythonFiles/formatting/formatWhenDirtyResult.py: -------------------------------------------------------------------------------- 1 | x = 0 2 | if x > 0: 3 | x = 1 4 | -------------------------------------------------------------------------------- /src/test/pythonFiles/hover/functionHover.py: -------------------------------------------------------------------------------- 1 | def my_func(): 2 | """ 3 | This is a test. 4 | 5 | It also includes this text, too. 6 | """ 7 | pass 8 | 9 | my_func() 10 | -------------------------------------------------------------------------------- /src/test/pythonFiles/hover/stringFormat.py: -------------------------------------------------------------------------------- 1 | 2 | def print_hello(name): 3 | """say hello to name on stdout. 4 | :param name: the name. 5 | """ 6 | print('hello {0}'.format(name).capitalize()) 7 | 8 | -------------------------------------------------------------------------------- /src/test/pythonFiles/linting/flake8config/.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | ignore = E302,E901,E127,E261,E261,E261,E303 -------------------------------------------------------------------------------- /src/test/pythonFiles/linting/minCheck.py: -------------------------------------------------------------------------------- 1 | filter(lambda x: x == 1, [1, 1, 2]) 2 | -------------------------------------------------------------------------------- /src/test/pythonFiles/linting/print.py: -------------------------------------------------------------------------------- 1 | print x -------------------------------------------------------------------------------- /src/test/pythonFiles/linting/pycodestyleconfig/.pycodestyle: -------------------------------------------------------------------------------- 1 | [pycodestyle] 2 | ignore = E302,E901,E127,E261,E261,E261,E303 3 | -------------------------------------------------------------------------------- /src/test/pythonFiles/linting/pydocstyleconfig27/.pydocstyle: -------------------------------------------------------------------------------- 1 | [pydocstyle] 2 | ignore=D400,D401,D402,D403,D404,D203,D102,D107 3 | -------------------------------------------------------------------------------- /src/test/pythonFiles/linting/pylintconfig/.pylintrc: -------------------------------------------------------------------------------- 1 | [MESSAGES CONTROL] 2 | disable=I0011,I0012,C0304,C0103,W0613,E0001,E1101 3 | -------------------------------------------------------------------------------- /src/test/pythonFiles/linting/pylintconfig/file2.py: -------------------------------------------------------------------------------- 1 | """pylint option block-disable""" 2 | 3 | __revision__ = None 4 | 5 | class Foo(object): 6 | """block-disable test""" 7 | 8 | def __init__(self): 9 | pass 10 | 11 | def meth1(self, arg): 12 | """meth1""" 13 | print self.blop 14 | 15 | def meth2(self, arg): 16 | """meth2""" 17 | # pylint: disable=unused-argument 18 | print self\ 19 | + "foo" 20 | -------------------------------------------------------------------------------- /src/test/pythonFiles/refactoring/source folder/with empty line.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | def one(): 4 | return True 5 | 6 | def two(): 7 | if one(): 8 | print("A" + one()) 9 | -------------------------------------------------------------------------------- /src/test/pythonFiles/refactoring/source folder/without empty line.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | def one(): 4 | return True 5 | 6 | def two(): 7 | if one(): 8 | print("A" + one()) -------------------------------------------------------------------------------- /src/test/pythonFiles/shebang/plain.py: -------------------------------------------------------------------------------- 1 | 2 | print("dummy") 3 | -------------------------------------------------------------------------------- /src/test/pythonFiles/shebang/shebang.py: -------------------------------------------------------------------------------- 1 | #!python 2 | 3 | print("dummy") 4 | -------------------------------------------------------------------------------- /src/test/pythonFiles/shebang/shebangEnv.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | print("dummy") 4 | -------------------------------------------------------------------------------- /src/test/pythonFiles/shebang/shebangInvalid.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env1234 python 2 | 3 | print("dummy") 4 | -------------------------------------------------------------------------------- /src/test/pythonFiles/signature/basicSig.py: -------------------------------------------------------------------------------- 1 | range(c, 1, 2 | 3 | -------------------------------------------------------------------------------- /src/test/pythonFiles/signature/classCtor.py: -------------------------------------------------------------------------------- 1 | class Person: 2 | def __init__(self, name, age = 23): 3 | self.name = name 4 | self.age = age 5 | 6 | p1 = Person('Bob', ) 7 | -------------------------------------------------------------------------------- /src/test/pythonFiles/signature/ellipsis.py: -------------------------------------------------------------------------------- 1 | print(a, b, c) 2 | -------------------------------------------------------------------------------- /src/test/pythonFiles/signature/noSigPy3.py: -------------------------------------------------------------------------------- 1 | pow() 2 | -------------------------------------------------------------------------------- /src/test/pythonFiles/sorting/noconfig/after.py: -------------------------------------------------------------------------------- 1 | import io; sys; json 2 | import traceback 3 | 4 | import rope 5 | import rope.base.project 6 | import rope.base.taskhandle 7 | from rope.base import libutils 8 | from rope.refactor.extract import ExtractMethod, ExtractVariable 9 | from rope.refactor.rename import Rename 10 | 11 | WORKSPACE_ROOT = sys.argv[1] 12 | ROPE_PROJECT_FOLDER = sys.argv[2] 13 | 14 | 15 | def test(): 16 | pass 17 | -------------------------------------------------------------------------------- /src/test/pythonFiles/sorting/noconfig/before.py: -------------------------------------------------------------------------------- 1 | import io; sys; json 2 | import traceback 3 | import rope 4 | 5 | import rope.base.project 6 | import rope.base.taskhandle 7 | 8 | WORKSPACE_ROOT = sys.argv[1] 9 | ROPE_PROJECT_FOLDER = sys.argv[2] 10 | 11 | 12 | def test(): 13 | pass 14 | 15 | from rope.base import libutils 16 | from rope.refactor.rename import Rename 17 | from rope.refactor.extract import ExtractMethod, ExtractVariable 18 | -------------------------------------------------------------------------------- /src/test/pythonFiles/sorting/noconfig/original.py: -------------------------------------------------------------------------------- 1 | import io; sys; json 2 | import traceback 3 | import rope 4 | 5 | import rope.base.project 6 | import rope.base.taskhandle 7 | 8 | WORKSPACE_ROOT = sys.argv[1] 9 | ROPE_PROJECT_FOLDER = sys.argv[2] 10 | 11 | 12 | def test(): 13 | pass 14 | 15 | from rope.base import libutils 16 | from rope.refactor.rename import Rename 17 | from rope.refactor.extract import ExtractMethod, ExtractVariable 18 | -------------------------------------------------------------------------------- /src/test/pythonFiles/sorting/withconfig/.isort.cfg: -------------------------------------------------------------------------------- 1 | [settings] 2 | force_single_line=True -------------------------------------------------------------------------------- /src/test/pythonFiles/sorting/withconfig/after.py: -------------------------------------------------------------------------------- 1 | from third_party import (lib1, lib2, lib3, 2 | lib4, lib5, lib6, 3 | lib7, lib8, lib9) -------------------------------------------------------------------------------- /src/test/pythonFiles/sorting/withconfig/before.1.py: -------------------------------------------------------------------------------- 1 | from third_party import (lib1, lib2, lib3, 2 | lib4, lib5, lib6, 3 | lib7, lib8, lib9) -------------------------------------------------------------------------------- /src/test/pythonFiles/sorting/withconfig/before.py: -------------------------------------------------------------------------------- 1 | from third_party import (lib1, lib2, lib3, 2 | lib4, lib5, lib6, 3 | lib7, lib8, lib9) -------------------------------------------------------------------------------- /src/test/pythonFiles/sorting/withconfig/original.1.py: -------------------------------------------------------------------------------- 1 | from third_party import (lib1, lib2, lib3, 2 | lib4, lib5, lib6, 3 | lib7, lib8, lib9) -------------------------------------------------------------------------------- /src/test/pythonFiles/sorting/withconfig/original.py: -------------------------------------------------------------------------------- 1 | from third_party import (lib1, lib2, lib3, 2 | lib4, lib5, lib6, 3 | lib7, lib8, lib9) -------------------------------------------------------------------------------- /src/test/pythonFiles/symbolFiles/childFile.py: -------------------------------------------------------------------------------- 1 | """pylint option block-disable""" 2 | 3 | __revision__ = None 4 | 5 | class Child2Class(object): 6 | """block-disable test""" 7 | 8 | def __init__(self): 9 | pass 10 | 11 | def meth1OfChild(self, arg): 12 | """this issues a message""" 13 | print (self) 14 | -------------------------------------------------------------------------------- /src/test/pythonFiles/symbolFiles/workspace2File.py: -------------------------------------------------------------------------------- 1 | """pylint option block-disable""" 2 | 3 | __revision__ = None 4 | 5 | class Workspace2Class(object): 6 | """block-disable test""" 7 | 8 | def __init__(self): 9 | pass 10 | 11 | def meth1OfWorkspace2(self, arg): 12 | """this issues a message""" 13 | print (self) 14 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample1_normalized.py: -------------------------------------------------------------------------------- 1 | # Sample block 1 2 | 3 | def square(x): 4 | return x**2 5 | 6 | print('hello') 7 | # Sample block 2 8 | 9 | a = 2 10 | 11 | if a < 2: 12 | print('less than 2') 13 | else: 14 | print('more than 2') 15 | 16 | print('hello') 17 | # Sample block 3 18 | 19 | for i in range(5): 20 | print(i) 21 | print(i) 22 | print(i) 23 | print(i) 24 | 25 | print('complete') 26 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample1_raw.py: -------------------------------------------------------------------------------- 1 | # Sample block 1 2 | def square(x): 3 | return x**2 4 | 5 | print('hello') 6 | # Sample block 2 7 | a = 2 8 | if a < 2: 9 | print('less than 2') 10 | else: 11 | print('more than 2') 12 | 13 | print('hello') 14 | 15 | # Sample block 3 16 | for i in range(5): 17 | print(i) 18 | 19 | print(i) 20 | print(i) 21 | 22 | print(i) 23 | 24 | print('complete') 25 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample2_normalized.py: -------------------------------------------------------------------------------- 1 | def add(x, y): 2 | """Adds x to y""" 3 | # Some comment 4 | return x + y 5 | 6 | v = add(1, 7) 7 | print(v) 8 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample2_raw.py: -------------------------------------------------------------------------------- 1 | def add(x, y): 2 | """Adds x to y""" 3 | # Some comment 4 | 5 | return x + y 6 | 7 | v = add(1, 7) 8 | print(v) 9 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample3_normalized.py: -------------------------------------------------------------------------------- 1 | if True: 2 | print(1) 3 | print(2) 4 | 5 | print(3) 6 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample3_raw.py: -------------------------------------------------------------------------------- 1 | if True: 2 | print(1) 3 | 4 | print(2) 5 | 6 | print(3) 7 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample4_normalized.py: -------------------------------------------------------------------------------- 1 | class pc(object): 2 | def __init__(self, pcname, model): 3 | self.pcname = pcname 4 | self.model = model 5 | def print_name(self): 6 | print('Workstation name is', self.pcname, 'model is', self.model) 7 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample4_raw.py: -------------------------------------------------------------------------------- 1 | class pc(object): 2 | def __init__(self, pcname, model): 3 | self.pcname = pcname 4 | self.model = model 5 | 6 | def print_name(self): 7 | print('Workstation name is', self.pcname, 'model is', self.model) 8 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample5_normalized.py: -------------------------------------------------------------------------------- 1 | for i in range(10): 2 | print('a') 3 | for j in range(5): 4 | print('b') 5 | print('b2') 6 | for k in range(2): 7 | print('c') 8 | print('done with first loop') 9 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample5_raw.py: -------------------------------------------------------------------------------- 1 | for i in range(10): 2 | print('a') 3 | for j in range(5): 4 | print('b') 5 | 6 | print('b2') 7 | 8 | for k in range(2): 9 | print('c') 10 | 11 | print('done with first loop') 12 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample6_normalized.py: -------------------------------------------------------------------------------- 1 | if True: 2 | print(1) 3 | else: print(2) 4 | 5 | print('🔨') 6 | print(3) 7 | print(3) 8 | 9 | if True: 10 | print(1) 11 | else: print(2) 12 | 13 | if True: 14 | print(1) 15 | else: print(2) 16 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample6_raw.py: -------------------------------------------------------------------------------- 1 | if True: 2 | print(1) 3 | else: print(2) 4 | print('🔨') 5 | print(3) 6 | print(3) 7 | if True: 8 | print(1) 9 | else: print(2) 10 | if True: 11 | print(1) 12 | else: print(2) 13 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample7_normalized.py: -------------------------------------------------------------------------------- 1 | if True: 2 | print(1) 3 | print(1) 4 | else: 5 | print(2) 6 | print(2) 7 | 8 | print(3) 9 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample7_raw.py: -------------------------------------------------------------------------------- 1 | if True: 2 | print(1) 3 | 4 | print(1) 5 | else: 6 | print(2) 7 | 8 | print(2) 9 | print(3) 10 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample8_normalized.py: -------------------------------------------------------------------------------- 1 | if True: 2 | print(1) 3 | print(1) 4 | else: 5 | print(2) 6 | print(2) 7 | 8 | print(3) 9 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample8_raw.py: -------------------------------------------------------------------------------- 1 | if True: 2 | print(1) 3 | 4 | print(1) 5 | else: 6 | print(2) 7 | 8 | print(2) 9 | print(3) 10 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample_normalized.py: -------------------------------------------------------------------------------- 1 | import sys 2 | print(sys.executable) 3 | print("1234") 4 | print(1) 5 | print(2) 6 | -------------------------------------------------------------------------------- /src/test/pythonFiles/terminalExec/sample_raw.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | print(sys.executable) 4 | 5 | print("1234") 6 | 7 | print(1) 8 | print(2) 9 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/counter/tests/__init__.py: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/cwd/src/tests/test_cwd.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | 4 | import unittest 5 | 6 | class Test_Current_Working_Directory(unittest.TestCase): 7 | def test_cwd(self): 8 | testDir = os.path.join(os.getcwd(), 'test') 9 | testFileDir = os.path.dirname(os.path.abspath(__file__)) 10 | self.assertEqual(testDir, testFileDir, 'Not equal' + testDir + testFileDir) 11 | 12 | 13 | if __name__ == '__main__': 14 | unittest.main() 15 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/debuggerTest/tests/test_debugger_one.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | class Test_test_one_1(unittest.TestCase): 4 | def test_1_1_1(self): 5 | self.assertEqual(1,1,'Not equal') 6 | 7 | if __name__ == '__main__': 8 | unittest.main() 9 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/debuggerTest/tests/test_debugger_two.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | class Test_test_two_2(unittest.TestCase): 4 | def test_2_1_1(self): 5 | self.assertEqual(1,1,'Not equal') 6 | 7 | if __name__ == '__main__': 8 | unittest.main() 9 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/debuggerTest/tests/test_debugger_two.txt: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | class Test_test_two_2(unittest.TestCase): 4 | def test_2_1_1(self): 5 | self.assertEqual(1,1,'Not equal') 6 | 7 | if __name__ == '__main__': 8 | unittest.main() 9 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/debuggerTest/tests/test_debugger_two.updated.txt: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | class Test_test_two_2(unittest.TestCase): 4 | def test_2_1_1(self): 5 | self.assertEqual(1,1,'Not equal') 6 | 7 | def test_2_1_2(self): 8 | self.assertEqual(1,1,'Not equal') 9 | 10 | def test_2_1_3(self): 11 | self.assertEqual(1,1,'Not equal') 12 | 13 | if __name__ == '__main__': 14 | unittest.main() 15 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/multi/tests/more_tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/testFiles/multi/tests/more_tests/__init__.py -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/multi/tests/more_tests/test_three.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | 4 | import unittest 5 | 6 | class Test_test3(unittest.TestCase): 7 | def test_3A(self): 8 | self.assertEqual(1, 2-1, "Not implemented") 9 | 10 | def test_3B(self): 11 | self.assertEqual(1, 1, 'Not equal') 12 | 13 | @unittest.skip("demonstrating skipping") 14 | def test_3C(self): 15 | self.assertEqual(1, 1, 'Not equal') 16 | 17 | 18 | if __name__ == '__main__': 19 | unittest.main() 20 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/multi/tests/test_one.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | 4 | import unittest 5 | 6 | class Test_test1(unittest.TestCase): 7 | def test_A(self): 8 | self.fail("Not implemented") 9 | 10 | def test_B(self): 11 | self.assertEqual(1, 1, 'Not equal') 12 | 13 | @unittest.skip("demonstrating skipping") 14 | def test_c(self): 15 | self.assertEqual(1, 1, 'Not equal') 16 | 17 | 18 | if __name__ == '__main__': 19 | unittest.main() 20 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/multi/tests/test_two.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | 4 | import unittest 5 | 6 | class Test_test2(unittest.TestCase): 7 | def test_2A(self): 8 | self.fail("Not implemented") 9 | 10 | def test_2B(self): 11 | self.assertEqual(1, 1, 'Not equal') 12 | 13 | @unittest.skip("demonstrating skipping") 14 | def test_2C(self): 15 | self.assertEqual(1, 1, 'Not equal') 16 | 17 | 18 | if __name__ == '__main__': 19 | unittest.main() 20 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/noseFiles/specific/tst_unittest_one.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | 4 | import unittest 5 | 6 | class Test_test1(unittest.TestCase): 7 | def tst_A(self): 8 | self.fail("Not implemented") 9 | 10 | def tst_B(self): 11 | self.assertEqual(1, 1, 'Not equal') 12 | 13 | 14 | if __name__ == '__main__': 15 | unittest.main() 16 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/noseFiles/specific/tst_unittest_two.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | class Tst_test2(unittest.TestCase): 4 | def tst_A2(self): 5 | self.fail("Not implemented") 6 | 7 | def tst_B2(self): 8 | self.assertEqual(1,1,'Not equal') 9 | 10 | def tst_C2(self): 11 | self.assertEqual(1,2,'Not equal') 12 | 13 | def tst_D2(self): 14 | raise ArithmeticError() 15 | pass 16 | 17 | if __name__ == '__main__': 18 | unittest.main() 19 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/noseFiles/test_root.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | 4 | import unittest 5 | 6 | class Test_Root_test1(unittest.TestCase): 7 | def test_Root_A(self): 8 | self.fail("Not implemented") 9 | 10 | def test_Root_B(self): 11 | self.assertEqual(1, 1, 'Not equal') 12 | 13 | @unittest.skip("demonstrating skipping") 14 | def test_Root_c(self): 15 | self.assertEqual(1, 1, 'Not equal') 16 | 17 | 18 | if __name__ == '__main__': 19 | unittest.main() 20 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/noseFiles/tests/test4.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | 4 | class Test_test3(unittest.TestCase): 5 | def test4A(self): 6 | self.fail("Not implemented") 7 | 8 | def test4B(self): 9 | self.assertEqual(1, 1, 'Not equal') 10 | 11 | 12 | if __name__ == '__main__': 13 | unittest.main() 14 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/noseFiles/tests/test_unittest_one.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | 4 | import unittest 5 | 6 | class Test_test1(unittest.TestCase): 7 | def test_A(self): 8 | self.fail("Not implemented") 9 | 10 | def test_B(self): 11 | self.assertEqual(1, 1, 'Not equal') 12 | 13 | @unittest.skip("demonstrating skipping") 14 | def test_c(self): 15 | self.assertEqual(1, 1, 'Not equal') 16 | 17 | 18 | if __name__ == '__main__': 19 | unittest.main() 20 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/noseFiles/tests/unittest_three_test.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | 4 | class Test_test3(unittest.TestCase): 5 | def test_A(self): 6 | self.fail("Not implemented") 7 | 8 | def test_B(self): 9 | self.assertEqual(1, 1, 'Not equal') 10 | 11 | 12 | if __name__ == '__main__': 13 | unittest.main() 14 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/pytestFiles/results/five.xml: -------------------------------------------------------------------------------- 1 | self = <test_root.Test_Root_test1 testMethod=test_Root_A> 2 | 3 | def test_Root_A(self): 4 | > self.fail("Not implemented") 5 | E AssertionError: Not implemented 6 | 7 | test_root.py:8: AssertionError 8 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/single/test_root.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | 4 | import unittest 5 | 6 | class Test_Root_test1(unittest.TestCase): 7 | def test_Root_A(self): 8 | self.fail("Not implemented") 9 | 10 | def test_Root_B(self): 11 | self.assertEqual(1, 1, 'Not equal') 12 | 13 | @unittest.skip("demonstrating skipping") 14 | def test_Root_c(self): 15 | self.assertEqual(1, 1, 'Not equal') 16 | 17 | 18 | if __name__ == '__main__': 19 | unittest.main() 20 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/single/tests/test_one.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | 4 | import unittest 5 | 6 | class Test_test1(unittest.TestCase): 7 | def test_A(self): 8 | self.fail("Not implemented") 9 | 10 | def test_B(self): 11 | self.assertEqual(1, 1, 'Not equal') 12 | 13 | @unittest.skip("demonstrating skipping") 14 | def test_c(self): 15 | self.assertEqual(1, 1, 'Not equal') 16 | 17 | 18 | if __name__ == '__main__': 19 | unittest.main() 20 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/specificTest/tests/test_unittest_one.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | class Test_test_one_1(unittest.TestCase): 4 | def test_1_1_1(self): 5 | self.assertEqual(1,1,'Not equal') 6 | 7 | def test_1_1_2(self): 8 | self.assertEqual(1,2,'Not equal') 9 | 10 | @unittest.skip("demonstrating skipping") 11 | def test_1_1_3(self): 12 | self.assertEqual(1,2,'Not equal') 13 | 14 | class Test_test_one_2(unittest.TestCase): 15 | def test_1_2_1(self): 16 | self.assertEqual(1,1,'Not equal') 17 | 18 | if __name__ == '__main__': 19 | unittest.main() 20 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/specificTest/tests/test_unittest_two.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | class Test_test_two_1(unittest.TestCase): 4 | def test_1_1_1(self): 5 | self.assertEqual(1,1,'Not equal') 6 | 7 | def test_1_1_2(self): 8 | self.assertEqual(1,2,'Not equal') 9 | 10 | @unittest.skip("demonstrating skipping") 11 | def test_1_1_3(self): 12 | self.assertEqual(1,2,'Not equal') 13 | 14 | class Test_test_two_2(unittest.TestCase): 15 | def test_2_1_1(self): 16 | self.assertEqual(1,1,'Not equal') 17 | 18 | if __name__ == '__main__': 19 | unittest.main() 20 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/standard/test_root.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | 4 | import unittest 5 | 6 | class Test_Root_test1(unittest.TestCase): 7 | def test_Root_A(self): 8 | self.fail("Not implemented") 9 | 10 | def test_Root_B(self): 11 | self.assertEqual(1, 1, 'Not equal') 12 | 13 | @unittest.skip("demonstrating skipping") 14 | def test_Root_c(self): 15 | self.assertEqual(1, 1, 'Not equal') 16 | 17 | 18 | if __name__ == '__main__': 19 | unittest.main() 20 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/standard/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/test/pythonFiles/testFiles/standard/tests/__init__.py -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/standard/tests/external.py: -------------------------------------------------------------------------------- 1 | class ForeignTests: 2 | class TestExtraNestedForeignTests: 3 | def test_super_deep_foreign(self): 4 | assert False 5 | def test_foreign_test(self): 6 | assert False 7 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/standard/tests/test_another_pytest.py: -------------------------------------------------------------------------------- 1 | # content of tests/test_something.py 2 | import pytest 3 | import unittest 4 | 5 | @pytest.fixture 6 | def parametrized_username(): 7 | return 'overridden-username' 8 | 9 | @pytest.fixture(params=['one', 'two', 'three']) 10 | def non_parametrized_username(request): 11 | return request.param 12 | 13 | def test_username(parametrized_username): 14 | assert parametrized_username == 'overridden-username' 15 | 16 | def test_parametrized_username(non_parametrized_username): 17 | assert non_parametrized_username in ['one', 'two', 'threes'] 18 | 19 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/standard/tests/test_foreign_nested_tests.py: -------------------------------------------------------------------------------- 1 | from .external import ForeignTests 2 | 3 | 4 | class TestNestedForeignTests: 5 | class TestInheritingHere(ForeignTests): 6 | def test_nested_normal(self): 7 | assert True 8 | def test_normal(self): 9 | assert True 10 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/standard/tests/test_unittest_one.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | 4 | import unittest 5 | 6 | class Test_test1(unittest.TestCase): 7 | def test_A(self): 8 | self.fail("Not implemented") 9 | 10 | def test_B(self): 11 | self.assertEqual(1, 1, 'Not equal') 12 | 13 | @unittest.skip("demonstrating skipping") 14 | def test_c(self): 15 | self.assertEqual(1, 1, 'Not equal') 16 | 17 | 18 | if __name__ == '__main__': 19 | unittest.main() 20 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/standard/tests/unittest_three_test.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | 4 | class Test_test3(unittest.TestCase): 5 | def test_A(self): 6 | self.fail("Not implemented") 7 | 8 | def test_B(self): 9 | self.assertEqual(1, 1, 'Not equal') 10 | 11 | 12 | if __name__ == '__main__': 13 | unittest.main() 14 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/unittestsWithConfigs/other/test_unittest_one.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | 4 | import unittest 5 | 6 | class Test_test1(unittest.TestCase): 7 | def test_A(self): 8 | self.fail("Not implemented") 9 | 10 | def test_B(self): 11 | self.assertEqual(1, 1, 'Not equal') 12 | 13 | @unittest.skip("demonstrating skipping") 14 | def test_c(self): 15 | self.assertEqual(1, 1, 'Not equal') 16 | 17 | 18 | if __name__ == '__main__': 19 | unittest.main() 20 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/unittestsWithConfigs/pytest.ini: -------------------------------------------------------------------------------- 1 | # content of pytest.ini 2 | [pytest] 3 | testpaths = other -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/unittestsWithConfigs/test_root.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | 4 | import unittest 5 | 6 | class Test_Root_test1(unittest.TestCase): 7 | def test_Root_A(self): 8 | self.fail("Not implemented") 9 | 10 | def test_Root_B(self): 11 | self.assertEqual(1, 1, 'Not equal') 12 | 13 | @unittest.skip("demonstrating skipping") 14 | def test_Root_c(self): 15 | self.assertEqual(1, 1, 'Not equal') 16 | 17 | 18 | if __name__ == '__main__': 19 | unittest.main() 20 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/unittestsWithConfigs/tests/test_another_pytest.py: -------------------------------------------------------------------------------- 1 | # content of tests/test_something.py 2 | import pytest 3 | import unittest 4 | 5 | @pytest.fixture 6 | def parametrized_username(): 7 | return 'overridden-username' 8 | 9 | @pytest.fixture(params=['one', 'two', 'three']) 10 | def non_parametrized_username(request): 11 | return request.param 12 | 13 | def test_username(parametrized_username): 14 | assert parametrized_username == 'overridden-username' 15 | 16 | def test_parametrized_username(non_parametrized_username): 17 | assert non_parametrized_username in ['one', 'two', 'threes'] 18 | 19 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/unittestsWithConfigs/tests/test_unittest_one.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | 4 | import unittest 5 | 6 | class Test_test1(unittest.TestCase): 7 | def test_A(self): 8 | self.fail("Not implemented") 9 | 10 | def test_B(self): 11 | self.assertEqual(1, 1, 'Not equal') 12 | 13 | @unittest.skip("demonstrating skipping") 14 | def test_c(self): 15 | self.assertEqual(1, 1, 'Not equal') 16 | 17 | 18 | if __name__ == '__main__': 19 | unittest.main() 20 | -------------------------------------------------------------------------------- /src/test/pythonFiles/testFiles/unittestsWithConfigs/tests/unittest_three_test.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | 4 | class Test_test3(unittest.TestCase): 5 | def test_A(self): 6 | self.fail("Not implemented") 7 | 8 | def test_B(self): 9 | self.assertEqual(1, 1, 'Not equal') 10 | 11 | 12 | if __name__ == '__main__': 13 | unittest.main() 14 | -------------------------------------------------------------------------------- /src/test/pythonFiles/typeFormatFiles/elseBlocksFirstLine2.py: -------------------------------------------------------------------------------- 1 | if True == True: 2 | a = 2 3 | b = 3 4 | else: -------------------------------------------------------------------------------- /src/test/pythonFiles/typeFormatFiles/elseBlocksFirstLine4.py: -------------------------------------------------------------------------------- 1 | if True == True: 2 | a = 2 3 | b = 3 4 | else: -------------------------------------------------------------------------------- /src/test/pythonFiles/typeFormatFiles/elseBlocksFirstLineTab.py: -------------------------------------------------------------------------------- 1 | if True == True: 2 | a = 2 3 | b = 3 4 | else: -------------------------------------------------------------------------------- /src/test/workspaceSymbols/common.ts: -------------------------------------------------------------------------------- 1 | import { ConfigurationTarget, Uri, workspace } from 'vscode'; 2 | import { PythonSettings } from '../../client/common/configSettings'; 3 | 4 | export async function enableDisableWorkspaceSymbols( 5 | resource: Uri, 6 | enabled: boolean, 7 | configTarget: ConfigurationTarget 8 | ) { 9 | const settings = workspace.getConfiguration('python', resource); 10 | await settings.update('workspaceSymbols.enabled', enabled, configTarget); 11 | PythonSettings.dispose(); 12 | } 13 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/parent/child/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.workspaceSymbols.enabled": false 3 | } 4 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/parent/child/childFile.py: -------------------------------------------------------------------------------- 1 | """pylint option block-disable""" 2 | 3 | __revision__ = None 4 | 5 | class Child2Class(object): 6 | """block-disable test""" 7 | 8 | def __init__(self): 9 | pass 10 | 11 | def meth1OfChild(self, arg): 12 | """this issues a message""" 13 | print (self) 14 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/smokeTests/.gitignore: -------------------------------------------------------------------------------- 1 | .vscode/** 2 | *.log 3 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/smokeTests/testExecInTerminal.py: -------------------------------------------------------------------------------- 1 | import getopt 2 | import sys 3 | import os 4 | 5 | optlist, args = getopt.getopt(sys.argv, '') 6 | 7 | # If the caller has not specified the output file, create one for them with 8 | # the same name as the caller script, but with a .log extension. 9 | log_file = os.path.splitext(sys.argv[0])[0] + '.log' 10 | 11 | # If the output file is given, use that instead. 12 | if len(args) == 2: 13 | log_file = args[1] 14 | 15 | with open(log_file, "a") as f: 16 | f.write(sys.executable) 17 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace1/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.linting.enabled": true 3 | } 4 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace2/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.workspaceSymbols.tagFilePath": "${workspaceFolder}/workspace2.tags.file", 3 | "python.workspaceSymbols.enabled": false 4 | } 5 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace2/workspace2File.py: -------------------------------------------------------------------------------- 1 | """pylint option block-disable""" 2 | 3 | __revision__ = None 4 | 5 | class Workspace2Class(object): 6 | """block-disable test""" 7 | 8 | def __init__(self): 9 | pass 10 | 11 | def meth1OfWorkspace2(self, arg): 12 | """this issues a message""" 13 | print (self) 14 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace3/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.workspaceSymbols.tagFilePath": "${workspaceRoot}/workspace3.tags.file" 3 | } 4 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace4/.env: -------------------------------------------------------------------------------- 1 | X1234PYEXTUNITTESTVAR=1234 2 | PYTHONPATH=../workspace5 3 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace4/.env2: -------------------------------------------------------------------------------- 1 | X12345PYEXTUNITTESTVAR=12345 2 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace4/.env5: -------------------------------------------------------------------------------- 1 | X=1 2 | Y=2 3 | PYTHONPATH=/usr/one/three:/usr/one/four 4 | # Unix PATH variable 5 | PATH=/usr/x:/usr/y 6 | # Windows Path variable 7 | Path=/usr/x:/usr/y 8 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace4/.env6: -------------------------------------------------------------------------------- 1 | REPO=/home/user/git/foobar 2 | PYTHONPATH=${REPO}/foo:${REPO}/bar 3 | PYTHON=${BINDIR}/python3 4 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace4/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace4/one.py: -------------------------------------------------------------------------------- 1 | from hello import world 2 | print(world.sayHello()) 3 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace5/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace5/djangoApp/home/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/testMultiRootWkspc/workspace5/djangoApp/home/__init__.py -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace5/djangoApp/home/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Hello {{ value_from_server }}!

6 |

Hello {{ another_value_from_server }}!

7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace5/djangoApp/home/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url 2 | 3 | from . import views 4 | 5 | urlpatterns = [ 6 | url('', views.index, name='index'), 7 | ] 8 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace5/djangoApp/home/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render 2 | from django.template import loader 3 | 4 | 5 | def index(request): 6 | context = { 7 | 'value_from_server':'this_is_a_value_from_server', 8 | 'another_value_from_server':'this_is_another_value_from_server' 9 | } 10 | return render(request, 'index.html', context) 11 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace5/djangoApp/mysite/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/testMultiRootWkspc/workspace5/djangoApp/mysite/__init__.py -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace5/djangoApp/mysite/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for mysite project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace5/flaskApp/run.py: -------------------------------------------------------------------------------- 1 | from flask import Flask, render_template 2 | app = Flask(__name__) 3 | 4 | 5 | @app.route('/') 6 | def hello(): 7 | return render_template('index.html', 8 | value_from_server='this_is_a_value_from_server', 9 | another_value_from_server='this_is_another_value_from_server') 10 | 11 | 12 | if __name__ == '__main__': 13 | app.run() 14 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace5/flaskApp/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Hello {{ value_from_server }}!

6 |

Hello {{ another_value_from_server }}!

7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace5/hello/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/testMultiRootWkspc/workspace5/hello/__init__.py -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace5/hello/world.py: -------------------------------------------------------------------------------- 1 | def sayHello(): 2 | return "Hello" 3 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace5/mymod/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techwithtim/vscode-python/44fd2d8ce6275cd6b9286257979451b3f207f194/src/testMultiRootWkspc/workspace5/mymod/__init__.py -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace5/mymod/__main__.py: -------------------------------------------------------------------------------- 1 | print("Hello world!") 2 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace5/remoteDebugger-start-with-nowait.py: -------------------------------------------------------------------------------- 1 | print('hello world') 2 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace5/remoteDebugger-start.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import time 3 | 4 | def main(): 5 | sys.stdout.write('this is stdout') 6 | sys.stdout.flush() 7 | sys.stderr.write('this is stderr') 8 | sys.stderr.flush() 9 | # Give the debugger some time to add a breakpoint. 10 | time.sleep(5) 11 | for i in range(1): 12 | time.sleep(0.5) 13 | pass 14 | 15 | print('this is print') 16 | 17 | main() 18 | -------------------------------------------------------------------------------- /src/testMultiRootWkspc/workspace5/remoteDebugger.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import ptvsd 3 | import time 4 | 5 | sys.stdout.write('start') 6 | sys.stdout.flush() 7 | address = ('127.0.0.1', int(sys.argv[1])) 8 | ptvsd.enable_attach('super_secret', address) 9 | ptvsd.wait_for_attach() 10 | 11 | sys.stdout.write('attached') 12 | sys.stdout.flush() 13 | # Give the debugger some time to add a breakpoint. 14 | time.sleep(2) 15 | 16 | sys.stdout.write('end') 17 | sys.stdout.flush() 18 | -------------------------------------------------------------------------------- /types/@nteract/transform-dataresource.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@nteract/transform-dataresource' { 2 | export = index; 3 | const index: any; 4 | } 5 | -------------------------------------------------------------------------------- /types/@nteract/transform-geojson.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@nteract/transform-geojson' { 2 | export = index; 3 | const index: any; 4 | } 5 | -------------------------------------------------------------------------------- /types/@nteract/transform-model-debug.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@nteract/transform-model-debug' { 2 | export default class _default { 3 | static MIMETYPE: string; 4 | constructor(...args: any[]); 5 | forceUpdate(callback: any): void; 6 | render(): any; 7 | setState(partialState: any, callback: any): void; 8 | shouldComponentUpdate(): any; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /types/@nteract/transform-vsdom.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@nteract/transform-vdom' { 2 | export class VDOM { 3 | static MIMETYPE: string; 4 | constructor(...args: any[]); 5 | componentDidMount(): void; 6 | componentDidUpdate(): void; 7 | forceUpdate(callback: any): void; 8 | render(): any; 9 | setState(partialState: any, callback: any): void; 10 | shouldComponentUpdate(nextProps: any): any; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /types/ansi-to-html.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'ansi-to-html' { 2 | export = ansiToHtml; 3 | class ansiToHtml { 4 | constructor(options?: any); 5 | opts: any; 6 | stack: any; 7 | stickyStack: any; 8 | toHtml(input: any): any; 9 | } 10 | } 11 | --------------------------------------------------------------------------------