├── .config ├── 1espt │ └── PipelineAutobaseliningConfig.yml └── guardian │ └── .gdnbaselines ├── .devcontainer ├── .p10k.zsh ├── dev-with-python │ ├── Dockerfile │ └── devcontainer.json ├── dev │ ├── Dockerfile │ ├── common-debian.sh │ ├── devcontainer.json │ └── meta.env ├── test-alpine-arm64-python │ ├── Dockerfile │ └── devcontainer.json ├── test-alpine-arm64 │ ├── Dockerfile │ └── devcontainer.json ├── test-alpine-x64-python │ ├── Dockerfile │ └── devcontainer.json ├── test-alpine-x64 │ ├── Dockerfile │ └── devcontainer.json ├── test-linux-arm64-python │ ├── Dockerfile │ └── devcontainer.json ├── test-linux-arm64 │ ├── Dockerfile │ └── devcontainer.json ├── test-linux-armhf │ ├── Dockerfile │ └── devcontainer.json ├── test-linux-x64-python │ ├── Dockerfile │ └── devcontainer.json └── test-linux-x64 │ ├── Dockerfile │ └── devcontainer.json ├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── 1_bug_report.md │ ├── 2_bug_form.yml │ ├── 3_feature_request.md │ └── config.yml ├── PULL_REQUEST_TEMPLATE.md ├── actions │ ├── build-vsix │ │ └── action.yml │ ├── create-venv-for-tests │ │ └── action.yml │ ├── npm-ci │ │ └── action.yml │ ├── set-python-conda │ │ └── action.yml │ └── set-python │ │ └── action.yml ├── classifier.json ├── codecov.yml ├── commands.json ├── dependabot.yml ├── endgame_plan.md ├── test_plan.md └── workflows │ ├── aggregate-test-results.yml │ ├── build-test.yml │ ├── codeql-analysis.yml │ ├── lock.yml │ └── week.js ├── .gitignore ├── .husky └── pre-commit ├── .nvmrc ├── .prettierignore ├── .prettierrc.js ├── .vscode-test.mjs ├── .vscode ├── extensions.json ├── launch.json ├── notebooks │ ├── CITestResults.ipynb │ ├── GithubLabels.ipynb │ ├── jupyter.github-issues │ └── my-work.github-issues ├── settings.json ├── shared.code-snippets └── tasks.json ├── .vscodeignore ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CODING_STANDARDS.md ├── CONTRIBUTING.md ├── CodeQL.yml ├── CredScanSuppressions.json ├── INTERACTIVE_TROUBLESHOOTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── SUPPORT.md ├── api ├── .gitignore ├── .npmignore ├── LICENSE.md ├── README.md ├── SECURITY.md ├── clean.js ├── package.json ├── proposed.js └── stable.js ├── build ├── .mocha-multi-reporters.config ├── .mocha.unittests.js.json ├── .mocha.unittests.json ├── .mocha.unittests.ts.json ├── .nycrc ├── azure-pipeline.npm.yml ├── azure-pipeline.pre-release.yml ├── azure-pipeline.stable.yml ├── ci │ ├── addEnvPath.py │ ├── component-gov.yaml │ ├── postInstall.js │ ├── scripts │ │ └── spec_with_pid.js │ └── static_analysis │ │ ├── credscan │ │ └── CredScanSuppressions.json │ │ └── policheck │ │ └── exceptions.mdb ├── conda-nonconda-test-requirements.txt ├── conda-test-requirements.yml ├── constants.js ├── contributedFiles.json ├── esbuild │ ├── build.ts │ ├── jquery.js │ ├── process.development.js │ ├── process.production.js │ ├── release.pre-release.js │ └── release.stable.js ├── eslint-rules │ ├── index.js │ └── package.json ├── existingFiles.json ├── installDenoKernel.ts ├── launchWeb.js ├── launchWebTest.js ├── launchWebUtils.js ├── postDebugWebTest.js ├── preDebugWebTest.js ├── preLaunchWebTest.js ├── tslint-rules │ ├── baseRuleWalker.js │ └── messagesMustBeLocalizedRule.js ├── unlocalizedFiles.json ├── util.js ├── venv-smoke-test-requirements.txt ├── venv-test-ipywidgets8-requirements.txt ├── venv-test-requirements.txt ├── verifyProposedApiUsage.ts ├── webTestReporter.js └── webpack │ ├── common.js │ ├── fs-empty.js │ ├── loaders │ ├── externalizeDependencies.js │ ├── fixNodeFetch.js │ ├── jsonloader.js │ └── remarkLoader.js │ ├── moment.js │ ├── pdfkit.js │ ├── plugins │ └── less-plugin-base64.js │ ├── vscode-jupyter-release-version.js │ └── webpack.extension.web.config.js ├── data ├── .vscode │ └── settings.json └── test.py ├── debugpy_logging.cmd ├── gulpfile.js ├── icon.png ├── images ├── Jupyter README │ ├── CreateNewNotebook.png │ └── notebookui.png ├── dataviewerdark.gif └── runbyline.gif ├── package-lock.json ├── package.json ├── package.nls.json ├── pvsc.code-workspace ├── pythonFiles ├── .env ├── .vscode │ └── settings.json ├── aggregateTestResults.py ├── get-pip.py ├── install_debugpy.py ├── interpreterInfo.py ├── printEnvVariables.py ├── printEnvVariablesToFile.py ├── printJupyWidgetEntryPoints.py ├── printJupyterDataDir.py ├── pyproject.toml ├── shell_exec.py ├── symbolProvider.py ├── testlauncher.py ├── tests │ ├── __init__.py │ ├── __main__.py │ ├── ipython │ │ ├── __init__.py │ │ ├── getJupyterVariableList.py │ │ ├── getJupyterVariableValue.py │ │ ├── random.csv │ │ ├── scripts.py │ │ └── test_variables.py │ ├── run_all.py │ ├── test_normalize_selection.py │ └── util.py ├── visualstudio_py_testlauncher.py └── vscode_datascience_helpers │ ├── __init__.py │ ├── dataframes │ └── vscodeDataFrame.py │ ├── dummyJupyter.py │ ├── getJupyterKernels.py │ ├── getJupyterKernelspecVersion.py │ ├── getJupyterVariableDataFrameInfo.py │ ├── getJupyterVariableDataFrameRows.py │ ├── getJupyterVariableShape.py │ ├── getServerInfo.py │ ├── getVariableInfo │ ├── vscodeGetVariableInfo.py │ └── vscodeGetVariablesForProvider.py │ ├── jupyter_nbInstalled.py │ ├── kernel │ └── addRunCellHook.py │ ├── kernel_interrupt_daemon.py │ ├── tests │ └── logParser.py │ └── winapi.py ├── resources ├── MagicPython.tmLanguage.json ├── dark │ ├── export_to_python.svg │ ├── interrupt.svg │ ├── restart-kernel.svg │ ├── runabove-inverse.svg │ ├── runbelow-inverse.svg │ └── variable_explorer.svg ├── defaultTheme.json ├── light │ ├── export_to_python.svg │ ├── interrupt.svg │ ├── restart-kernel.svg │ ├── runabove.svg │ ├── runbelow.svg │ └── variable_explorer.svg └── walkthroughs │ ├── KernelPicker.gif │ ├── OpenOrCreateNotebook.gif │ ├── data.svg │ ├── dataviewerdark.gif │ ├── interactive.gif │ ├── kernel.svg │ ├── learnmore.svg │ └── opennotebook.svg ├── snippets └── python.json ├── src ├── api.d.ts ├── api.deprecated.d.ts ├── api.internal.d.ts ├── api.proposed.chatMessages.d.ts ├── api.proposed.displayUpdate.d.ts ├── api.proposed.jupyterSettings.d.ts ├── api.proposed.kernelStartHook.d.ts ├── api.proposed.notebookEnvironment.ts ├── api.proposed.removeJupyterServer.d.ts ├── api.proposed.variables.d.ts ├── api.pythonIntegration.d.ts ├── api.unstable.d.ts ├── codespaces │ ├── codeSpacesServerSelector.ts │ └── index.ts ├── commands.ts ├── extension.common.ts ├── extension.node.proxy.ts ├── extension.node.ts ├── extension.web.ts ├── gdpr.ts ├── interactive-window │ ├── InteractiveControllerHelper.ts │ ├── InteractiveWindowController.ts │ ├── commands │ │ ├── commandRegistry.ts │ │ └── statusProvider.ts │ ├── debugger │ │ ├── helper.ts │ │ ├── interactiveWindowDebugger.node.ts │ │ ├── jupyter │ │ │ ├── debugCellController.ts │ │ │ ├── debugger.ts │ │ │ ├── debuggingManager.ts │ │ │ ├── kernelDebugAdapter.ts │ │ │ └── restartNotSupportedController.ts │ │ └── startupCodeProvider.ts │ ├── editor-integration │ │ ├── cellFactory.ts │ │ ├── cellFactory.unit.test.ts │ │ ├── cellMatcher.ts │ │ ├── cellMatcher.unit.test.ts │ │ ├── cellRangeCache.ts │ │ ├── cellRangeCache.unit.test.ts │ │ ├── codeGenerator.ts │ │ ├── codeGenerator.unit.test.ts │ │ ├── codeGeneratorFactory.ts │ │ ├── codeGeneratorFactory.unit.test.ts │ │ ├── codeLensFactory.ts │ │ ├── codelensProviderActivator.ts │ │ ├── codelensprovider.ts │ │ ├── codelensprovider.unit.test.ts │ │ ├── codewatcher.ts │ │ ├── codewatcher.unit.test.ts │ │ ├── decorator.ts │ │ ├── generatedCodeStorage.ts │ │ ├── generatedCodeStorageFactory.ts │ │ ├── hoverProvider.ts │ │ ├── pythonCellFoldingProvider.ts │ │ └── types.ts │ ├── generatedCodeStorageManager.unit.test.ts │ ├── generatedCodeStoreManager.ts │ ├── helpers.ts │ ├── identity.ts │ ├── interactiveWindow.ts │ ├── interactiveWindowProvider.ts │ ├── notebookInteractiveWindow.ts │ ├── outputs │ │ └── tracebackFormatter.ts │ ├── serviceRegistry.node.ts │ ├── serviceRegistry.web.ts │ ├── shiftEnterBanner.ts │ ├── shiftEnterBanner.unit.test.ts │ ├── systemInfoCell.ts │ └── types.ts ├── kernels │ ├── chat │ │ ├── generator.ts │ │ ├── generator.unit.test.ts │ │ └── kernelStartupCodeProvider.ts │ ├── common │ │ ├── baseJupyterSession.ts │ │ ├── baseJupyterSessionConnection.ts │ │ ├── baseJupyterSessionConnection.unit.test.ts │ │ ├── helpers.ts │ │ ├── helpers.unit.test.ts │ │ ├── kernelSessionFactory.ts │ │ ├── kernelSocketWrapper.ts │ │ └── usedPorts.ts │ ├── displayOptions.ts │ ├── errors │ │ ├── invalidRemoteJupyterServerUriHandleError.ts │ │ ├── jupyterDebuggerNotInstalledError.ts │ │ ├── jupyterInvalidKernelError.ts │ │ ├── jupyterKernelDependencyError.ts │ │ ├── jupyterWaitForIdleError.ts │ │ ├── kernelConnectionTimeoutError.ts │ │ ├── kernelDeadError.ts │ │ ├── kernelDiedError.ts │ │ ├── kernelError.ts │ │ ├── kernelErrorHandler.node.ts │ │ ├── kernelErrorHandler.ts │ │ ├── kernelErrorHandler.unit.test.ts │ │ ├── kernelErrorHandler.web.ts │ │ ├── kernelInterruptTimeoutError.ts │ │ ├── kernelPortNotUsedTimeoutError.ts │ │ ├── kernelProcessExitedError.ts │ │ ├── kernelSpecNotTrustedError.ts │ │ ├── remoteJupyterServerUriProviderError.ts │ │ └── types.ts │ ├── execution │ │ ├── cellDisplayIdTracker.ts │ │ ├── cellExecution.ts │ │ ├── cellExecutionCreator.ts │ │ ├── cellExecutionMessageHandler.ts │ │ ├── cellExecutionMessageHandler.unit.test.ts │ │ ├── cellExecutionMessageHandlerService.ts │ │ ├── cellExecutionQueue.ts │ │ ├── codeExecution.ts │ │ ├── codeExecution.unit.test.ts │ │ ├── executionHelpers.ts │ │ ├── extensionDisplayDataTracker.ts │ │ ├── extensionDisplayDataTracker.unit.test.ts │ │ ├── helpers.ts │ │ ├── helpers.unit.test.ts │ │ ├── lastCellExecutionTracker.ts │ │ ├── notebookUpdater.ts │ │ └── types.ts │ ├── helpers.node.ts │ ├── helpers.ts │ ├── helpers.unit.test.ts │ ├── internalTypes.ts │ ├── jupyter │ │ ├── clearJupyterServersCommand.ts │ │ ├── connection │ │ │ ├── jupyterConnection.ts │ │ │ ├── jupyterConnection.unit.test.ts │ │ │ ├── jupyterRemoteCachedKernelValidator.ts │ │ │ ├── jupyterServerProviderRegistry.ts │ │ │ ├── liveRemoteKernelConnectionTracker.ts │ │ │ ├── liveRemoteKernelConnectionTracker.unit.test.ts │ │ │ ├── preferredRemoteKernelIdProvider.ts │ │ │ ├── remoteJupyterServerMruUpdate.ts │ │ │ ├── serverUriStorage.ts │ │ │ └── serverUriStorage.unit.test.ts │ │ ├── constants.ts │ │ ├── finder │ │ │ ├── remoteKernelFinder.ts │ │ │ ├── remoteKernelFinder.unit.test.ts │ │ │ ├── remoteKernelFinderController.ts │ │ │ ├── remoteKernelFinderController.unit.test.ts │ │ │ └── types.ts │ │ ├── helpers.ts │ │ ├── interpreter │ │ │ ├── activation.node.ts │ │ │ ├── jupyterCommand.node.ts │ │ │ ├── jupyterInterpreterDependencyService.node.ts │ │ │ ├── jupyterInterpreterDependencyService.unit.test.ts │ │ │ ├── jupyterInterpreterSelectionCommand.node.ts │ │ │ ├── jupyterInterpreterSelectionCommand.unit.test.ts │ │ │ ├── jupyterInterpreterSelector.node.ts │ │ │ ├── jupyterInterpreterService.node.ts │ │ │ ├── jupyterInterpreterService.unit.test.ts │ │ │ ├── jupyterInterpreterStateStore.ts │ │ │ ├── jupyterInterpreterStateStore.unit.test.ts │ │ │ ├── jupyterInterpreterSubCommandExecutionService.node.ts │ │ │ ├── jupyterInterpreterSubCommandExecutionService.unit.test.ts │ │ │ ├── nbconvertExportToPythonService.node.ts │ │ │ └── nbconvertInterpreterDependencyChecker.node.ts │ │ ├── jupyterKernelSpec.ts │ │ ├── jupyterUtils.ts │ │ ├── launcher │ │ │ ├── jupyterConnectionWaiter.node.ts │ │ │ ├── jupyterConnectionWaiter.node.unit.test.ts │ │ │ ├── jupyterServerConnector.node.ts │ │ │ ├── jupyterServerHelper.node.ts │ │ │ ├── jupyterServerProvider.node.ts │ │ │ ├── jupyterServerProvider.web.ts │ │ │ ├── jupyterServerStarter.node.ts │ │ │ ├── juypterServerProvider.unit.test.ts │ │ │ └── serverPreload.node.ts │ │ ├── serviceRegistry.node.ts │ │ ├── serviceRegistry.web.ts │ │ ├── session │ │ │ ├── jupyterKernelService.node.ts │ │ │ ├── jupyterKernelService.unit.test.ts │ │ │ ├── jupyterKernelService.web.ts │ │ │ ├── jupyterKernelSessionFactory.ts │ │ │ ├── jupyterKernelSessionFactory.unit.test.ts │ │ │ ├── jupyterLabHelper.ts │ │ │ ├── jupyterRequestCreator.node.ts │ │ │ ├── jupyterRequestCreator.web.ts │ │ │ ├── jupyterSession.ts │ │ │ ├── jupyterSession.unit.test.ts │ │ │ └── requestAgentCreator.node.ts │ │ ├── types.node.ts │ │ └── types.ts │ ├── kernel.ts │ ├── kernelAutoReConnectMonitor.ts │ ├── kernelAutoReConnectMonitor.unit.test.ts │ ├── kernelAutoRestartMonitor.node.ts │ ├── kernelAutoRestartMonitor.unit.test.ts │ ├── kernelController.ts │ ├── kernelCrashMonitor.ts │ ├── kernelCrashMonitor.unit.test.ts │ ├── kernelDependencyService.node.ts │ ├── kernelDependencyService.unit.test.ts │ ├── kernelDependencyService.web.ts │ ├── kernelExecution.ts │ ├── kernelFinder.ts │ ├── kernelFinder.unit.test.ts │ ├── kernelInfo.ts │ ├── kernelProvider.base.ts │ ├── kernelProvider.node.ts │ ├── kernelProvider.node.unit.test.ts │ ├── kernelProvider.web.ts │ ├── kernelProvider.web.unit.test.ts │ ├── kernelRefreshIndicator.node.ts │ ├── kernelRefreshIndicator.node.unit.test.ts │ ├── kernelRefreshIndicator.web.ts │ ├── kernelRefreshIndicator.web.unit.test.ts │ ├── kernelSettings.ts │ ├── kernelSocket.ts │ ├── kernelStartupCodeProviders.node.ts │ ├── kernelStartupCodeProviders.web.ts │ ├── kernelStartupTelemetry.node.ts │ ├── kernelStatusProvider.ts │ ├── raw │ │ ├── finder │ │ │ ├── contributedKerneFinder.node.unit.test.ts │ │ │ ├── contributedLocalKernelSpecFinder.node.ts │ │ │ ├── contributedLocalKernelSpecFinder.node.unit.test.ts │ │ │ ├── helper.ts │ │ │ ├── interpreterKernelSpecFinderHelper.node.ts │ │ │ ├── interpreterKernelSpecFinderHelper.node.unit.test.ts │ │ │ ├── jupyterPaths.node.ts │ │ │ ├── jupyterPaths.node.unit.test.ts │ │ │ ├── localKernelSpecFinderBase.node.ts │ │ │ ├── localKernelSpecFinderBase.node.unit.test.ts │ │ │ ├── localKnownPathKernelSpecFinder.node.ts │ │ │ ├── localPythonAndRelatedNonPythonKernelSpecFinder.node.ts │ │ │ ├── localPythonAndRelatedNonPythonKernelSpecFinder.node.unit.test.ts │ │ │ ├── pythonKernelInterruptDaemon.node.ts │ │ │ ├── trustedKernelPaths.node.ts │ │ │ ├── trustedKernelPaths.unit.test.ts │ │ │ ├── trustedKernelPaths.web.ts │ │ │ ├── trustedKernrelPaths.unit.test.ts │ │ │ └── types.ts │ │ ├── launcher │ │ │ ├── kernelEnvVarsService.node.ts │ │ │ ├── kernelEnvVarsService.unit.test.ts │ │ │ ├── kernelLauncher.node.ts │ │ │ ├── kernelLauncher.unit.test.ts │ │ │ ├── kernelProcess.node.ts │ │ │ └── kernelProcess.node.unit.test.ts │ │ ├── session │ │ │ ├── kernelWorkingDirectory.node.ts │ │ │ ├── rawJupyterSession.node.ts │ │ │ ├── rawJupyterSession.node.unit.test.ts │ │ │ ├── rawKernelConnection.node.ts │ │ │ ├── rawKernelSessionFactory.node.ts │ │ │ ├── rawNotebookSupportedService.node.ts │ │ │ ├── rawSessionConnection.node.ts │ │ │ ├── rawSessionConnection.node.unit.test.ts │ │ │ ├── rawSocket.node.ts │ │ │ └── zeromq.node.ts │ │ └── types.ts │ ├── serviceRegistry.node.ts │ ├── serviceRegistry.web.ts │ ├── telemetry │ │ ├── helper.ts │ │ ├── notebookTelemetry.ts │ │ └── sendKernelTelemetryEvent.ts │ ├── types.ts │ └── variables │ │ ├── helpers.ts │ │ ├── jupyterVariables.ts │ │ └── types.ts ├── messageTypes.ts ├── notebooks │ ├── controllers │ │ ├── commands │ │ │ └── installPythonControllerCommands.ts │ │ ├── connectionDisplayData.node.ts │ │ ├── connectionDisplayData.ts │ │ ├── connectionDisplayData.web.ts │ │ ├── controllerRegistration.ts │ │ ├── controllerRegistration.unit.test.ts │ │ ├── ipywidgets │ │ │ ├── message │ │ │ │ ├── commonMessageCoordinator.ts │ │ │ │ ├── ipyWidgetMessageDispatcher.ts │ │ │ │ └── ipyWidgetMessageDispatcherFactory.ts │ │ │ ├── rendererVersionChecker.ts │ │ │ ├── scriptSourceProvider │ │ │ │ ├── baseIPyWidgetScriptManager.ts │ │ │ │ ├── baseIPyWidgetScriptManager.unit.test.ts │ │ │ │ ├── cdnWidgetScriptSourceProvider.ts │ │ │ │ ├── cdnWidgetScriptSourceProvider.unit.test.ts │ │ │ │ ├── ipyWidgetScriptManagerFactory.node.ts │ │ │ │ ├── ipyWidgetScriptManagerFactory.web.ts │ │ │ │ ├── ipyWidgetScriptSource.ts │ │ │ │ ├── ipyWidgetScriptSourceProvider.ts │ │ │ │ ├── ipyWidgetScriptSourceProvider.unit.test.ts │ │ │ │ ├── localIPyWidgetScriptManager.node.ts │ │ │ │ ├── localWidgetScriptSourceProvider.node.ts │ │ │ │ ├── localWidgetScriptSourceProvider.unit.test.ts │ │ │ │ ├── nbExtensionsPathProvider.node.ts │ │ │ │ ├── nbExtensionsPathProvider.unit.test.ts │ │ │ │ ├── nbExtensionsPathProvider.web.ts │ │ │ │ ├── remoteIPyWidgetScriptManager.ts │ │ │ │ ├── remoteWidgetScriptSourceProvider.ts │ │ │ │ ├── remoteWidgetScriptSourceProvider.unit.test.ts │ │ │ │ ├── scriptSourceProviderFactory.node.ts │ │ │ │ ├── scriptSourceProviderFactory.web.ts │ │ │ │ └── scriptUriConverter.ts │ │ │ ├── serviceRegistry.node.ts │ │ │ ├── serviceRegistry.web.ts │ │ │ └── types.ts │ │ ├── kernelConnector.ts │ │ ├── kernelConnector.unit.test.ts │ │ ├── kernelSelector.ts │ │ ├── kernelSource │ │ │ ├── baseKernelSelector.ts │ │ │ ├── environmentCreationCommand.ts │ │ │ ├── kernelSourceCommandHandler.ts │ │ │ ├── localNotebookKernelSourceSelector.node.ts │ │ │ ├── localPythonEnvKernelSourceSelector.node.ts │ │ │ ├── localPythonKernelSelector.node.ts │ │ │ ├── quicPickKernelItemProvider.unit.test.ts │ │ │ ├── quickPickKernelItemProvider.ts │ │ │ ├── remoteNotebookKernelSourceSelector.ts │ │ │ └── types.ts │ │ ├── liveKernelSwitcher.ts │ │ ├── notebookIPyWidgetCoordinator.ts │ │ ├── preferredKernelConnectionService.node.ts │ │ ├── preferredKernelConnectionService.ts │ │ ├── preferredKernelConnectionService.unit.test.ts │ │ ├── pythonEnvKernelConnectionCreator.node.ts │ │ ├── pythonEnvKernelConnectionCreator.unit.test.ts │ │ ├── remoteKernelConnectionHandler.ts │ │ ├── remoteKernelConnectionHandler.unit.test.ts │ │ ├── remoteKernelControllerWatcher.ts │ │ ├── remoteKernelControllerWatcher.unit.test.ts │ │ ├── remoteKernelReconnectBusyIndicator.ts │ │ ├── remoteKernelReconnectBusyIndicator.unit.test.ts │ │ ├── serviceRegistry.node.ts │ │ ├── serviceRegistry.web.ts │ │ ├── types.ts │ │ ├── vscodeNotebookController.ts │ │ └── vscodeNotebookController.unit.test.ts │ ├── debugger │ │ ├── commandRegistry.ts │ │ ├── constants.ts │ │ ├── controllers │ │ │ ├── debugCellController.ts │ │ │ ├── resetKernelController.ts │ │ │ ├── restartController.ts │ │ │ └── runByLineController.ts │ │ ├── debugLocationTracker.ts │ │ ├── debugLocationTracker.unit.test.ts │ │ ├── debugLocationTrackerFactory.ts │ │ ├── debugger.ts │ │ ├── debuggerVariableRegistration.node.ts │ │ ├── debuggerVariables.ts │ │ ├── debuggingManager.ts │ │ ├── debuggingManagerBase.ts │ │ ├── debuggingTypes.ts │ │ ├── helper.ts │ │ ├── helpers.unit.test.ts │ │ ├── jupyterDebugService.node.ts │ │ ├── kernelDebugAdapter.ts │ │ ├── kernelDebugAdapterBase.ts │ │ ├── multiplexingDebugService.ts │ │ ├── protocolParser.node.ts │ │ └── protocolparser.vscode.unit.test.ts │ ├── export │ │ ├── README.md │ │ ├── exportBase.node.ts │ │ ├── exportBase.web.ts │ │ ├── exportDialog.ts │ │ ├── exportFileOpener.ts │ │ ├── exportFileOpener.unit.test.ts │ │ ├── exportInterpreterFinder.node.ts │ │ ├── exportToHTML.ts │ │ ├── exportToPDF.ts │ │ ├── exportToPython.ts │ │ ├── exportToPythonPlain.ts │ │ ├── exportUtil.node.ts │ │ ├── exportUtil.ts │ │ ├── exportUtil.web.ts │ │ ├── fileConverter.node.ts │ │ ├── fileConverter.ts │ │ ├── fileConverter.web.ts │ │ └── types.ts │ ├── languages │ │ ├── cellLanguageService.ts │ │ ├── emptyNotebookCellLanguageService.ts │ │ └── helpers.ts │ ├── notebookCommandListener.ts │ ├── notebookEditorProvider.ts │ ├── notebookEnvironmentService.node.ts │ ├── notebookEnvironmentService.web.ts │ ├── outputs │ │ ├── jupyterCellOutputMimeTypeTracker.ts │ │ ├── linkProvider.ts │ │ └── tracebackFormatter.ts │ ├── serviceRegistry.node.ts │ ├── serviceRegistry.web.ts │ ├── telemetry │ │ ├── interpreterPackageTracker.node.ts │ │ └── kernelTelemetry.ts │ └── types.ts ├── platform │ ├── .gitignore │ ├── .vscodeignore │ ├── activation │ │ └── types.ts │ ├── api │ │ ├── python-envs │ │ │ ├── api.ts │ │ │ └── pythonEnvsApi.ts │ │ ├── pythonApi.ts │ │ ├── pythonApi.unit.test.ts │ │ ├── serviceRegistry.node.ts │ │ ├── serviceRegistry.web.ts │ │ └── types.ts │ ├── common │ │ ├── application │ │ │ ├── applicationEnvironment.ts │ │ │ ├── commands │ │ │ │ ├── reloadCommand.node.ts │ │ │ │ ├── reloadCommand.unit.test.ts │ │ │ │ └── runInDedicatedExtensionHost.node.ts │ │ │ ├── debugService.ts │ │ │ ├── encryptedStorage.ts │ │ │ ├── extension.node.unit.test.ts │ │ │ ├── extensions.node.ts │ │ │ ├── extensions.web.ts │ │ │ ├── types.ts │ │ │ ├── workspace.base.ts │ │ │ ├── workspace.node.ts │ │ │ └── workspace.web.ts │ │ ├── asyncDisposableRegistry.ts │ │ ├── cache.ts │ │ ├── cancellation.ts │ │ ├── cancellation.unit.test.ts │ │ ├── configMigration.ts │ │ ├── configMigration.unit.test.ts │ │ ├── configSettings.ts │ │ ├── configuration │ │ │ ├── service.base.ts │ │ │ ├── service.node.ts │ │ │ ├── service.unit.test.ts │ │ │ └── service.web.ts │ │ ├── constants.ts │ │ ├── contextKey.ts │ │ ├── crypto.ts │ │ ├── crypto.unit.test.ts │ │ ├── decorators.ts │ │ ├── experiments │ │ │ ├── service.ts │ │ │ ├── service.unit.test.ts │ │ │ ├── telemetry.node.ts │ │ │ └── telemetry.unit.test.ts │ │ ├── extensions.unit.test.ts │ │ ├── featureManager.ts │ │ ├── helpers.ts │ │ ├── net │ │ │ ├── browser.ts │ │ │ └── httpClient.ts │ │ ├── persistentState.ts │ │ ├── platform │ │ │ ├── constants.node.ts │ │ │ ├── errors.ts │ │ │ ├── errors.unit.test.ts │ │ │ ├── fileSystem.node.ts │ │ │ ├── fileSystem.ts │ │ │ ├── fileUtils.node.ts │ │ │ ├── fileUtils.ts │ │ │ ├── fs-paths.node.ts │ │ │ ├── fs-paths.ts │ │ │ ├── linuxDistro.node.ts │ │ │ ├── platformService.node.ts │ │ │ ├── platformService.web.ts │ │ │ ├── serviceRegistry.node.ts │ │ │ ├── serviceRegistry.web.ts │ │ │ ├── types.node.ts │ │ │ └── types.ts │ │ ├── process │ │ │ ├── constants.node.ts │ │ │ ├── logger.node.ts │ │ │ ├── proc.node.ts │ │ │ ├── proc.node.vscode.test.ts │ │ │ ├── processFactory.node.ts │ │ │ ├── processFactory.unit.test.ts │ │ │ ├── serviceRegistry.node.ts │ │ │ ├── serviceRegistry.unit.test.ts │ │ │ └── types.node.ts │ │ ├── providerBasedQuickPick.ts │ │ ├── serviceRegistry.node.ts │ │ ├── serviceRegistry.web.ts │ │ ├── temp.node.ts │ │ ├── temp.ts │ │ ├── types.ts │ │ ├── utils.node.ts │ │ ├── utils.ts │ │ ├── utils.unit.test.ts │ │ ├── utils │ │ │ ├── async.ts │ │ │ ├── async.unit.test.ts │ │ │ ├── cacheUtils.ts │ │ │ ├── cacheUtils.unit.test.ts │ │ │ ├── date.ts │ │ │ ├── decorators.ts │ │ │ ├── decorators.unit.test.ts │ │ │ ├── encoder.ts │ │ │ ├── events.ts │ │ │ ├── events.unit.test.ts │ │ │ ├── functional.ts │ │ │ ├── iterable.ts │ │ │ ├── lazy.ts │ │ │ ├── lifecycle.ts │ │ │ ├── localize.ts │ │ │ ├── logging.node.ts │ │ │ ├── map.ts │ │ │ ├── misc.ts │ │ │ ├── multiStepInput.ts │ │ │ ├── notebooks.ts │ │ │ ├── platform.node.ts │ │ │ ├── platform.ts │ │ │ ├── promises.ts │ │ │ ├── regexp.ts │ │ │ ├── regexp.unit.test.ts │ │ │ ├── serializers.ts │ │ │ ├── stopWatch.ts │ │ │ ├── string.ts │ │ │ ├── symbols.ts │ │ │ ├── sysTypes.ts │ │ │ ├── text.node.ts │ │ │ ├── text.unit.test.ts │ │ │ └── version.node.ts │ │ └── variables │ │ │ ├── customEnvironmentVariablesProvider.node.ts │ │ │ ├── customEnvironmentVariablesProvider.node.unit.test.ts │ │ │ ├── envVarsService.unit.test.ts │ │ │ ├── environment.node.ts │ │ │ ├── serviceRegistry.node.ts │ │ │ ├── serviceRegistry.unit.test.ts │ │ │ ├── systemVariables.node.ts │ │ │ ├── systemVariables.ts │ │ │ ├── systemVariables.web.ts │ │ │ └── types.ts │ ├── constants.node.ts │ ├── constants.ts │ ├── errors │ │ ├── errorUtils.ts │ │ ├── errorUtils.unit.test.ts │ │ ├── errors.ts │ │ ├── index.ts │ │ ├── interactiveCellResultError.ts │ │ ├── jupyterCannotBeLaunchedWithRootError.ts │ │ ├── jupyterConnectError.ts │ │ ├── jupyterDataRateLimitError.ts │ │ ├── jupyterExpiredCertsError.ts │ │ ├── jupyterInstallError.ts │ │ ├── jupyterNotebookNotInstalled.ts │ │ ├── jupyterSelfCertsError.ts │ │ ├── jupyterSelfCertsExpiredError.ts │ │ ├── localJupyterServerConnectionError.ts │ │ ├── moduleNotInstalledError.ts │ │ ├── notSupportedInWebError.ts │ │ ├── packageNotInstalledWindowsLongPathNotEnabledError.ts │ │ ├── pythonExtActivationFailedError.ts │ │ ├── pythonExtApiNotExportedError.ts │ │ ├── pythonExtNotInstalledError.ts │ │ ├── remoteJupyterServerConnectionError.ts │ │ ├── sessionDisposedError.ts │ │ └── types.ts │ ├── interpreter │ │ ├── activation │ │ │ └── types.ts │ │ ├── condaService.node.ts │ │ ├── constants.ts │ │ ├── contracts.ts │ │ ├── dataFrameScriptGenerator.ts │ │ ├── display │ │ │ └── visibilityFilter.node.ts │ │ ├── environmentActivationService.node.ts │ │ ├── filter │ │ │ ├── completionProvider.node.ts │ │ │ ├── filterService.ts │ │ │ ├── settingsMigration.ts │ │ │ └── uiDeprecationHandler.ts │ │ ├── globalPythonExePathService.node.ts │ │ ├── helpers.ts │ │ ├── installer │ │ │ ├── channelManager.channels.unit.test.ts │ │ │ ├── channelManager.messages.unit.test.ts │ │ │ ├── channelManager.node.ts │ │ │ ├── condaInstaller.node.ts │ │ │ ├── condaInstaller.unit.test.ts │ │ │ ├── helpers.ts │ │ │ ├── moduleInstaller.node.ts │ │ │ ├── pinnedPackages.ts │ │ │ ├── pipEnvInstaller.node.ts │ │ │ ├── pipEnvInstaller.unit.test.ts │ │ │ ├── pipInstaller.node.ts │ │ │ ├── pipInstaller.unit.test.ts │ │ │ ├── pipenv.node.ts │ │ │ ├── pipenv.unit.test.ts │ │ │ ├── poetry.node.ts │ │ │ ├── poetry.unit.test.ts │ │ │ ├── poetryInstaller.node.ts │ │ │ ├── poetryInstaller.unit.test.ts │ │ │ ├── productInstaller.node.ts │ │ │ ├── productInstaller.ts │ │ │ ├── productInstaller.unit.test.ts │ │ │ ├── productNames.ts │ │ │ ├── productPath.node.ts │ │ │ ├── productPath.unit.test.ts │ │ │ ├── productService.node.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ ├── internal │ │ │ ├── python.node.ts │ │ │ └── scripts │ │ │ │ └── index.node.ts │ │ ├── interpreterPackages.node.ts │ │ ├── pythonApiInitialization.ts │ │ ├── pythonEnvironment.node.ts │ │ ├── pythonEnvironment.unit.test.ts │ │ ├── pythonEnvironmentPicker.node.ts │ │ ├── pythonEnvironmentQuickPickProvider.node.ts │ │ ├── pythonExecutionFactory.node.ts │ │ ├── pythonProcess.node.ts │ │ ├── pythonProcess.unit.test.ts │ │ ├── reservedNamedProvider.node.ts │ │ ├── reservedNamedProvider.node.unit.test.ts │ │ ├── serviceRegistry.node.ts │ │ ├── serviceRegistry.web.ts │ │ ├── types.node.ts │ │ ├── types.ts │ │ ├── variableScriptGenerator.ts │ │ ├── workspaceInterpreterTracker.node.ts │ │ └── workspaceInterpreterTracker.ts │ ├── ioc │ │ ├── container.ts │ │ ├── index.ts │ │ ├── reflectMetadata.ts │ │ ├── serviceManager.ts │ │ └── types.ts │ ├── language │ │ └── languageConfiguration.node.ts │ ├── logging │ │ ├── consoleLogger.ts │ │ ├── index.ts │ │ ├── outputChannelLogger.ts │ │ ├── outputCommandListener.ts │ │ ├── types.ts │ │ └── util.ts │ ├── notebooks │ │ ├── cellExecutionStateService.ts │ │ └── replNotebookTrackerService.ts │ ├── progress │ │ ├── decorator.ts │ │ ├── decorators.unit.test.ts │ │ ├── kernelProgressReporter.ts │ │ ├── messages.ts │ │ ├── progressReporter.ts │ │ ├── progressReporter.unit.test.ts │ │ └── types.ts │ ├── pythonEnvironments │ │ ├── exec.ts │ │ └── info │ │ │ ├── executable.node.ts │ │ │ ├── index.ts │ │ │ ├── interpreter.ts │ │ │ ├── pythonVersion.node.ts │ │ │ └── pythonVersion.ts │ ├── serviceRegistry.node.ts │ ├── serviceRegistry.web.ts │ ├── telemetry │ │ ├── constants.ts │ │ ├── envFileTelemetry.node.ts │ │ ├── helpers.ts │ │ ├── index.ts │ │ ├── index.unit.test.ts │ │ ├── languageInitializer.ts │ │ ├── startupTelemetry.ts │ │ └── telemetry.ts │ ├── terminals │ │ ├── codeExecution │ │ │ ├── codeExecutionHelper.ts │ │ │ └── codeExecutionHelper.unit.test.ts │ │ ├── serviceRegistry.node.ts │ │ ├── serviceRegistry.web.ts │ │ └── types.ts │ ├── vscode-path │ │ ├── cache.ts │ │ ├── charCode.ts │ │ ├── extpath.ts │ │ ├── path.ts │ │ ├── platform.ts │ │ ├── process.ts │ │ ├── readme.md │ │ ├── resources.ts │ │ ├── strings.ts │ │ ├── types.ts │ │ ├── uint.ts │ │ └── utils.ts │ └── webviews │ │ ├── types.ts │ │ ├── webview.ts │ │ ├── webviewHost.ts │ │ ├── webviewPanelHost.ts │ │ ├── webviewPanelProvider.ts │ │ ├── webviewViewHost.ts │ │ └── webviewViewProvider.ts ├── standalone │ ├── activation │ │ ├── activationManager.ts │ │ ├── globalActivation.ts │ │ └── workspaceActivation.node.ts │ ├── api │ │ ├── index.ts │ │ ├── kernels │ │ │ ├── accessManagement.ts │ │ │ ├── api.vscode.common.test.ts │ │ │ ├── apiAccess.ts │ │ │ ├── apiAccess.unit.test.ts │ │ │ ├── backgroundExecution.ts │ │ │ ├── index.ts │ │ │ ├── kernel.ts │ │ │ ├── kernel.unit.test.ts │ │ │ └── kernelProgressIndicator.ts │ │ ├── pythonExtension │ │ │ └── index.ts │ │ ├── servers │ │ │ └── index.ts │ │ └── unstable │ │ │ ├── activateJupyterProviderExtensions.ts │ │ │ ├── api.jupyterProvider.vscode.test.ts │ │ │ ├── apiAccessService.ts │ │ │ ├── index.ts │ │ │ ├── kernelApi.ts │ │ │ ├── kernelWrapper.ts │ │ │ ├── types.ts │ │ │ └── usedAzMLServerHandles.deprecated.ts │ ├── chat │ │ ├── configureNotebook.node.ts │ │ ├── configureNotebook.other.node.ts │ │ ├── configureNotebook.python.node.ts │ │ ├── createVirtualEnv.python.node.ts │ │ ├── extension.node.ts │ │ ├── helper.node.ts │ │ ├── helper.ts │ │ ├── installPackageTool.node.ts │ │ ├── listPackageTool.node.ts │ │ └── restartKernelTool.node.ts │ ├── codespace │ │ └── commandRegistry.ts │ ├── context │ │ └── activeEditorContext.ts │ ├── devTools │ │ ├── README.md │ │ ├── clearCache.ts │ │ ├── jupyterOutputChannel.ts │ │ └── serviceRegistry.ts │ ├── executionAnalysis │ │ ├── common.ts │ │ ├── extension.ts │ │ ├── pylance.ts │ │ ├── symbols.ts │ │ └── symbols.vscode.test.ts │ ├── import-export │ │ ├── commandRegistry.ts │ │ ├── exportCommands.ts │ │ ├── importTracker.ts │ │ ├── importTracker.unit.test.ts │ │ ├── jupyterExporter.ts │ │ └── jupyterImporter.node.ts │ ├── intellisense │ │ ├── completionDocumentationFormatter.node.unit.test.ts │ │ ├── completionDocumentationFormatter.ts │ │ ├── completionDocumentationFormatter │ │ │ ├── julia.abs.md │ │ │ ├── julia.abs.txt │ │ │ ├── julia.axes.md │ │ │ ├── julia.axes.txt │ │ │ ├── julia.zip.md │ │ │ ├── julia.zip.txt │ │ │ ├── python.ArithmeticError.md │ │ │ ├── python.ArithmeticError.txt │ │ │ ├── python.Out.txt │ │ │ ├── python.df.A.md │ │ │ ├── python.df.A.txt │ │ │ ├── python.df.align.md │ │ │ ├── python.df.align.txt │ │ │ ├── python.df.axes.md │ │ │ ├── python.df.axes.txt │ │ │ ├── python.magic.timeit.md │ │ │ ├── python.magic.timeit.txt │ │ │ ├── python.matplotlib_inline.md │ │ │ ├── python.matplotlib_inline.txt │ │ │ ├── python.property.md │ │ │ ├── python.property.txt │ │ │ ├── r.library.md │ │ │ ├── r.library.txt │ │ │ ├── r.sort.md │ │ │ ├── r.sort.txt │ │ │ ├── r.sortedXyData.md │ │ │ └── r.sortedXyData.txt │ │ ├── conversion.ts │ │ ├── diagnosticsProvider.ts │ │ ├── helpers.ts │ │ ├── kernelCompletionProvider.ts │ │ ├── kernelCompletionProvider.unit.test.ts │ │ ├── notebookPythonPathService.node.ts │ │ ├── notebookPythonPathService.ts │ │ ├── resolveCompletionItem.ts │ │ ├── resolveCompletionItem.unit.test.ts │ │ ├── serviceRegistry.node.ts │ │ ├── serviceRegistry.web.ts │ │ └── types.ts │ ├── notification │ │ └── pythonExtensionRestartNotification.ts │ ├── recommendation │ │ ├── extensionRecommendation.node.ts │ │ └── extensionRecommendation.unit.test.ts │ ├── serviceRegistry.node.ts │ ├── serviceRegistry.web.ts │ ├── survey │ │ └── dataScienceSurveyBanner.node.ts │ ├── userJupyterHubServer │ │ └── jupyterHubPasswordConnect.ts │ ├── userJupyterServer │ │ ├── jupyterPasswordConnect.ts │ │ ├── jupyterPasswordConnect.unit.test.ts │ │ ├── serverSelectorForTests.ts │ │ ├── userServerUriProvider.unit.test.ts │ │ └── userServerUrlProvider.ts │ └── variables │ │ ├── JupyterVariableProvider.unit.test.ts │ │ ├── JupyterVariablesProvider.ts │ │ ├── kernelVariables.ts │ │ ├── preWarmVariables.node.ts │ │ ├── preWarmVariables.unit.test.ts │ │ ├── pythonVariableRequester.ts │ │ └── variableResultCache.ts ├── telemetry.ts ├── telemetryGenerator.node.ts ├── test │ ├── .vscode │ │ ├── launch.json │ │ ├── launch.json.README │ │ ├── settings.json │ │ └── tags │ ├── analysisEngineTest.node.ts │ ├── ciConstants.node.ts │ ├── client │ │ └── api.vscode.test.ts │ ├── common.node.ts │ ├── common.ts │ ├── common.web.ts │ ├── common │ │ ├── asyncDump.ts │ │ ├── configuration │ │ │ └── service.vscode.test.ts │ │ ├── exitCIAfterTestReporter.ts │ │ ├── misc.vscode.test.ts │ │ ├── platform │ │ │ └── platformService.vscode.test.ts │ │ ├── randomWords.txt │ │ └── variables │ │ │ └── envVarsService.vscode.test.ts │ ├── constants.node.ts │ ├── constants.ts │ ├── core.ts │ ├── coverage.node.ts │ ├── datascience │ │ ├── .env │ │ ├── .gitignore │ │ ├── .vscode │ │ │ └── settings.json │ │ ├── DefaultSalesReport.csv │ │ ├── data-viewing │ │ │ ├── dataViewing.py │ │ │ └── showInDataViewerPythonInterpreter.vscode.test.ts │ │ ├── datascience.unit.test.ts │ │ ├── debugger.vscode.test.ts │ │ ├── dsTestSetup.ts │ │ ├── editor-integration │ │ │ └── helpers.ts │ │ ├── export │ │ │ ├── exportToHTML.vscode.test.ts │ │ │ ├── exportToPython.vscode.test.ts │ │ │ ├── exportUtil.unit.test.ts │ │ │ ├── fileConverter.unit.test.ts │ │ │ ├── test.ipynb │ │ │ └── testPDF.ipynb │ │ ├── fakeKernelConnection.node.ts │ │ ├── foo.py │ │ ├── helpers.node.ts │ │ ├── helpers.ts │ │ ├── interactive-common │ │ │ └── nbToTrust.ipynb │ │ ├── interactiveDebugging.vscode.common.ts │ │ ├── interactiveDebugging.vscode.test.ts │ │ ├── interactiveDebugging.vscode.web.test.ts │ │ ├── interactiveWindow.vscode.common.test.ts │ │ ├── interactiveWindow.vscode.test.ts │ │ ├── interactiveWindowRemote.vscode.test.ts │ │ ├── ipywidgets │ │ │ ├── ipyWidgetScriptManager.vscode.common.test.ts │ │ │ └── samples │ │ │ │ ├── @finos │ │ │ │ └── perspective-jupyterlab │ │ │ │ │ ├── extension.js │ │ │ │ │ ├── extension.js.map │ │ │ │ │ ├── index.js │ │ │ │ │ └── index.js.map │ │ │ │ ├── beakerx │ │ │ │ ├── LICENSE │ │ │ │ └── extension.js │ │ │ │ ├── bqplot │ │ │ │ ├── LICENSE │ │ │ │ └── extension.js │ │ │ │ ├── catboost │ │ │ │ ├── LICENSE │ │ │ │ └── extension.js │ │ │ │ ├── ipytree │ │ │ │ ├── LICENSE │ │ │ │ └── extension.js │ │ │ │ ├── ipyturtle │ │ │ │ ├── LICENSE │ │ │ │ └── extension.js │ │ │ │ ├── ipyvolume │ │ │ │ ├── LICENSE │ │ │ │ └── extension.js │ │ │ │ ├── jupyter-leaflet │ │ │ │ ├── LICENSE │ │ │ │ └── extension.js │ │ │ │ ├── jupyter-matplotlib │ │ │ │ ├── LICENSE │ │ │ │ └── extension.js │ │ │ │ ├── jupyter-require │ │ │ │ ├── core.js │ │ │ │ ├── display.js │ │ │ │ ├── extension.js │ │ │ │ ├── loader.js │ │ │ │ └── logger.js │ │ │ │ ├── jupyter-threejs │ │ │ │ ├── LICENSE │ │ │ │ └── extension.js │ │ │ │ └── nglview-js-widgets │ │ │ │ ├── LICENSE │ │ │ │ └── extension.js │ │ ├── jupyter │ │ │ ├── connection.vscode.test.ts │ │ │ └── kernels │ │ │ │ ├── installationPrompts.vscode.test.ts │ │ │ │ └── nbWithKernel.ipynb │ │ ├── jupyterHelpers.ts │ │ ├── jupyterServer.node.ts │ │ ├── manualTestFiles │ │ │ ├── manualTestFile.py │ │ │ ├── manualTestFileDebugger.py │ │ │ └── manualTestFileNoCells.py │ │ ├── matplotlib.txt │ │ ├── mockDocument.ts │ │ ├── mockDocumentManager.ts │ │ ├── mockFileSystem.ts │ │ ├── mockInputBox.ts │ │ ├── mockJupyterSettings.ts │ │ ├── mockQuickPick.ts │ │ ├── mockTextEditor.ts │ │ ├── mockWorkspaceConfig.ts │ │ ├── mockWorkspaceConfiguration.ts │ │ ├── mockWorkspaceFolder.ts │ │ ├── notebook │ │ │ ├── bqplot_crash.ipynb │ │ │ ├── controllerDefaultService.ts │ │ │ ├── controllerPreferredService.ts │ │ │ ├── diagnosticProvider.vscode.test.ts │ │ │ ├── empty.ipynb │ │ │ ├── empty.py │ │ │ ├── emptyCellWithOutput.ipynb │ │ │ ├── emptyPython.ipynb │ │ │ ├── executionHelper.ts │ │ │ ├── executionService.mock.vscode.test.ts │ │ │ ├── executionService.vscode.test.ts │ │ │ ├── exportFull.vscode.test.ts │ │ │ ├── helper.node.ts │ │ │ ├── helper.ts │ │ │ ├── helpers.ts │ │ │ ├── intellisense │ │ │ │ ├── completion.vscode.common.test.ts │ │ │ │ ├── completionProvider.vscode.common.test.ts │ │ │ │ └── names.csv │ │ │ ├── interruptRestart.vscode.test.ts │ │ │ ├── kernelCrashes.vscode.test.ts │ │ │ ├── kernelFailures │ │ │ │ └── overrideBuiltinModule │ │ │ │ │ ├── .gitignore │ │ │ │ │ └── random.py │ │ │ ├── kernelRankingHelper.ts │ │ │ ├── nbWithKernel.ipynb │ │ │ ├── nbWithMetadata.ipynb │ │ │ ├── nonPythonKernels.vscode.test.ts │ │ │ ├── outputDisplayOrder.vscode.test.ts │ │ │ ├── rememberRemoteKernel.ipynb │ │ │ ├── remote.vscode.common.test.ts │ │ │ ├── remoteNotebookEditor.vscode.common.test.ts │ │ │ ├── remoteNotebookEditor.vscode.test.ts │ │ │ ├── simpleDeno.ipynb │ │ │ ├── stackTraceParsing.vscode.test.ts │ │ │ ├── standard_widgets.ipynb │ │ │ ├── test.ipynb │ │ │ ├── test.png │ │ │ ├── testJsonContents.ipynb │ │ │ ├── with3CellsAndOutput.ipynb │ │ │ ├── withMixedMimeTypeOutput.ipynb │ │ │ ├── withOutput.ipynb │ │ │ ├── withOutputForTrust.ipynb │ │ │ ├── withOutputNew.ipynb │ │ │ └── withoutOutputForTrust.ipynb │ │ ├── plotViewer │ │ │ └── plotViewer.vscode.test.ts │ │ ├── serverConfigFiles │ │ │ ├── jcert.pem │ │ │ ├── jkey.key │ │ │ ├── remoteNoAuth.py │ │ │ ├── remotePassword.py │ │ │ └── remoteToken.py │ │ ├── setupTestEnvs.cmd │ │ ├── setupTestEnvs.sh │ │ ├── sub │ │ │ └── test.ipynb │ │ ├── test.ipynb │ │ ├── testInteractiveWindowProvider.ts │ │ ├── testInterfaces.ts │ │ ├── testPersistentStateFactory.ts │ │ ├── variableView │ │ │ ├── variableView.vscode.test.ts │ │ │ ├── variableViewHelpers.ts │ │ │ └── variableViewTestInterfaces.ts │ │ ├── vscodeTestHelpers.ts │ │ ├── widgets │ │ │ ├── commUtils.ts │ │ │ ├── constants.ts │ │ │ ├── notebooks │ │ │ │ ├── beakerx_widgets.ipynb │ │ │ │ ├── bqplot_widgets.ipynb │ │ │ │ ├── button_widget_comm_msg.ipynb │ │ │ │ ├── button_widget_comm_msg_matplotlib.ipynb │ │ │ │ ├── button_widgets.ipynb │ │ │ │ ├── fetch_static_resources_from_nbextensions.ipynb │ │ │ │ ├── interactive_function.ipynb │ │ │ │ ├── interactive_plot.ipynb │ │ │ │ ├── interactive_plot_another_cell.ipynb │ │ │ │ ├── ipySheet_widgets.ipynb │ │ │ │ ├── ipySheet_widgets_search.ipynb │ │ │ │ ├── ipySheet_widgets_slider.ipynb │ │ │ │ ├── ipyvolume_widgets.ipynb │ │ │ │ ├── ipywidgets.ipynb │ │ │ │ ├── k3d_widgets.ipynb │ │ │ │ ├── matplotlib_multiple_cells_widgets.ipynb │ │ │ │ ├── matplotlib_widgets_inline.ipynb │ │ │ │ ├── matplotlib_widgets_interactive.ipynb │ │ │ │ ├── matplotlib_widgets_widget.ipynb │ │ │ │ ├── nested_output_widget.ipynb │ │ │ │ ├── nested_output_widget2.ipynb │ │ │ │ ├── outputinteract_widgets.ipynb │ │ │ │ ├── pythreejs_widgets.ipynb │ │ │ │ ├── pythreejs_widgets2.ipynb │ │ │ │ ├── simple_abc.ipynb │ │ │ │ ├── slider_widgets.ipynb │ │ │ │ └── standard_widgets.ipynb │ │ │ ├── rendererUtils.ts │ │ │ ├── standardWidgets.vscode.common.test.ts │ │ │ └── thirdpartyWidgets.vscode.common.test.ts │ │ └── wordHelper.ts │ ├── debuggerTest.node.ts │ ├── extension.serviceRegistry.vscode.test.ts │ ├── fixtures.ts │ ├── index.node.ts │ ├── initialize.node.ts │ ├── initialize.ts │ ├── interpreters │ │ ├── condaHelper.ts │ │ ├── condaLocator.node.ts │ │ ├── condaService.node.ts │ │ └── index.node.ts │ ├── mockClasses.ts │ ├── mocks │ │ ├── mementos.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 │ ├── package.nls.json.unit.test.ts │ ├── performance │ │ ├── executionPerf.vscode.test.ts │ │ └── notebookPerf.vscode.common.test.ts │ ├── platform │ │ └── interpreter │ │ │ └── interpreterPackages.node.vscode.test.ts │ ├── proc.ts │ ├── pythonEnvironments │ │ ├── common │ │ │ ├── envlayouts │ │ │ │ ├── conda1 │ │ │ │ │ └── conda-meta │ │ │ │ │ │ └── history │ │ │ │ ├── conda2 │ │ │ │ │ ├── bin │ │ │ │ │ │ └── python │ │ │ │ │ └── conda-meta │ │ │ │ │ │ └── history │ │ │ │ ├── pipenv │ │ │ │ │ ├── globalEnvironments │ │ │ │ │ │ ├── project2-vnNIWe9P │ │ │ │ │ │ │ ├── .project │ │ │ │ │ │ │ └── bin │ │ │ │ │ │ │ │ └── python │ │ │ │ │ │ └── project3-2s1eXEJ2 │ │ │ │ │ │ │ └── .project │ │ │ │ │ ├── project1 │ │ │ │ │ │ └── CustomPipfileName │ │ │ │ │ ├── project2 │ │ │ │ │ │ └── Pipfile │ │ │ │ │ └── project3 │ │ │ │ │ │ ├── Pipfile │ │ │ │ │ │ └── parent │ │ │ │ │ │ └── child │ │ │ │ │ │ └── folder │ │ │ │ │ │ └── dummyFile │ │ │ │ ├── poetry │ │ │ │ │ ├── globalwinproject-9hvDnqYw-py3.11 │ │ │ │ │ │ ├── Scripts │ │ │ │ │ │ │ └── activate │ │ │ │ │ │ └── pyvenv.cfg │ │ │ │ │ ├── poetry-tutorial-project-6hnqYwvD-py3.8 │ │ │ │ │ │ ├── Scripts │ │ │ │ │ │ │ └── activate │ │ │ │ │ │ └── pyvenv.cfg │ │ │ │ │ ├── posix1project-9hvDnqYw-py3.4 │ │ │ │ │ │ ├── activate │ │ │ │ │ │ ├── python │ │ │ │ │ │ └── pyvenv.cfg │ │ │ │ │ ├── posix2project-6hnqYwvD-py3.7 │ │ │ │ │ │ ├── bin │ │ │ │ │ │ │ ├── activate │ │ │ │ │ │ │ └── python │ │ │ │ │ │ └── pyvenv.cfg │ │ │ │ │ ├── project1-haha-py3.8 │ │ │ │ │ │ └── Scripts │ │ │ │ │ │ │ └── python.exe │ │ │ │ │ ├── project1 │ │ │ │ │ │ └── pyproject.toml │ │ │ │ │ ├── project2 │ │ │ │ │ │ └── pyproject.toml │ │ │ │ │ ├── project3 │ │ │ │ │ │ └── pyproject.toml │ │ │ │ │ ├── project4 │ │ │ │ │ │ └── pyproject.toml │ │ │ │ │ └── wannabeglobalenv │ │ │ │ │ │ └── Scripts │ │ │ │ │ │ └── activate │ │ │ │ ├── posixroot │ │ │ │ │ ├── location1 │ │ │ │ │ │ ├── python │ │ │ │ │ │ └── python3 │ │ │ │ │ ├── location2 │ │ │ │ │ │ ├── python │ │ │ │ │ │ ├── python37 │ │ │ │ │ │ └── python38 │ │ │ │ │ └── location3 │ │ │ │ │ │ ├── python3.7 │ │ │ │ │ │ ├── python3.8 │ │ │ │ │ │ └── python3.9 │ │ │ │ │ │ └── empty │ │ │ │ ├── pyenv1 │ │ │ │ │ └── .pyenv │ │ │ │ │ │ └── versions │ │ │ │ │ │ └── 3.6.9 │ │ │ │ │ │ └── bin │ │ │ │ │ │ └── python │ │ │ │ ├── pyenv3 │ │ │ │ │ └── versions │ │ │ │ │ │ └── 3.6.9 │ │ │ │ │ │ └── bin │ │ │ │ │ │ └── python │ │ │ │ ├── pyenvhome │ │ │ │ │ └── .pyenv │ │ │ │ │ │ └── versions │ │ │ │ │ │ ├── 3.9.0 │ │ │ │ │ │ └── bin │ │ │ │ │ │ │ └── python │ │ │ │ │ │ ├── conda1 │ │ │ │ │ │ ├── bin │ │ │ │ │ │ │ ├── python │ │ │ │ │ │ │ └── python3.8 │ │ │ │ │ │ └── conda-meta │ │ │ │ │ │ │ └── history │ │ │ │ │ │ ├── miniconda3-4.7.12 │ │ │ │ │ │ └── bin │ │ │ │ │ │ │ ├── python │ │ │ │ │ │ │ ├── python3 │ │ │ │ │ │ │ └── python3.7 │ │ │ │ │ │ └── venv1 │ │ │ │ │ │ ├── bin │ │ │ │ │ │ └── python │ │ │ │ │ │ └── pyvenv.cfg │ │ │ │ ├── venv1 │ │ │ │ │ ├── python │ │ │ │ │ └── pyvenv.cfg │ │ │ │ ├── venv2 │ │ │ │ │ ├── bin │ │ │ │ │ │ └── python │ │ │ │ │ └── pyvenv.cfg │ │ │ │ ├── virtualenv1 │ │ │ │ │ └── bin │ │ │ │ │ │ └── activate │ │ │ │ ├── virtualenv2 │ │ │ │ │ └── bin │ │ │ │ │ │ └── activate.sh │ │ │ │ ├── virtualenv3 │ │ │ │ │ └── bin │ │ │ │ │ │ └── activate.ps1 │ │ │ │ ├── virtualenvwrapper1 │ │ │ │ │ ├── .virtualenvs │ │ │ │ │ │ └── myenv │ │ │ │ │ │ │ └── bin │ │ │ │ │ │ │ ├── activate │ │ │ │ │ │ │ └── python │ │ │ │ │ └── Envs │ │ │ │ │ │ └── myenv │ │ │ │ │ │ └── Scripts │ │ │ │ │ │ └── activate │ │ │ │ ├── virtualenvwrapper2 │ │ │ │ │ └── myenv │ │ │ │ │ │ └── bin │ │ │ │ │ │ ├── activate │ │ │ │ │ │ └── python │ │ │ │ ├── virtualhome │ │ │ │ │ ├── .local │ │ │ │ │ │ └── share │ │ │ │ │ │ │ └── virtualenvs │ │ │ │ │ │ │ └── project2-vnNIWe9P │ │ │ │ │ │ │ ├── .project │ │ │ │ │ │ │ ├── bin │ │ │ │ │ │ │ └── python │ │ │ │ │ │ │ └── pyvenv.cfg │ │ │ │ │ ├── .virtualenvs │ │ │ │ │ │ ├── posix1 │ │ │ │ │ │ │ ├── activate │ │ │ │ │ │ │ ├── python │ │ │ │ │ │ │ ├── python3 │ │ │ │ │ │ │ └── python3.8 │ │ │ │ │ │ ├── posix2 │ │ │ │ │ │ │ └── bin │ │ │ │ │ │ │ │ ├── activate.sh │ │ │ │ │ │ │ │ └── python │ │ │ │ │ │ ├── win1 │ │ │ │ │ │ │ └── activate │ │ │ │ │ │ └── win2 │ │ │ │ │ │ │ └── bin │ │ │ │ │ │ │ └── activate.ps1 │ │ │ │ │ ├── Envs │ │ │ │ │ │ ├── wrapper_win1 │ │ │ │ │ │ │ └── activate │ │ │ │ │ │ └── wrapper_win2 │ │ │ │ │ │ │ └── bin │ │ │ │ │ │ │ └── activate │ │ │ │ │ ├── customfolder │ │ │ │ │ │ ├── posix1 │ │ │ │ │ │ │ ├── activate │ │ │ │ │ │ │ ├── python │ │ │ │ │ │ │ ├── python3 │ │ │ │ │ │ │ └── python3.5 │ │ │ │ │ │ ├── posix2 │ │ │ │ │ │ │ └── bin │ │ │ │ │ │ │ │ ├── activate.sh │ │ │ │ │ │ │ │ └── python │ │ │ │ │ │ ├── win1 │ │ │ │ │ │ │ └── activate │ │ │ │ │ │ └── win2 │ │ │ │ │ │ │ └── bin │ │ │ │ │ │ │ └── activate.ps1 │ │ │ │ │ └── workonhome │ │ │ │ │ │ ├── posix1 │ │ │ │ │ │ ├── activate │ │ │ │ │ │ ├── python │ │ │ │ │ │ ├── python3 │ │ │ │ │ │ └── python3.5 │ │ │ │ │ │ ├── posix2 │ │ │ │ │ │ └── bin │ │ │ │ │ │ │ ├── activate.sh │ │ │ │ │ │ │ └── python │ │ │ │ │ │ ├── win1 │ │ │ │ │ │ └── activate │ │ │ │ │ │ └── win2 │ │ │ │ │ │ └── bin │ │ │ │ │ │ └── activate.ps1 │ │ │ │ ├── winreg │ │ │ │ │ └── conda3 │ │ │ │ │ │ └── conda-meta │ │ │ │ │ │ └── history │ │ │ │ └── workspace │ │ │ │ │ └── folder1 │ │ │ │ │ ├── .direnv │ │ │ │ │ ├── posix1virtualenv │ │ │ │ │ │ └── bin │ │ │ │ │ │ │ ├── activate │ │ │ │ │ │ │ ├── python │ │ │ │ │ │ │ ├── python3 │ │ │ │ │ │ │ └── python3.8 │ │ │ │ │ └── win2 │ │ │ │ │ │ └── pyvenv.cfg │ │ │ │ │ ├── Pipfile │ │ │ │ │ ├── posix2conda │ │ │ │ │ ├── conda-meta │ │ │ │ │ │ └── history │ │ │ │ │ └── python │ │ │ │ │ ├── posix3custom │ │ │ │ │ └── bin │ │ │ │ │ │ └── python │ │ │ │ │ └── win1 │ │ │ │ │ └── pyvenv.cfg │ │ │ └── testdata │ │ │ │ └── versiondata │ │ │ │ ├── conda │ │ │ │ ├── case1 │ │ │ │ ├── case2 │ │ │ │ ├── case3 │ │ │ │ ├── case4 │ │ │ │ └── case5 │ │ │ │ └── venv │ │ │ │ ├── case1 │ │ │ │ ├── case2 │ │ │ │ ├── case3 │ │ │ │ └── case4 │ │ └── constants.ts │ ├── pythonFiles │ │ └── datascience │ │ │ ├── simple_nb.ipynb │ │ │ └── simple_note_book.py │ ├── smoke │ │ └── datascience.smoke.test.ts │ ├── smokeTest.node.ts │ ├── standardTest.node.ts │ ├── testBootstrap.node.ts │ ├── testHooks.node.ts │ ├── testMultiRootWkspc │ │ ├── multi.code-workspace │ │ ├── smokeTests │ │ │ ├── .gitignore │ │ │ ├── definitions.py │ │ │ ├── sample.ipynb │ │ │ └── testExecInTerminal.py │ │ ├── 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 │ ├── testRunner.ts │ ├── textUtils.ts │ ├── unittests.ts │ ├── utils │ │ ├── enum.ts │ │ ├── fs.ts │ │ ├── interpreters.ts │ │ └── notebook.ts │ ├── vscode-mock.ts │ ├── vscode-notebook-perf │ │ ├── .editorconfig │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── .nvmrc │ │ ├── .prettierrc.js │ │ ├── .vscode-test.mjs │ │ ├── .vscode │ │ │ ├── extensions.json │ │ │ ├── launch.json │ │ │ ├── settings.json │ │ │ └── tasks.json │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── src │ │ │ ├── api.ts │ │ │ └── extension.ts │ │ └── tsconfig.json │ └── web │ │ ├── clientApi.ts │ │ ├── customReporter.ts │ │ ├── index.ts │ │ └── index.web.test.ts ├── tsconfig.extension.node.json ├── tsconfig.extension.web.json └── webviews │ ├── extension-side │ ├── dataviewer │ │ ├── baseDataViewerDependencyImplementation.ts │ │ ├── constants.ts │ │ ├── dataViewer.ts │ │ ├── dataViewer.unit.test.ts │ │ ├── dataViewerChecker.ts │ │ ├── dataViewerCommandRegistry.ts │ │ ├── dataViewerDelegator.ts │ │ ├── dataViewerDependencyService.node.ts │ │ ├── dataViewerDependencyService.ts │ │ ├── dataViewerDependencyService.unit.test.ts │ │ ├── dataViewerDependencyServiceInterpreter.node.unit.test.ts │ │ ├── dataViewerDependencyServiceKernel.node.unit.test.ts │ │ ├── dataViewerFactory.ts │ │ ├── dataViewerMessageListener.ts │ │ ├── interpreterDataViewerDependencyImplementation.node.ts │ │ ├── jupyterVariableDataProvider.ts │ │ ├── jupyterVariableDataProviderFactory.ts │ │ ├── kernelDataViewerDependencyImplementation.ts │ │ └── types.ts │ ├── ipywidgets │ │ └── rendererComms.ts │ ├── plotView │ │ ├── plotSaveHandler.node.ts │ │ ├── plotSaveHandler.ts │ │ ├── plotViewHandler.ts │ │ ├── plotViewHandler.unit.test.ts │ │ ├── rendererCommunication.ts │ │ └── types.ts │ ├── plotting │ │ ├── plotViewer.node.ts │ │ ├── plotViewer.ts │ │ ├── plotViewerMessageListener.ts │ │ ├── plotViewerProvider.ts │ │ └── types.ts │ ├── serviceRegistry.node.ts │ ├── serviceRegistry.web.ts │ └── variablesView │ │ ├── notebookWatcher.ts │ │ ├── types.ts │ │ ├── variableView.ts │ │ ├── variableViewActivationService.ts │ │ ├── variableViewMessageListener.ts │ │ └── variableViewProvider.ts │ ├── types.ts │ └── webview-side │ ├── common │ └── index.css │ ├── data-explorer │ ├── cellFormatter.css │ ├── cellFormatter.tsx │ ├── emptyRowsView.css │ ├── emptyRowsView.tsx │ ├── globalJQueryImports.ts │ ├── helpers.ts │ ├── index.html │ ├── index.tsx │ ├── mainPanel.css │ ├── mainPanel.tsx │ ├── progressBar.css │ ├── progressBar.tsx │ ├── reactSlickGrid.css │ ├── reactSlickGrid.tsx │ ├── reactSlickGridFilterBox.css │ ├── reactSlickGridFilterBox.tsx │ ├── sliceControl.css │ ├── sliceControl.tsx │ └── testData.ts │ ├── interactive-common │ ├── buildSettingsCss.ts │ ├── collapseButton.tsx │ ├── common.css │ ├── handlers.ts │ ├── images.d.ts │ ├── mainState.ts │ ├── redux │ │ ├── helpers.ts │ │ ├── postOffice.ts │ │ ├── reducers │ │ │ ├── commonEffects.ts │ │ │ ├── transfer.ts │ │ │ ├── types.ts │ │ │ └── variables.ts │ │ └── store.ts │ ├── variableExplorer.css │ ├── variableExplorer.tsx │ ├── variableExplorerButtonCellFormatter.css │ ├── variableExplorerButtonCellFormatter.tsx │ ├── variableExplorerCellFormatter.css │ ├── variableExplorerCellFormatter.tsx │ ├── variableExplorerEmptyRows.css │ ├── variableExplorerEmptyRows.tsx │ ├── variableExplorerGrid.less │ ├── variableExplorerHeaderCellFormatter.tsx │ ├── variableExplorerLoadingRows.tsx │ ├── variableExplorerRowRenderer.tsx │ └── variablePanel.tsx │ ├── ipywidgets │ ├── README.md │ ├── kernel │ │ ├── helper.ts │ │ ├── incompatibleWidgetHandler.ts │ │ ├── incompatibleWidgetHandler.unit.test.ts │ │ ├── index.ts │ │ ├── kernel.ts │ │ ├── manager.ts │ │ ├── mimeTypes.ts │ │ ├── requirejsRegistry.ts │ │ ├── scriptManager.ts │ │ ├── scriptManager.unit.test.ts │ │ └── types.ts │ └── renderer │ │ ├── index.ts │ │ └── styles.css │ ├── plot │ ├── index.html │ ├── index.tsx │ ├── mainPanel.css │ ├── mainPanel.tsx │ ├── testSvg.ts │ ├── toolbar.css │ └── toolbar.tsx │ ├── react-common │ ├── 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 │ │ ├── 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 │ │ ├── Sync │ │ │ ├── sync-inverse.svg │ │ │ └── sync.svg │ │ ├── Undo │ │ │ ├── Undo_16x_vscode.svg │ │ │ └── Undo_16x_vscode_dark.svg │ │ ├── Up │ │ │ ├── up-inverse.svg │ │ │ └── up.svg │ │ ├── Zoom │ │ │ ├── zoom.svg │ │ │ └── zoom_inverse.svg │ │ └── ZoomOut │ │ │ ├── zoomout.svg │ │ │ └── zoomout_inverse.svg │ ├── locReactSide.ts │ ├── logger.ts │ ├── postOffice.ts │ ├── progress.css │ ├── progress.tsx │ ├── reduxUtils.ts │ ├── relativeImage.tsx │ ├── seti │ │ ├── seti.less │ │ └── seti.ttf │ ├── settingsReactSide.ts │ ├── svgList.css │ ├── svgList.tsx │ ├── svgViewer.css │ ├── svgViewer.tsx │ ├── textMeasure.ts │ └── themeDetector.ts │ └── variable-view │ ├── index.html │ ├── index.tsx │ ├── redux │ ├── actions.ts │ ├── mapping.ts │ ├── reducers │ │ └── index.ts │ └── store.ts │ ├── variableViewPanel.css │ └── variableViewPanel.tsx ├── tsconfig.base.json ├── tsconfig.datascience-ui.json ├── tsconfig.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 ├── index.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 /.devcontainer/dev/meta.env: -------------------------------------------------------------------------------- 1 | VERSION='dev' 2 | -------------------------------------------------------------------------------- /.devcontainer/test-alpine-arm64-python/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test-alpine-arm64-python", 3 | "build": { 4 | "context": "../..", 5 | "dockerfile": "./Dockerfile" 6 | }, 7 | "customizations": { 8 | "vscode": { 9 | "extensions": [ 10 | "ms-toolsai.jupyter@prerelease", "ms-python.python@prerelease" 11 | ] 12 | } 13 | }, 14 | "workspaceFolder": "/workspaces/vscode-jupyter/src/test/testMultiRootWkspc/smokeTests" 15 | } 16 | -------------------------------------------------------------------------------- /.devcontainer/test-alpine-arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM arm64v8/node:alpine 2 | RUN apk add curl 3 | RUN sh -c "$(curl -fsSL https://github.com/deluan/zsh-in-docker/releases/download/v1.1.5/zsh-in-docker.sh)" -- \ 4 | -t powerlevel10k/powerlevel10k \ 5 | -p git \ 6 | -p git-extras \ 7 | -p https://github.com/zsh-users/zsh-completions 8 | RUN git clone https://github.com/romkatv/powerlevel10k $HOME/.oh-my-zsh/custom/themes/powerlevel10k 9 | RUN curl https://raw.githubusercontent.com/DonJayamanne/vscode-jupyter/containerChanges/.devcontainer/.p10k.zsh > ~/.p10k.zsh 10 | RUN echo "# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh." >> ~/.zshrc 11 | RUN echo "[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh" >> ~/.zshrc 12 | -------------------------------------------------------------------------------- /.devcontainer/test-alpine-arm64/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test-alpine-arm64", 3 | "build": { 4 | "context": "../..", 5 | "dockerfile": "./Dockerfile" 6 | }, 7 | "customizations": { 8 | "vscode": { 9 | "extensions": [ 10 | "ms-toolsai.jupyter@prerelease", "ms-python.python@prerelease" 11 | ] 12 | } 13 | }, 14 | "workspaceFolder": "/workspaces/vscode-jupyter/src/test/testMultiRootWkspc/smokeTests" 15 | } 16 | -------------------------------------------------------------------------------- /.devcontainer/test-alpine-x64-python/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test-alpine-x64-python", 3 | "build": { 4 | "context": "../..", 5 | "dockerfile": "./Dockerfile" 6 | }, 7 | "customizations": { 8 | "vscode": { 9 | "extensions": [ 10 | "ms-toolsai.jupyter@prerelease", "ms-python.python@prerelease" 11 | ] 12 | } 13 | }, 14 | "workspaceFolder": "/workspaces/vscode-jupyter/src/test/testMultiRootWkspc/smokeTests" 15 | } 16 | -------------------------------------------------------------------------------- /.devcontainer/test-alpine-x64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM --platform=linux/amd64 alpine 2 | RUN apk add curl 3 | RUN sh -c "$(curl -fsSL https://github.com/deluan/zsh-in-docker/releases/download/v1.1.5/zsh-in-docker.sh)" -- \ 4 | -t powerlevel10k/powerlevel10k \ 5 | -p git \ 6 | -p git-extras \ 7 | -p https://github.com/zsh-users/zsh-completions 8 | RUN git clone https://github.com/romkatv/powerlevel10k $HOME/.oh-my-zsh/custom/themes/powerlevel10k 9 | RUN curl https://raw.githubusercontent.com/DonJayamanne/vscode-jupyter/containerChanges/.devcontainer/.p10k.zsh > ~/.p10k.zsh 10 | RUN echo "# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh." >> ~/.zshrc 11 | RUN echo "[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh" >> ~/.zshrc 12 | -------------------------------------------------------------------------------- /.devcontainer/test-alpine-x64/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test-alpine-x64", 3 | "build": { 4 | "context": "../..", 5 | "dockerfile": "./Dockerfile" 6 | }, 7 | "customizations": { 8 | "vscode": { 9 | "extensions": [ 10 | "ms-toolsai.jupyter@prerelease", "ms-python.python@prerelease" 11 | ] 12 | } 13 | }, 14 | "workspaceFolder": "/workspaces/vscode-jupyter/src/test/testMultiRootWkspc/smokeTests" 15 | } 16 | -------------------------------------------------------------------------------- /.devcontainer/test-linux-arm64-python/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test-linux-arm64-python", 3 | "build": { 4 | "context": "../..", 5 | "dockerfile": "./Dockerfile" 6 | }, 7 | "customizations": { 8 | "vscode": { 9 | "extensions": [ 10 | "ms-toolsai.jupyter@prerelease", "ms-python.python@prerelease" 11 | ] 12 | } 13 | }, 14 | "workspaceFolder": "/workspaces/vscode-jupyter/src/test/testMultiRootWkspc/smokeTests" 15 | } 16 | -------------------------------------------------------------------------------- /.devcontainer/test-linux-arm64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM arm64v8/node 2 | RUN apt-get update 3 | RUN apt-get install wget -y 4 | RUN sh -c "$(wget -qO- https://github.com/deluan/zsh-in-docker/releases/download/v1.1.5/zsh-in-docker.sh)" -- \ 5 | -t powerlevel10k/powerlevel10k \ 6 | -p git \ 7 | -p git-extras \ 8 | -p https://github.com/zsh-users/zsh-completions 9 | RUN git clone https://github.com/romkatv/powerlevel10k $HOME/.oh-my-zsh/custom/themes/powerlevel10k 10 | RUN wget -O ~/.p10k.zsh https://raw.githubusercontent.com/DonJayamanne/vscode-jupyter/containerChanges/.devcontainer/.p10k.zsh 11 | RUN echo "# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh." >> ~/.zshrc 12 | RUN echo "[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh" >> ~/.zshrc 13 | -------------------------------------------------------------------------------- /.devcontainer/test-linux-arm64/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test-linux-arm64", 3 | "build": { 4 | "context": "../..", 5 | "dockerfile": "./Dockerfile" 6 | }, 7 | "customizations": { 8 | "vscode": { 9 | "extensions": [ 10 | "ms-toolsai.jupyter@prerelease", "ms-python.python@prerelease" 11 | ] 12 | } 13 | }, 14 | "workspaceFolder": "/workspaces/vscode-jupyter/src/test/testMultiRootWkspc/smokeTests" 15 | } 16 | -------------------------------------------------------------------------------- /.devcontainer/test-linux-armhf/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM arm32v7/ubuntu 2 | RUN apt-get update 3 | RUN apt-get install libatomic1 4 | -------------------------------------------------------------------------------- /.devcontainer/test-linux-armhf/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test-linux-armhf", 3 | "build": { 4 | "context": "../..", 5 | "dockerfile": "./Dockerfile" 6 | }, 7 | "customizations": { 8 | "vscode": { 9 | "extensions": [ 10 | "ms-toolsai.jupyter@prerelease", "ms-python.python@prerelease" 11 | ] 12 | } 13 | }, 14 | "workspaceFolder": "/workspaces/vscode-jupyter/src/test/testMultiRootWkspc/smokeTests" 15 | } 16 | -------------------------------------------------------------------------------- /.devcontainer/test-linux-x64-python/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test-linux-x64-python", 3 | "build": { 4 | "context": "../..", 5 | "dockerfile": "./Dockerfile" 6 | }, 7 | "customizations": { 8 | "vscode": { 9 | "extensions": [ 10 | "ms-toolsai.jupyter@prerelease", "ms-python.python@prerelease" 11 | ] 12 | } 13 | }, 14 | "workspaceFolder": "/workspaces/vscode-jupyter/src/test/testMultiRootWkspc/smokeTests" 15 | } 16 | -------------------------------------------------------------------------------- /.devcontainer/test-linux-x64/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM --platform=linux/amd64 ubuntu 2 | RUN apt-get update 3 | RUN apt install curl -y 4 | RUN sh -c "$(curl -fsSL https://github.com/deluan/zsh-in-docker/releases/download/v1.1.5/zsh-in-docker.sh)" -- \ 5 | -t powerlevel10k/powerlevel10k \ 6 | -p git \ 7 | -p git-extras \ 8 | -p https://github.com/zsh-users/zsh-completions 9 | RUN git clone https://github.com/romkatv/powerlevel10k $HOME/.oh-my-zsh/custom/themes/powerlevel10k 10 | RUN curl https://raw.githubusercontent.com/DonJayamanne/vscode-jupyter/containerChanges/.devcontainer/.p10k.zsh > ~/.p10k.zsh 11 | RUN echo "# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh." >> ~/.zshrc 12 | RUN echo "[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh" >> ~/.zshrc 13 | -------------------------------------------------------------------------------- /.devcontainer/test-linux-x64/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test-linux-x64", 3 | "build": { 4 | "context": "../..", 5 | "dockerfile": "./Dockerfile" 6 | }, 7 | "customizations": { 8 | "vscode": { 9 | "extensions": [ 10 | "ms-toolsai.jupyter@prerelease", "ms-python.python@prerelease" 11 | ] 12 | } 13 | }, 14 | "workspaceFolder": "/workspaces/vscode-jupyter/src/test/testMultiRootWkspc/smokeTests" 15 | } 16 | -------------------------------------------------------------------------------- /.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 | build/* 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/3_feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: General feature request 3 | about: Suggest an idea for this project 4 | labels: feature-request 5 | --- 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: 'Help and Support' 4 | url: https://github.com/microsoft/vscode-jupyter/discussions/categories/questions-and-answers 5 | about: "Need help getting something to work, but you're not sure it's worth of submitting an issue? Ask here." 6 | - name: 'Chat on Discord' 7 | url: https://aka.ms/python-discord 8 | about: 'You can ask for help or chat in the `#jupyter` channel of our microsoft-python Discord server' 9 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Fixes # 2 | -------------------------------------------------------------------------------- /.github/actions/build-vsix/action.yml: -------------------------------------------------------------------------------- 1 | name: 'Build VSIX' 2 | description: "Build the extension's VSIX" 3 | 4 | outputs: 5 | path: 6 | description: 'Path to the VSIX' 7 | value: 'ms-toolsai-jupyter-insiders.vsix' 8 | 9 | runs: 10 | using: 'composite' 11 | steps: 12 | # This is faster than running `npm ci`, we do not want to build zmq, as its already built by us. 13 | - run: npm ci --ignore-scripts --prefer-offline --no-audit 14 | shell: bash 15 | 16 | # Run again, as the download of zmq binaries could have failed with 403 errors 17 | - run: npm run postinstall 18 | env: 19 | GITHUB_TOKEN: ${{ github.token }} 20 | shell: bash 21 | 22 | - run: npm run package 23 | shell: bash 24 | -------------------------------------------------------------------------------- /.github/actions/npm-ci/action.yml: -------------------------------------------------------------------------------- 1 | name: 'Install dependencies (npm ci)' 2 | description: 'npm install (with GITHUB_TOKEN to run postinstall step)' 3 | 4 | runs: 5 | using: 'composite' 6 | steps: 7 | - run: npm ci --foreground-scripts --prefer-offline 8 | env: 9 | npm_config_build_from_source: true 10 | shell: bash 11 | 12 | # Run again, as the download of zmq binaries could have failed with 403 errors 13 | - run: npm run postinstall 14 | env: 15 | GITHUB_TOKEN: ${{ github.token }} 16 | shell: bash 17 | -------------------------------------------------------------------------------- /.github/actions/set-python/action.yml: -------------------------------------------------------------------------------- 1 | name: 'Set Python' 2 | description: 'Sets python to a specific version' 3 | 4 | inputs: 5 | PYTHON_VERSION: 6 | description: 'Version of python' 7 | required: true 8 | default: python 9 | outputs: 10 | CI_PYTHON_PATH: 11 | description: 'Path to the python' 12 | value: ${{ steps.python_run.outputs.python_path }} 13 | runs: 14 | using: 'composite' 15 | steps: 16 | - name: Output python path 17 | id: python_run 18 | shell: bash 19 | run: python -c "import sys;print('python_path=' + sys.executable)" >> $GITHUB_OUTPUT 20 | 21 | - name: Push to environment 22 | shell: bash 23 | run: echo "CI_PYTHON_PATH=${{ steps.python_run.outputs.python_path }}" >> $GITHUB_ENV 24 | -------------------------------------------------------------------------------- /.github/codecov.yml: -------------------------------------------------------------------------------- 1 | codecov: 2 | notify: 3 | require_ci_to_pass: no 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 | layout: 'header, diff, files' 25 | behavior: default 26 | require_changes: no 27 | 28 | fixes: 29 | # Remove prefix in coverage report 30 | - '/home/runner/work/vscode-jupyter/::' 31 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: 'github-actions' 4 | directory: / 5 | schedule: 6 | interval: daily 7 | labels: 8 | - 'skip news' 9 | 10 | - package-ecosystem: 'pip' 11 | directory: / 12 | schedule: 13 | interval: daily 14 | 15 | - package-ecosystem: 'pip' 16 | directory: /news 17 | schedule: 18 | interval: monthly 19 | labels: 20 | - 'skip news' 21 | # Activate when we feel ready to keep up with frequency. 22 | # - package-ecosystem: 'npm' 23 | # directory: / 24 | # schedule: 25 | # interval: daily 26 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if npm list prettier | grep -q prettier@ ; then 3 | echo husky - prettier is installed 4 | else 5 | echo husky - prettier is not installed, skipping format check 6 | exit 0 7 | fi 8 | 9 | # run prettier on all .ts files that are in the commit 10 | changed=$(git diff --diff-filter=ACM --cached --name-only | grep .ts$ | tr '\n' ' ') 11 | 12 | if [ -z "$changed" ]; then 13 | echo husky - No modified files to check 14 | exit 0 15 | fi 16 | 17 | npx prettier $changed --check 18 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v20.17.0 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Ignore the pythonEnvironments/ folder because we use ESLint there instead 2 | src/platform/pythonEnvironments/* 3 | src/test/pythonEnvironments/* 4 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /.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 | "dbaeumer.vscode-eslint", 6 | "editorconfig.editorconfig", 7 | "esbenp.prettier-vscode", 8 | "hbenl.vscode-mocha-test-adapter", 9 | "ms-python.black", 10 | "ms-vscode.extension-test-runner", 11 | "connor4312.esbuild-problem-matchers" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /CredScanSuppressions.json: -------------------------------------------------------------------------------- 1 | { 2 | "tool": "Credential Scanner", 3 | "suppressions": [ 4 | { 5 | "file": "src\\test\\datascience\\serverConfigFiles\\jkey.key", 6 | "_justification": "Key file used for testing purposes, it is not a key relating to anything real" 7 | }, 8 | { 9 | "file": "src\\test\\datascience\\serverConfigFiles\\remotePassword.py", 10 | "_justification": "The secret in this file used here for testing." 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /SUPPORT.md: -------------------------------------------------------------------------------- 1 | # Support 2 | 3 | ## How to file issues and get help 4 | 5 | This project uses GitHub Issues to track bugs and feature requests. Please search the existing 6 | issues before filing new issues to avoid duplicates. For new issues, file your bug or 7 | feature request as a new Issue. 8 | 9 | For help and questions about using this project, please [create a discussion](https://github.com/microsoft/vscode-jupyter/discussions). 10 | 11 | ## Microsoft Support Policy 12 | 13 | Support for this **PROJECT or PRODUCT** is limited to the resources listed above. 14 | -------------------------------------------------------------------------------- /api/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | dist 3 | out 4 | **/node_modules 5 | bin/** 6 | logs/** 7 | obj/** 8 | temp/ 9 | tmp/ 10 | *.d.ts 11 | -------------------------------------------------------------------------------- /api/.npmignore: -------------------------------------------------------------------------------- 1 | .gitignore 2 | tsconfig.json 3 | stable.js 4 | proposed.js 5 | clean.js 6 | -------------------------------------------------------------------------------- /api/clean.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | const fs = require('fs'); 5 | const path = require('path'); 6 | 7 | fs.readdirSync(__dirname).forEach((file) => { 8 | if (file.endsWith('.d.ts')) { 9 | fs.unlinkSync(path.join(__dirname, file)); 10 | } 11 | }); 12 | -------------------------------------------------------------------------------- /api/stable.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | const { EOL } = require('os'); 5 | const fs = require('fs'); 6 | const path = require('path'); 7 | 8 | // For stable we only ship the api.d.ts file. 9 | fs.copyFileSync(path.join(__dirname, '../src/api.d.ts'), path.join(__dirname, 'api.d.ts')); 10 | -------------------------------------------------------------------------------- /build/.mocha-multi-reporters.config: -------------------------------------------------------------------------------- 1 | { 2 | "reporterEnabled": "./build/ci/scripts/spec_with_pid,mocha-junit-reporter", 3 | "mochaJunitReporterReporterOptions": { 4 | "includePending": true 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /build/.mocha.unittests.js.json: -------------------------------------------------------------------------------- 1 | { 2 | "spec": "./out/**/*.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/**/*.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 | "require": ["ts-node/register", "out/test/unittests.js"], 3 | "reporter": "mocha-multi-reporters", 4 | "reporter-option": "configFile=build/.mocha-multi-reporters.config", 5 | "ui": "tdd", 6 | "recursive": true, 7 | "colors": true 8 | } 9 | -------------------------------------------------------------------------------- /build/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@istanbuljs/nyc-config-typescript", 3 | "all": true, 4 | "include": [ 5 | "src/client/**/*.ts", "out/client/**/*.js" 6 | ], 7 | "exclude": ["src/test/**/*.ts", "src/test/**/*.js"] 8 | } -------------------------------------------------------------------------------- /build/ci/component-gov.yaml: -------------------------------------------------------------------------------- 1 | pool: 2 | vmImage: 'ubuntu-latest' 3 | 4 | steps: 5 | - task: ComponentGovernanceComponentDetection@0 6 | inputs: 7 | scanType: 'Register' 8 | verbosity: 'Verbose' 9 | alertWarningLevel: 'High' 10 | -------------------------------------------------------------------------------- /build/ci/static_analysis/credscan/CredScanSuppressions.json: -------------------------------------------------------------------------------- 1 | { 2 | "tool": "Credential Scanner", 3 | "suppressions": [ 4 | { 5 | "file": "src\\test\\datascience\\serverConfigFiles\\jkey.key", 6 | "_justification": "Key file used for testing purposes, it is not a key relating to anything real" 7 | }, 8 | { 9 | "file": "src\\test\\datascience\\serverConfigFiles\\remotePassword.py", 10 | "_justification": "The secret in this file used here for testing." 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /build/ci/static_analysis/policheck/exceptions.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/build/ci/static_analysis/policheck/exceptions.mdb -------------------------------------------------------------------------------- /build/conda-nonconda-test-requirements.txt: -------------------------------------------------------------------------------- 1 | # List of requirements for conda environments that cannot be installed using conda 2 | # Pinned per ipywidget 8 support: https://github.com/microsoft/vscode-jupyter/issues/11598 3 | ipysheet==0.5.0 4 | matplotlib 5 | ipympl 6 | -------------------------------------------------------------------------------- /build/conda-test-requirements.yml: -------------------------------------------------------------------------------- 1 | # Functional requirements using a conda environment file 2 | channels: 3 | - conda-forge 4 | - defaults 5 | dependencies: 6 | - ipywidgets=7.7.2 # Pinned per ipywidget 8 support: https://github.com/microsoft/vscode-jupyter/issues/11598 7 | - pandas 8 | - nbformat 9 | - jinja2 10 | - jupyter 11 | - numpy 12 | - matplotlib 13 | - tensorflow 14 | - xarray 15 | -------------------------------------------------------------------------------- /build/constants.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | 5 | const util = require('./util'); 6 | exports.ExtensionRootDir = util.ExtensionRootDir; 7 | exports.isWindows = /^win/.test(process.platform); 8 | exports.isCI = process.env.TF_BUILD !== undefined || process.env.GITHUB_ACTIONS === 'true'; 9 | -------------------------------------------------------------------------------- /build/contributedFiles.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /build/esbuild/jquery.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | // From old webpack, requried in data-explorer. 5 | const jquery = require('slickgrid/lib/jquery-1.11.2.min'); 6 | window.jQuery = jquery; 7 | window.$ = jquery; 8 | -------------------------------------------------------------------------------- /build/esbuild/process.development.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | // Dummy global process variable for use in webviews, such as IPyWidgets kernel and renderers 5 | // We cannot use the esbuild CLI to inject these, because some code checks for the existence of process.env.XYZ 6 | // And its not possible in CLI to have an undefined define value for these. 7 | export var process = { 8 | platform: 'web', 9 | cwd: () => '', 10 | env: { 11 | NODE_ENV: 'development' 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /build/esbuild/process.production.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | // Dummy global process variable for use in webviews, such as IPyWidgets kernel and renderers 5 | // We cannot use the esbuild CLI to inject these, because some code checks for the existence of process.env.XYZ 6 | // And its not possible in CLI to have an undefined define value for these. 7 | export var process = { 8 | platform: 'web', 9 | cwd: () => '', 10 | env: { 11 | NODE_ENV: 'production' 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /build/esbuild/release.pre-release.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | export const isPreRelesVersionOfJupyterExtension = true; 5 | -------------------------------------------------------------------------------- /build/esbuild/release.stable.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | export const isPreRelesVersionOfJupyterExtension = false; 5 | -------------------------------------------------------------------------------- /build/eslint-rules/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eslint-plugin-local-rules", 3 | "version": "1.0.0", 4 | "main": "index.js" 5 | } 6 | -------------------------------------------------------------------------------- /build/launchWeb.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | const { launch } = require('./launchWebUtils'); 5 | 6 | void launch(); 7 | -------------------------------------------------------------------------------- /build/launchWebTest.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | const { launch } = require('./launchWebUtils'); 5 | 6 | void launch(true); 7 | -------------------------------------------------------------------------------- /build/postDebugWebTest.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | const fs = require('fs-extra'); 5 | const path = require('path'); 6 | 7 | try { 8 | const file = path.join(__dirname, '..', 'temp', 'jupyter.pid'); 9 | if (fs.existsSync(file)) { 10 | const pid = parseInt(fs.readFileSync(file).toString().trim()); 11 | fs.unlinkSync(file); 12 | if (pid > 0) { 13 | process.kill(pid); 14 | } 15 | } 16 | } catch (ex) { 17 | console.warn(`Failed to kill Jupyter Server`, ex); 18 | } 19 | -------------------------------------------------------------------------------- /build/util.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | 5 | const fs = require('fs'); 6 | const path = require('path'); 7 | exports.ExtensionRootDir = path.dirname(__dirname); 8 | function getListOfFiles(filename) { 9 | filename = path.normalize(filename); 10 | if (!path.isAbsolute(filename)) { 11 | filename = path.join(__dirname, filename); 12 | } 13 | const data = fs.readFileSync(filename).toString(); 14 | const files = JSON.parse(data); 15 | return files.map((file) => { 16 | return path.join(exports.ExtensionRootDir, file.replace(/\//g, path.sep)); 17 | }); 18 | } 19 | exports.getListOfFiles = getListOfFiles; 20 | -------------------------------------------------------------------------------- /build/venv-smoke-test-requirements.txt: -------------------------------------------------------------------------------- 1 | ipykernel 2 | -------------------------------------------------------------------------------- /build/venv-test-ipywidgets8-requirements.txt: -------------------------------------------------------------------------------- 1 | # List of requirements for ipython tests 2 | numpy 3 | pandas 4 | # Install jupyter itself so we end up with a kernel 5 | jupyter 6 | # List of requirements for conda environments that cannot be installed using conda 7 | ipywidgets 8 | anywidget 9 | ipysheet==0.5.0 10 | matplotlib 11 | ipympl 12 | -------------------------------------------------------------------------------- /build/venv-test-requirements.txt: -------------------------------------------------------------------------------- 1 | # List of requirements for ipython tests 2 | numpy 3 | pandas 4 | # Install jupyter itself so we end up with a kernel 5 | jupyter 6 | # List of requirements for conda environments that cannot be installed using conda 7 | # Pinned per ipywidget 8 support: https://github.com/microsoft/vscode-jupyter/issues/11598 8 | ipywidgets==7.7.2 9 | anywidget 10 | ipysheet==0.5.0 11 | matplotlib 12 | ipympl 13 | -------------------------------------------------------------------------------- /build/webpack/fs-empty.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 'use strict'; 4 | -------------------------------------------------------------------------------- /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/pdfkit.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 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/vscode-jupyter-release-version.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | export const isPreRelesVersionOfJupyterExtension = true; 5 | -------------------------------------------------------------------------------- /data/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.defaultInterpreterPath": "/usr/bin/python3" 3 | } 4 | -------------------------------------------------------------------------------- /data/test.py: -------------------------------------------------------------------------------- 1 | #%% 2 | print('hello') 3 | -------------------------------------------------------------------------------- /debugpy_logging.cmd: -------------------------------------------------------------------------------- 1 | set PYDEVD_DEBUG=1 2 | set DEBUGPY_LOG_DIR=%~dp0\tmp 3 | set PYDEVD_DEBUG_FILE=%~dp0\tmp 4 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/icon.png -------------------------------------------------------------------------------- /images/Jupyter README/CreateNewNotebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/images/Jupyter README/CreateNewNotebook.png -------------------------------------------------------------------------------- /images/Jupyter README/notebookui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/images/Jupyter README/notebookui.png -------------------------------------------------------------------------------- /images/dataviewerdark.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/images/dataviewerdark.gif -------------------------------------------------------------------------------- /images/runbyline.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/images/runbyline.gif -------------------------------------------------------------------------------- /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 | import builtins 7 | 8 | obj = {} 9 | obj["versionInfo"] = tuple(sys.version_info) 10 | obj["sysPrefix"] = sys.prefix 11 | obj["version"] = sys.version 12 | obj["exe"] = sys.executable 13 | obj["is64Bit"] = sys.maxsize > 2**32 14 | 15 | builtins.print(json.dumps(obj)) 16 | -------------------------------------------------------------------------------- /pythonFiles/printEnvVariables.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | 4 | import os 5 | import builtins 6 | import json 7 | 8 | builtins.print("e976ee50-99ed-4aba-9b6b-9dcd5634d07d") 9 | 10 | # Dump results 11 | builtins.print(json.dumps(dict(os.environ))) 12 | -------------------------------------------------------------------------------- /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/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/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/vscode_datascience_helpers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. All rights reserved. 2 | # Licensed under the MIT License. 3 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /resources/dark/export_to_python.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /resources/dark/interrupt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/dark/restart-kernel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/dark/runabove-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /resources/dark/runbelow-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /resources/dark/variable_explorer.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/light/export_to_python.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /resources/light/interrupt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/light/restart-kernel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/light/runabove.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /resources/light/runbelow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /resources/light/variable_explorer.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/walkthroughs/KernelPicker.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/resources/walkthroughs/KernelPicker.gif -------------------------------------------------------------------------------- /resources/walkthroughs/OpenOrCreateNotebook.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/resources/walkthroughs/OpenOrCreateNotebook.gif -------------------------------------------------------------------------------- /resources/walkthroughs/dataviewerdark.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/resources/walkthroughs/dataviewerdark.gif -------------------------------------------------------------------------------- /resources/walkthroughs/interactive.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/resources/walkthroughs/interactive.gif -------------------------------------------------------------------------------- /snippets/python.json: -------------------------------------------------------------------------------- 1 | { 2 | "add/new/cell": { 3 | "prefix": "add/new/cell", 4 | "body": "# %%", 5 | "description": "Code snippet to add a new cell" 6 | }, 7 | "mark/markdown": { 8 | "prefix": "mark/markdown", 9 | "body": "# %% [markdown]", 10 | "description": "Code snippet to add a new markdown cell" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/api.proposed.variables.d.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import type { Uri } from 'vscode'; 5 | 6 | declare module './api' { 7 | export interface IJupyterVariable { 8 | name: string; 9 | type: string; 10 | fileName?: Uri; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/api.pythonIntegration.d.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import type { PythonApi } from './platform/api/types'; 5 | 6 | declare module './api' { 7 | /** 8 | * These types are not required for any other extension, except for the Python extension. 9 | * Hence the reason to keep this separate. This way we can keep the API stable for other extensions (which would be the majority case). 10 | */ 11 | export interface Jupyter { 12 | registerPythonApi(pythonApi: PythonApi): void; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/interactive-window/debugger/jupyter/debugger.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { Debugger } from '../../../notebooks/debugger/debugger'; 5 | import { createDeferred } from '../../../platform/common/utils/async'; 6 | 7 | export class IWDebugger extends Debugger { 8 | private readonly _ready = createDeferred(); 9 | public readonly ready = this._ready.promise; 10 | 11 | public resolve() { 12 | this._ready.resolve(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/interactive-window/identity.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import * as path from '../platform/vscode-path/path'; 5 | import { Uri } from 'vscode'; 6 | import * as localize from '../platform/common/utils/localize'; 7 | 8 | export function getInteractiveWindowTitle(owner: Uri): string { 9 | return localize.DataScience.interactiveWindowTitleFormat(path.basename(owner.path)); 10 | } 11 | -------------------------------------------------------------------------------- /src/interactive-window/notebookInteractiveWindow.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { NotebookEditor } from 'vscode'; 5 | import { InteractiveWindow } from './interactiveWindow'; 6 | 7 | export class NotebookInteractiveWindow extends InteractiveWindow { 8 | private editor: NotebookEditor | undefined; 9 | 10 | public override async getAppendIndex() { 11 | if (!this.editor?.replOptions) { 12 | this.editor = await this.showInteractiveEditor(); 13 | } 14 | if (!this.editor?.replOptions) { 15 | throw new Error('Interactive editor not found'); 16 | } 17 | return this.editor.replOptions.appendIndex; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/kernels/errors/kernelError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import type { IErrorMsg, IReplyErrorContent } from '@jupyterlab/services/lib/kernel/messages'; 5 | 6 | export class KernelError extends Error { 7 | public readonly ename: string; 8 | public readonly evalue: string; 9 | public readonly traceback: string[]; 10 | constructor(kernelError: IReplyErrorContent | IErrorMsg['content']) { 11 | super(kernelError.evalue || kernelError.ename); 12 | this.ename = kernelError.ename; 13 | this.evalue = kernelError.evalue; 14 | this.traceback = kernelError.traceback; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/kernels/errors/kernelProcessExitedError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { KernelConnectionMetadata } from '../types'; 5 | import { DataScience } from '../../platform/common/utils/localize'; 6 | import { BaseKernelError } from './types'; 7 | 8 | /** 9 | * Thrown when a raw kernel exits unexpectedly. 10 | */ 11 | export class KernelProcessExitedError extends BaseKernelError { 12 | constructor( 13 | public readonly exitCode: number = -1, 14 | public override readonly stdErr: string, 15 | kernelConnectionMetadata: KernelConnectionMetadata 16 | ) { 17 | super('kerneldied', DataScience.kernelDied(stdErr.trim()), kernelConnectionMetadata); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/kernels/jupyter/constants.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | export const RemoteKernelSpecCacheFileName = 'remoteKernelSpecCache.json'; 5 | -------------------------------------------------------------------------------- /src/kernels/jupyter/finder/types.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { JupyterServerProviderHandle, IRemoteKernelFinder } from '../types'; 5 | 6 | export const IRemoteKernelFinderController = Symbol('RemoteKernelFinderController'); 7 | export interface IRemoteKernelFinderController { 8 | getOrCreateRemoteKernelFinder( 9 | serverProviderHandle: JupyterServerProviderHandle, 10 | displayName: string 11 | ): IRemoteKernelFinder; 12 | } 13 | -------------------------------------------------------------------------------- /src/kernels/jupyter/helpers.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | export function getJupyterConnectionDisplayName(token: string, baseUrl: string): string { 5 | const tokenString = token.length > 0 ? `?token=${token}` : ''; 6 | return `${baseUrl}${tokenString}`; 7 | } 8 | -------------------------------------------------------------------------------- /src/kernels/jupyter/launcher/jupyterServerProvider.web.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { injectable } from 'inversify'; 5 | import { GetServerOptions, IJupyterConnection } from '../../types'; 6 | import { IJupyterServerProvider } from '../types'; 7 | 8 | @injectable() 9 | export class JupyterServerProvider implements IJupyterServerProvider { 10 | public async getOrStartServer(_: GetServerOptions): Promise { 11 | throw new Error('Invalid Operation in Web'); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/kernels/jupyter/session/requestAgentCreator.node.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { Agent as HttpsAgent } from 'https'; 5 | import { injectable } from 'inversify'; 6 | import { IJupyterRequestAgentCreator } from '../types'; 7 | 8 | @injectable() 9 | export class RequestAgentCreator implements IJupyterRequestAgentCreator { 10 | createHttpRequestAgent() { 11 | return new HttpsAgent({ rejectUnauthorized: false }); // CodeQL [SM03616] User has been prompted at this point whether to allow making requests to http servers with invalid certificates. 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/kernels/kernelController.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { NotebookCell, NotebookCellExecution, NotebookController } from 'vscode'; 5 | import { IKernelController } from './types'; 6 | 7 | export class KernelController implements IKernelController { 8 | constructor(private readonly controller: NotebookController) {} 9 | public get id() { 10 | return this.controller.id; 11 | } 12 | createNotebookCellExecution(cell: NotebookCell): NotebookCellExecution { 13 | return this.controller.createNotebookCellExecution(cell); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/kernels/kernelSocket.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { IKernelSocket } from './types'; 5 | 6 | export const KernelSocketMap = new Map(); 7 | -------------------------------------------------------------------------------- /src/kernels/raw/finder/trustedKernelPaths.web.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { injectable } from 'inversify'; 5 | import { Uri } from 'vscode'; 6 | import { ITrustedKernelPaths } from './types'; 7 | 8 | @injectable() 9 | export class TrustedKernelPaths implements ITrustedKernelPaths { 10 | public isTrusted(_kernelPath: Uri): boolean { 11 | return true; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/kernels/raw/finder/types.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { Uri } from 'vscode'; 5 | 6 | export const ITrustedKernelPaths = Symbol('ITrustedKernelPaths'); 7 | export interface ITrustedKernelPaths { 8 | isTrusted(kernelPath: Uri): boolean; 9 | } 10 | -------------------------------------------------------------------------------- /src/notebooks/debugger/debugger.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { DebugConfiguration, DebugSession, NotebookDocument } from 'vscode'; 5 | 6 | export class Debugger { 7 | constructor( 8 | public readonly document: NotebookDocument, 9 | public readonly config: DebugConfiguration, 10 | public readonly session: DebugSession 11 | ) {} 12 | } 13 | -------------------------------------------------------------------------------- /src/notebooks/export/exportUtil.web.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { injectable } from 'inversify'; 5 | import { ExportUtilBase } from './exportUtil'; 6 | 7 | /** 8 | * Export utilities that are common to node/web 9 | */ 10 | @injectable() 11 | export class ExportUtil extends ExportUtilBase {} 12 | -------------------------------------------------------------------------------- /src/notebooks/outputs/linkProvider.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | export const LineQueryRegex = /line=(\d+)/; 5 | 6 | // The following list of commands represent those that can be executed 7 | // in a markdown cell using the syntax: https://command:[my.vscode.command]. 8 | export const linkCommandAllowList = [ 9 | 'jupyter.latestExtension', 10 | 'jupyter.viewOutput', 11 | 'workbench.action.openSettings', 12 | 'jupyter.enableLoadingWidgetScriptsFromThirdPartySource' 13 | ]; 14 | -------------------------------------------------------------------------------- /src/platform/.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | server 3 | node_modules -------------------------------------------------------------------------------- /src/platform/.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/platform/api/serviceRegistry.web.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { IServiceManager } from '../ioc/types'; 5 | import { OldPythonApiProvider, PythonExtensionChecker } from './pythonApi'; 6 | import { IPythonApiProvider, IPythonExtensionChecker } from './types'; 7 | 8 | export function registerTypes(serviceManager: IServiceManager): void { 9 | serviceManager.addSingleton(IPythonApiProvider, OldPythonApiProvider); 10 | serviceManager.addSingleton(IPythonExtensionChecker, PythonExtensionChecker); 11 | } 12 | -------------------------------------------------------------------------------- /src/platform/common/net/browser.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | /* eslint-disable @typescript-eslint/no-var-requires */ 5 | 6 | import { env, Uri } from 'vscode'; 7 | import { noop } from '../utils/misc'; 8 | 9 | export function openInBrowser(url: string | Uri) { 10 | env.openExternal(typeof url === 'string' ? Uri.parse(url) : url).then(noop, noop); 11 | } 12 | -------------------------------------------------------------------------------- /src/platform/common/platform/constants.node.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | // eslint-disable-next-line 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/platform/common/platform/serviceRegistry.node.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { IServiceContainer, IServiceManager } from '../../ioc/types'; 5 | import { initializeExternalDependencies } from './fileUtils.node'; 6 | import { PlatformService } from './platformService.node'; 7 | import { IPlatformService } from './types'; 8 | 9 | export function registerTypes(serviceManager: IServiceManager) { 10 | serviceManager.addSingleton(IPlatformService, PlatformService); 11 | initializeExternalDependencies(serviceManager.get(IServiceContainer)); 12 | } 13 | -------------------------------------------------------------------------------- /src/platform/common/platform/serviceRegistry.web.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { IServiceManager } from '../../ioc/types'; 5 | import { PlatformService } from './platformService.web'; 6 | import { IPlatformService } from './types'; 7 | 8 | export function registerTypes(serviceManager: IServiceManager) { 9 | serviceManager.addSingleton(IPlatformService, PlatformService); 10 | } 11 | -------------------------------------------------------------------------------- /src/platform/common/process/constants.node.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | export const DEFAULT_ENCODING = 'utf8'; 5 | -------------------------------------------------------------------------------- /src/platform/common/process/serviceRegistry.node.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { IServiceManager } from '../../ioc/types'; 5 | import { ProcessServiceFactory } from './processFactory.node'; 6 | import { IProcessServiceFactory } from './types.node'; 7 | 8 | export function registerTypes(serviceManager: IServiceManager) { 9 | serviceManager.addSingleton(IProcessServiceFactory, ProcessServiceFactory); 10 | } 11 | -------------------------------------------------------------------------------- /src/platform/common/utils/encoder.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | export function toPythonSafePath(filePath: string): string { 5 | return `r"${filePath}"`; 6 | } 7 | -------------------------------------------------------------------------------- /src/platform/common/utils/functional.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | export function once(this: unknown, fn: T): T { 5 | const _this = this; 6 | let didCall = false; 7 | let result: unknown; 8 | 9 | return function () { 10 | if (didCall) { 11 | return result; 12 | } 13 | 14 | didCall = true; 15 | result = fn.apply(_this, arguments); 16 | 17 | return result; 18 | } as unknown as T; 19 | } 20 | -------------------------------------------------------------------------------- /src/platform/common/utils/notebooks.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { Uri, window, workspace } from 'vscode'; 5 | 6 | export async function openAndShowNotebook(file: Uri) { 7 | const nb = await workspace.openNotebookDocument(file); 8 | await window.showNotebookDocument(nb); 9 | } 10 | -------------------------------------------------------------------------------- /src/platform/common/utils/stopWatch.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | /** 5 | * Tracks wall clock time. Start time is set at contruction. 6 | */ 7 | export class StopWatch { 8 | private started = Date.now(); 9 | public get elapsedTime() { 10 | return Date.now() - this.started; 11 | } 12 | public reset() { 13 | this.started = Date.now(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/platform/common/utils/symbols.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | /** 5 | * Can be passed into the Delayed to defer using a microtask 6 | * */ 7 | export const MicrotaskDelay = Symbol('MicrotaskDelay'); 8 | -------------------------------------------------------------------------------- /src/platform/common/utils/version.node.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import * as semver from 'semver'; 5 | 6 | export function parseVersion(raw: string): semver.SemVer { 7 | raw = raw.replace(/\.00*(?=[1-9]|0\.)/, '.'); 8 | const ver = semver.coerce(raw); 9 | if (ver === null || !semver.valid(ver)) { 10 | // eslint-disable-next-line 11 | // TODO: Raise an exception instead? 12 | return new semver.SemVer('0.0.0'); 13 | } 14 | return ver; 15 | } 16 | -------------------------------------------------------------------------------- /src/platform/constants.node.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import * as path from './vscode-path/path'; 5 | 6 | // We always use esbuild to bundle the extension, 7 | // Thus __dirname will always be a file in `dist` folder. 8 | export const EXTENSION_ROOT_DIR = path.join(__dirname, '..'); 9 | export * from './constants'; 10 | -------------------------------------------------------------------------------- /src/platform/errors/interactiveCellResultError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { NotebookCell } from 'vscode'; 5 | 6 | /** 7 | * Error thrown when running cells in the interactive window. 8 | * 9 | * Cause: 10 | * Kernel.executeCell() returns an error when running a cell in the interactive window. 11 | * 12 | * Handled by: 13 | * Running cell in IW shows the error. If no running cell, then a notification is shown to the user. 14 | * 15 | */ 16 | export class InteractiveCellResultError extends Error { 17 | constructor(public readonly cell: NotebookCell) { 18 | super('Cell failed to execute'); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/platform/errors/jupyterConnectError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { PythonEnvironment } from '../pythonEnvironments/info'; 5 | import { BaseError } from './types'; 6 | 7 | /** 8 | * Error thrown when jupyter server fails to start 9 | */ 10 | export class JupyterConnectError extends BaseError { 11 | constructor( 12 | message: string, 13 | stderr: string | string, 14 | public readonly interpreter?: PythonEnvironment 15 | ) { 16 | super('jupyterconnection', message + (stderr ? `\n${stderr}` : '')); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/platform/errors/jupyterDataRateLimitError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { DataScience } from '../common/utils/localize'; 5 | import { BaseError } from './types'; 6 | 7 | /** 8 | * Error thrown when the jupyter iopub datarate limit is exceeded. 9 | * 10 | * Cause: 11 | * This can happen when the jupyter config is not created by us (user can force this to happen with a setting) 12 | * 13 | * Handled by: 14 | * User is shown an notification asking them to increated their data rate limit 15 | */ 16 | export class JupyterDataRateLimitError extends BaseError { 17 | constructor() { 18 | super('unknown', DataScience.jupyterDataRateExceeded); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/platform/errors/jupyterExpiredCertsError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { BaseError } from './types'; 5 | 6 | /** 7 | * Error thrown when a jupyter server is using an expired certificate. This can be expected and we should ask if they want to allow it anyway. 8 | */ 9 | export class JupyterExpiredCertsError extends BaseError { 10 | constructor(message: string) { 11 | super('jupyterexpiredcert', message); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/platform/errors/jupyterInstallError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { BaseError } from './types'; 5 | 6 | /** 7 | * Error thrown when we can't run jupyter 8 | * 9 | * Cause: 10 | * Number of reasons: 11 | * - Python isn't installed 12 | * - Jupyter isn't installed in the interpreter tried (there's only one) 13 | * 14 | * Handled by: 15 | * KernelErrorHandler uses this to figure out it needs to tell the user to install jupyter. It will show a message in the cell. 16 | */ 17 | export class JupyterInstallError extends BaseError { 18 | constructor(message: string) { 19 | super('jupyterinstall', message); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/platform/errors/moduleNotInstalledError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { BaseError } from './types'; 5 | 6 | /** 7 | * Error thrown when we can't find a module during execing a module 8 | * 9 | * Cause: 10 | * PythonProcessService is being used to exec a module, but we can't find the module. 11 | * 12 | * Handled by: 13 | * The task needing the module will handle it. 14 | * 15 | */ 16 | export class ModuleNotInstalledError extends BaseError { 17 | constructor(public readonly moduleName: string) { 18 | super('notinstalled', `Module '${moduleName}' not installed.`); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/platform/errors/notSupportedInWebError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { BaseError } from './types'; 5 | import * as localize from '../common/utils/localize'; 6 | 7 | /** 8 | * Error thrown when we attempt to do something that is not supported in the web 9 | * 10 | * Cause: 11 | * This should be a bug in our code. Right now this is thrown if we try to start a 'local' jupyter server. 12 | * 13 | * Handled by: 14 | * Error should show up in the first cell. 15 | */ 16 | export class NotSupportedInWebError extends BaseError { 17 | constructor() { 18 | super('nodeonly', localize.DataScience.webNotSupported); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/platform/errors/pythonExtActivationFailedError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { WrappedError } from './types'; 5 | 6 | export class PythonExtensionActicationFailedError extends WrappedError { 7 | constructor(originalException: Error) { 8 | super('Python Extension failed to activate', originalException, 'pythonExtension'); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/platform/errors/pythonExtApiNotExportedError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { BaseError } from './types'; 5 | 6 | export class PythonExtensionApiNotExportedError extends BaseError { 7 | constructor() { 8 | super('pythonExtension', 'Python Extension API not exported'); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/platform/errors/pythonExtNotInstalledError.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { WrappedError } from './types'; 5 | 6 | export class PythonExtensionNotInstalledError extends WrappedError { 7 | constructor() { 8 | super('Python Extension not installed', undefined, 'pythonExtension'); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/platform/interpreter/activation/types.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { CancellationToken } from 'vscode'; 5 | import { Resource } from '../../common/types'; 6 | 7 | export const IEnvironmentActivationService = Symbol('IEnvironmentActivationService'); 8 | export interface IEnvironmentActivationService { 9 | getActivatedEnvironmentVariables( 10 | resource: Resource, 11 | interpreter: { id: string }, 12 | token?: CancellationToken 13 | ): Promise; 14 | } 15 | -------------------------------------------------------------------------------- /src/platform/interpreter/installer/productNames.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { Product } from './types'; 5 | 6 | export const ProductNames = new Map(); 7 | ProductNames.set(Product.jupyter, 'jupyter'); 8 | ProductNames.set(Product.notebook, 'notebook'); 9 | ProductNames.set(Product.ipykernel, 'ipykernel'); 10 | ProductNames.set(Product.nbconvert, 'nbconvert'); 11 | ProductNames.set(Product.kernelspec, 'kernelspec'); 12 | ProductNames.set(Product.pandas, 'pandas'); 13 | ProductNames.set(Product.pip, 'pip'); 14 | ProductNames.set(Product.ensurepip, 'ensurepip'); 15 | -------------------------------------------------------------------------------- /src/platform/interpreter/internal/scripts/index.node.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import * as path from '../../../vscode-path/path'; 5 | import { EXTENSION_ROOT_DIR } from '../../../constants.node'; 6 | 7 | // It is simpler to hard-code it instead of using vscode.ExtensionContext.extensionPath. 8 | export const _SCRIPTS_DIR = path.join(EXTENSION_ROOT_DIR, 'pythonFiles'); 9 | -------------------------------------------------------------------------------- /src/platform/ioc/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 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/platform/ioc/reflectMetadata.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | /** 5 | * This module imports the reflect-metadata library which is needed by inversify. It was designed to 6 | * be imported near the start of all entrypoints that will utilize inversify. 7 | * 8 | * Note that this uses require, not import, because reflect-metadata may have been already 9 | * initialized by another extension running on the same extension host. If that happens, the old 10 | * metadata state would be clobbered. 11 | */ 12 | // eslint-disable-next-line @typescript-eslint/no-explicit-any 13 | if ((Reflect as any).metadata === undefined) { 14 | require('reflect-metadata'); 15 | } 16 | -------------------------------------------------------------------------------- /src/platform/notebooks/replNotebookTrackerService.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { NotebookDocument } from 'vscode'; 5 | 6 | export const IReplNotebookTrackerService = Symbol('IReplNotebookTrackerService'); 7 | export interface IReplNotebookTrackerService { 8 | isForReplEditor(notebook: NotebookDocument): boolean; 9 | } 10 | -------------------------------------------------------------------------------- /src/platform/pythonEnvironments/info/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | 5 | import { Uri } from 'vscode'; 6 | 7 | /** 8 | * The supported Python environment types. 9 | */ 10 | export enum EnvironmentType { 11 | Unknown = 'Unknown', 12 | Conda = 'Conda', 13 | VirtualEnv = 'VirtualEnv', 14 | Pipenv = 'PipEnv', 15 | Pyenv = 'Pyenv', 16 | Venv = 'Venv', 17 | Poetry = 'Poetry', 18 | VirtualEnvWrapper = 'VirtualEnvWrapper', 19 | } 20 | 21 | /** 22 | * Details about a Python environment. 23 | */ 24 | export interface PythonEnvironment { 25 | id: string; 26 | uri: Uri; 27 | }; 28 | -------------------------------------------------------------------------------- /src/platform/pythonEnvironments/info/pythonVersion.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | /** 5 | * A representation of a Python runtime's version. 6 | * 7 | * @prop raw - the original version string 8 | * @prop major - the "major" version 9 | * @prop minor - the "minor" version 10 | * @prop patch - the "patch" (or "micro") version 11 | */ 12 | // Note that this is currently compatible with SemVer objects, 13 | // but we may change it to match the format of sys.version_info. 14 | export type PythonVersion = { 15 | raw: string; 16 | major: number; 17 | minor: number; 18 | patch: number; 19 | }; 20 | -------------------------------------------------------------------------------- /src/platform/terminals/serviceRegistry.node.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { interfaces } from 'inversify'; 5 | import { ClassType } from '../ioc/types'; 6 | import { ICodeExecutionHelper } from './types'; 7 | import { CodeExecutionHelper } from './codeExecution/codeExecutionHelper'; 8 | 9 | interface IServiceRegistry { 10 | addSingleton( 11 | serviceIdentifier: interfaces.ServiceIdentifier, 12 | constructor: ClassType, 13 | name?: string | number | symbol 14 | ): void; 15 | } 16 | 17 | export function registerTypes(serviceManager: IServiceRegistry) { 18 | serviceManager.addSingleton(ICodeExecutionHelper, CodeExecutionHelper); 19 | } 20 | -------------------------------------------------------------------------------- /src/platform/terminals/serviceRegistry.web.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { interfaces } from 'inversify'; 5 | import { ClassType } from '../ioc/types'; 6 | import { ICodeExecutionHelper } from './types'; 7 | import { CodeExecutionHelper } from './codeExecution/codeExecutionHelper'; 8 | 9 | interface IServiceRegistry { 10 | addSingleton( 11 | serviceIdentifier: interfaces.ServiceIdentifier, 12 | constructor: ClassType, 13 | name?: string | number | symbol 14 | ): void; 15 | } 16 | 17 | export function registerTypes(serviceManager: IServiceRegistry) { 18 | serviceManager.addSingleton(ICodeExecutionHelper, CodeExecutionHelper); 19 | } 20 | -------------------------------------------------------------------------------- /src/platform/terminals/types.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { TextEditor, Uri } from 'vscode'; 5 | 6 | export const ICodeExecutionHelper = Symbol('ICodeExecutionHelper'); 7 | 8 | export interface ICodeExecutionHelper { 9 | getFileToExecute(): Promise; 10 | saveFileIfDirty(file: Uri): Promise; 11 | getSelectedTextToExecute(textEditor: TextEditor): string | undefined; 12 | } 13 | -------------------------------------------------------------------------------- /src/platform/vscode-path/readme.md: -------------------------------------------------------------------------------- 1 | This directory is directly copied from the vscode source here: 2 | https://github.com/microsoft/vscode/tree/main/src/vs/base/common 3 | 4 | The intent is to provide a 'path' implementation that works the same in web as node. 5 | -------------------------------------------------------------------------------- /src/standalone/api/pythonExtension/index.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { IPythonApiProvider, PythonApi } from '../../../platform/api/types'; 5 | import { IServiceContainer } from '../../../platform/ioc/types'; 6 | 7 | let registered = false; 8 | export function registerPythonApi(pythonApi: PythonApi, serviceContainer: IServiceContainer) { 9 | if (registered) { 10 | return; 11 | } 12 | registered = true; 13 | const apiProvider = serviceContainer.get(IPythonApiProvider); 14 | apiProvider.setApi(pythonApi); 15 | } 16 | -------------------------------------------------------------------------------- /src/standalone/api/unstable/types.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { IExportedKernelService } from '../../../api'; 5 | 6 | export const IExportedKernelServiceFactory = Symbol('IExportedKernelServiceFactory'); 7 | export interface IExportedKernelServiceFactory { 8 | getService(): Promise; 9 | } 10 | -------------------------------------------------------------------------------- /src/standalone/devTools/README.md: -------------------------------------------------------------------------------- 1 | Stuff here is only available during development in the extension or when `jupyter.development = true` in `settings.json`. 2 | -------------------------------------------------------------------------------- /src/standalone/devTools/serviceRegistry.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { IExtensionContext } from '../../platform/common/types'; 5 | import { addClearCacheCommand } from './clearCache'; 6 | 7 | export function registerTypes(context: IExtensionContext, isDevMode: boolean) { 8 | addClearCacheCommand(context, isDevMode); 9 | } 10 | -------------------------------------------------------------------------------- /src/standalone/intellisense/completionDocumentationFormatter/julia.abs.md: -------------------------------------------------------------------------------- 1 | ```julia 2 | abs(x) 3 | ``` 4 | 5 | The absolute value of x. 6 | 7 | When abs is applied to signed integers, overflow may occur, resulting in the 8 | return of a negative value. This overflow occurs only when abs is applied to 9 | the minimum representable value of a signed integer. That is, when x == 10 | typemin(typeof(x)), abs(x) == x < 0, not -x as might be expected. 11 | 12 | See also: abs2, unsigned, sign. 13 | 14 | ## Examples: 15 | ```julia 16 | julia> abs(-3) 17 | 3 18 | julia> abs(1 + im) 19 | 1.4142135623730951 20 | julia> abs(typemin(Int64)) 21 | -9223372036854775808 22 | ``` -------------------------------------------------------------------------------- /src/standalone/intellisense/completionDocumentationFormatter/julia.abs.txt: -------------------------------------------------------------------------------- 1 | abs(x) 2 | 3 | The absolute value of x. 4 | 5 | When abs is applied to signed integers, overflow may occur, resulting in the 6 | return of a negative value. This overflow occurs only when abs is applied to 7 | the minimum representable value of a signed integer. That is, when x == 8 | typemin(typeof(x)), abs(x) == x < 0, not -x as might be expected. 9 | 10 | See also: abs2, unsigned, sign. 11 | 12 | Examples 13 | ≡≡≡≡≡≡≡≡≡≡ 14 | 15 | julia> abs(-3) 16 | 3 17 | 18 | julia> abs(1 + im) 19 | 1.4142135623730951 20 | 21 | julia> abs(typemin(Int64)) 22 | -9223372036854775808 23 | -------------------------------------------------------------------------------- /src/standalone/intellisense/completionDocumentationFormatter/python.ArithmeticError.md: -------------------------------------------------------------------------------- 1 | ```python 2 | ArithmeticError(self, /, *args, **kwargs) 3 | ``` 4 | ---------- 5 | Base class for arithmetic errors. 6 | Type: type 7 | ## Subclasses: 8 | FloatingPointError, OverflowError, ZeroDivisionError, DecimalException -------------------------------------------------------------------------------- /src/standalone/intellisense/completionDocumentationFormatter/python.ArithmeticError.txt: -------------------------------------------------------------------------------- 1 | Init signature: ArithmeticError(self, /, *args, **kwargs) 2 | Docstring: Base class for arithmetic errors. 3 | Type: type 4 | Subclasses: FloatingPointError, OverflowError, ZeroDivisionError, DecimalException 5 | -------------------------------------------------------------------------------- /src/standalone/intellisense/completionDocumentationFormatter/python.df.axes.md: -------------------------------------------------------------------------------- 1 | Return a list representing the axes of the DataFrame. 2 | 3 | It has the row axis labels and column axis labels as the only members. 4 | They are returned in that order. 5 | 6 | ## Examples 7 | ```python 8 | >>> df = pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]}) 9 | >>> df.axes 10 | [RangeIndex(start=0, stop=2, step=1), Index(['col1', 'col2'], 11 | dtype='object')] 12 | 13 | ``` -------------------------------------------------------------------------------- /src/standalone/intellisense/completionDocumentationFormatter/python.df.axes.txt: -------------------------------------------------------------------------------- 1 | Type: property 2 | String form: 3 | Docstring: 4 | Return a list representing the axes of the DataFrame. 5 | 6 | It has the row axis labels and column axis labels as the only members. 7 | They are returned in that order. 8 | 9 | Examples 10 | -------- 11 | >>> df = pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]}) 12 | >>> df.axes 13 | [RangeIndex(start=0, stop=2, step=1), Index(['col1', 'col2'], 14 | dtype='object')] 15 | -------------------------------------------------------------------------------- /src/standalone/intellisense/completionDocumentationFormatter/python.matplotlib_inline.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/standalone/intellisense/completionDocumentationFormatter/python.matplotlib_inline.md -------------------------------------------------------------------------------- /src/standalone/intellisense/completionDocumentationFormatter/python.matplotlib_inline.txt: -------------------------------------------------------------------------------- 1 | Type: module 2 | String form: 3 | File: ~/demo/.venv/lib/python3.11/site-packages/matplotlib_inline/__init__.py 4 | Docstring: 5 | -------------------------------------------------------------------------------- /src/standalone/intellisense/helpers.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | export function generateSortString(index: number) { 5 | // If its 0, then use AA, if 25, then use ZZ 6 | // This will give us the ability to sort first 700 items (thats more than enough). 7 | // To keep things fast we'll only sort the first 300. 8 | if (index >= 300) { 9 | return 'ZZZZZZZ'; 10 | } 11 | if (index <= 25) { 12 | return `A${String.fromCharCode(65 + index)}`; 13 | } 14 | const firstChar = String.fromCharCode(65 + Math.ceil(index / 25)); 15 | const secondChar = String.fromCharCode(65 + (index % 25)); 16 | return `${firstChar}${secondChar}`; 17 | } 18 | -------------------------------------------------------------------------------- /src/standalone/intellisense/types.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | export interface INotebookCompletion { 5 | matches: ReadonlyArray; 6 | cursor: { 7 | start: number; 8 | end: number; 9 | }; 10 | metadata: { 11 | _jupyter_types_experimental?: { end: number; start: number; text: string; type?: string }[]; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /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/analysisEngineTest.node.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | /* eslint-disable no-console, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */ 5 | import * as path from '../platform/vscode-path/path'; 6 | 7 | process.env.CODE_TESTS_WORKSPACE = path.join(__dirname, '..', '..', 'src', 'test'); 8 | process.env.IS_CI_SERVER_TEST_DEBUGGER = ''; 9 | process.env.VSC_JUPYTER_LANGUAGE_SERVER = '1'; 10 | process.env.TEST_FILES_SUFFIX = 'ls.test'; 11 | 12 | function start() { 13 | console.log('*'.repeat(100)); 14 | console.log('Start language server tests'); 15 | require('../../node_modules/vscode/bin/test'); 16 | } 17 | start(); 18 | -------------------------------------------------------------------------------- /src/test/ciConstants.node.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | // 5 | // Constants that pertain to CI processes/tests only. No dependencies on vscode! 6 | // 7 | const IS_VSTS = process.env.TF_BUILD !== undefined; 8 | const IS_GITHUB_ACTIONS = process.env.GITHUB_ACTIONS === 'true'; 9 | export const IS_CI_SERVER = IS_VSTS || IS_GITHUB_ACTIONS; 10 | 11 | export const IS_CI_SERVER_TEST_DEBUGGER = process.env.IS_CI_SERVER_TEST_DEBUGGER === '1'; 12 | -------------------------------------------------------------------------------- /src/test/common/asyncDump.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | // Call this function to debug async hangs. It should print out stack traces of still running promises. 5 | export function asyncDump() { 6 | require('why-is-node-running')(); 7 | } 8 | -------------------------------------------------------------------------------- /src/test/common/misc.vscode.test.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { expect } from 'chai'; 5 | import { isTestExecution } from '../../platform/common/constants'; 6 | 7 | // Defines a Mocha test suite to group tests of similar kind together 8 | suite('Common - Misc', () => { 9 | test("Ensure its identified that we're running unit tests", () => { 10 | expect(isTestExecution()).to.be.equal(true, 'incorrect'); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /src/test/core.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { IDisposable } from '../platform/common/types'; 5 | 6 | // File without any dependencies on VS Code. 7 | 8 | export async function sleep(milliseconds: number, disposables?: IDisposable[]) { 9 | return new Promise((resolve) => { 10 | const timeout = setTimeout(resolve, milliseconds); 11 | if (disposables) { 12 | disposables.push({ dispose: () => clearTimeout(timeout) }); 13 | } 14 | }); 15 | } 16 | 17 | // eslint-disable-next-line no-empty,@typescript-eslint/no-empty-function 18 | export function noop() {} 19 | -------------------------------------------------------------------------------- /src/test/datascience/.env: -------------------------------------------------------------------------------- 1 | ENV_VAR_TESTING_CI=HelloWorldEnvVariable 2 | PYTHONPATH=./dummyFolderForPythonPath 3 | -------------------------------------------------------------------------------- /src/test/datascience/.gitignore: -------------------------------------------------------------------------------- 1 | tmp-*.py -------------------------------------------------------------------------------- /src/test/datascience/data-viewing/dataViewing.py: -------------------------------------------------------------------------------- 1 | my_list = [1, 2, 3] 2 | breakpoint() 3 | -------------------------------------------------------------------------------- /src/test/datascience/foo.py: -------------------------------------------------------------------------------- 1 | # Dummy file just to find a file for use in jupyter execution 2 | -------------------------------------------------------------------------------- /src/test/datascience/helpers.node.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { ProcessService } from '../../platform/common/process/proc.node'; 5 | export * from './helpers'; 6 | 7 | export async function uninstallIPyKernel(pythonExecPath: string) { 8 | // Uninstall ipykernel from the virtual env. 9 | const proc = new ProcessService(); 10 | await proc.exec(pythonExecPath, ['-m', 'pip', 'uninstall', 'ipykernel', '--yes']); 11 | } 12 | export async function installIPyKernel(pythonExecPath: string) { 13 | // Uninstall ipykernel from the virtual env. 14 | const proc = new ProcessService(); 15 | await proc.exec(pythonExecPath, ['-m', 'pip', 'install', 'ipykernel']); 16 | } 17 | -------------------------------------------------------------------------------- /src/test/datascience/interactiveDebugging.vscode.web.test.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { sharedIWDebuggerTests } from './interactiveDebugging.vscode.common'; 5 | 6 | /* eslint-disable @typescript-eslint/no-explicit-any, no-invalid-this */ 7 | suite('Interactive Window Debugging @debugger', sharedIWDebuggerTests); 8 | -------------------------------------------------------------------------------- /src/test/datascience/ipywidgets/samples/bqplot/extension.js: -------------------------------------------------------------------------------- 1 | define((()=>(()=>{"use strict";var e,n={};return e=n,Object.defineProperty(e,"__esModule",{value:!0}),e.load_ipython_extension=void 0,window.require&&window.require.config({map:{"*":{bqplot:"nbextensions/bqplot/index"}}}),e.load_ipython_extension=function(){},n})())); -------------------------------------------------------------------------------- /src/test/datascience/ipywidgets/samples/catboost/extension.js: -------------------------------------------------------------------------------- 1 | define((()=>{return e={474:e=>{window.require&&window.require.config({map:{"*":{"catboost-widget":"nbextensions/catboost-widget/index"}}}),e.exports={load_ipython_extension:function(){}}}},o={},function t(n){var r=o[n];if(void 0!==r)return r.exports;var i=o[n]={exports:{}};return e[n](i,i.exports,t),i.exports}(474);var e,o})); -------------------------------------------------------------------------------- /src/test/datascience/ipywidgets/samples/ipytree/extension.js: -------------------------------------------------------------------------------- 1 | define((()=>(()=>{var e={758:(e,r,t)=>{t.p=document.querySelector("body").getAttribute("data-base-url")+"nbextensions/ipytree",window.require&&window.require.config({map:{"*":{ipytree:"nbextensions/ipytree/index"}}}),e.exports={load_ipython_extension:function(){}}}},r={};function t(n){if(r[n])return r[n].exports;var i=r[n]={exports:{}};return e[n](i,i.exports,t),i.exports}return t.p="",t(758)})())); -------------------------------------------------------------------------------- /src/test/datascience/ipywidgets/samples/jupyter-leaflet/extension.js: -------------------------------------------------------------------------------- 1 | define((()=>{return e={474:e=>{window.require&&window.require.config({map:{"*":{"jupyter-leaflet":"nbextensions/jupyter-leaflet/index"}}}),e.exports={load_ipython_extension:function(){}}}},r={},function n(t){if(r[t])return r[t].exports;var o=r[t]={exports:{}};return e[t](o,o.exports,n),o.exports}(474);var e,r})); -------------------------------------------------------------------------------- /src/test/datascience/ipywidgets/samples/jupyter-matplotlib/extension.js: -------------------------------------------------------------------------------- 1 | // Entry point for the notebook bundle containing custom model definitions. 2 | // 3 | define(function() { 4 | "use strict"; 5 | 6 | window['requirejs'].config({ 7 | map: { 8 | '*': { 9 | 'jupyter-matplotlib': 'nbextensions/jupyter-matplotlib/index', 10 | }, 11 | } 12 | }); 13 | // Export the required load_ipython_extension function 14 | return { 15 | load_ipython_extension : function() {} 16 | }; 17 | }); 18 | -------------------------------------------------------------------------------- /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 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { Uri, WorkspaceFolder } from 'vscode'; 5 | 6 | export class MockWorkspaceFolder implements WorkspaceFolder { 7 | public uri: Uri; 8 | public name: string; 9 | public ownedResources = new Set(); 10 | 11 | constructor( 12 | folder: string, 13 | public index: number 14 | ) { 15 | this.uri = Uri.file(folder); 16 | this.name = folder; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /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/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/datascience/notebook/empty.py -------------------------------------------------------------------------------- /src/test/datascience/notebook/emptyPython.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/helper.node.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | /* eslint-disable @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports, no-invalid-this, @typescript-eslint/no-explicit-any */ 5 | 6 | export * from './helper'; 7 | export { createTemporaryFile, startJupyterServer, stopJupyterServer } from '../../common'; 8 | -------------------------------------------------------------------------------- /src/test/datascience/notebook/intellisense/names.csv: -------------------------------------------------------------------------------- 1 | Name,Sex,Age 2 | Foo,Male,1 3 | Bar,Female,2 4 | Baz,Male,3 5 | -------------------------------------------------------------------------------- /src/test/datascience/notebook/kernelFailures/overrideBuiltinModule/.gitignore: -------------------------------------------------------------------------------- 1 | *.ipynb 2 | -------------------------------------------------------------------------------- /src/test/datascience/notebook/kernelFailures/overrideBuiltinModule/random.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/datascience/notebook/kernelFailures/overrideBuiltinModule/random.py -------------------------------------------------------------------------------- /src/test/datascience/notebook/simpleDeno.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [] 9 | } 10 | ], 11 | "metadata": { 12 | "kernelspec": { 13 | "display_name": "Deno", 14 | "language": "typescript", 15 | "name": "deno" 16 | }, 17 | "language_info": { 18 | "file_extension": ".ts", 19 | "mimetype": "text/x.typescript", 20 | "name": "typescript", 21 | "nb_converter": "script", 22 | "pygments_lexer": "typescript", 23 | "version": "5.3.3" 24 | } 25 | }, 26 | "nbformat": 4, 27 | "nbformat_minor": 4 28 | } 29 | -------------------------------------------------------------------------------- /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/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/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 | #[SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="[Used for testing]")] 6 | c.NotebookApp.password = "sha1:74182e119a7b:e1b98bbba98f9ada3fd714eda9652437e80082e2" 7 | -------------------------------------------------------------------------------- /src/test/datascience/serverConfigFiles/remoteToken.py: -------------------------------------------------------------------------------- 1 | c.NotebookApp.open_browser = False -------------------------------------------------------------------------------- /src/test/datascience/test.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "a = 4" 10 | ] 11 | }, 12 | { 13 | "cell_type": "code", 14 | "execution_count": null, 15 | "metadata": {}, 16 | "outputs": [], 17 | "source": [ 18 | "print(a)" 19 | ] 20 | } 21 | ], 22 | "metadata": { 23 | "language_info": { 24 | "name": "python" 25 | }, 26 | "orig_nbformat": 4 27 | }, 28 | "nbformat": 4, 29 | "nbformat_minor": 2 30 | } 31 | -------------------------------------------------------------------------------- /src/test/datascience/testInterfaces.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | // Interfaces here to expose specific private functionality to test code 5 | export interface ITestWebviewHost { 6 | getHTMLById(id: string): Promise; 7 | // eslint-disable-next-line @typescript-eslint/no-explicit-any 8 | addMessageListener(callback: (message: string, payload: any) => void): void; 9 | // eslint-disable-next-line @typescript-eslint/no-explicit-any 10 | removeMessageListener(callback: (message: string, payload: any) => void): void; 11 | } 12 | -------------------------------------------------------------------------------- /src/test/datascience/variableView/variableViewTestInterfaces.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { IVariableViewProvider } from '../../../webviews/extension-side/variablesView/types'; 5 | import { VariableView } from '../../../webviews/extension-side/variablesView/variableView'; 6 | 7 | export interface ITestVariableViewProvider extends IVariableViewProvider { 8 | readonly activeVariableView: Promise; 9 | } 10 | -------------------------------------------------------------------------------- /src/test/datascience/widgets/constants.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | export const WidgetRenderingTimeoutForTests = 15_000; 5 | -------------------------------------------------------------------------------- /src/test/datascience/widgets/notebooks/interactive_function.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "from ipywidgets import widgets, interact\n", 10 | "def do_something(filter_text):\n", 11 | " print(f\"Executing do_something with '{filter_text}'\")\n", 12 | " return filter_text\n", 13 | " \n", 14 | " \n", 15 | "interact(do_something, filter_text=widgets.Text(value='Foo'))\n", 16 | "do_something('Hello World')" 17 | ] 18 | } 19 | ], 20 | "metadata": { 21 | "language_info": { 22 | "name": "python" 23 | }, 24 | "orig_nbformat": 4 25 | }, 26 | "nbformat": 4, 27 | "nbformat_minor": 2 28 | } 29 | -------------------------------------------------------------------------------- /src/test/mocks/vsc/telemetryReporter.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | /* eslint-disable */ 5 | export class vscMockTelemetryReporter { 6 | constructor() { 7 | // 8 | } 9 | 10 | public sendTelemetryEvent(): void { 11 | // 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/conda1/conda-meta/history: -------------------------------------------------------------------------------- 1 | Usually contains command that was used to create or update the conda environment with time stamps. 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/conda2/bin/python: -------------------------------------------------------------------------------- 1 | Not a real python binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/conda2/conda-meta/history: -------------------------------------------------------------------------------- 1 | Usually contains command that was used to create or update the conda environment with time stamps. 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/pipenv/globalEnvironments/project2-vnNIWe9P/.project: -------------------------------------------------------------------------------- 1 | Absolute path to \src\test\pythonEnvironments\common\envlayouts\pipenv\project2 -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/pipenv/globalEnvironments/project2-vnNIWe9P/bin/python: -------------------------------------------------------------------------------- 1 | Not a real python binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/pipenv/globalEnvironments/project3-2s1eXEJ2/.project: -------------------------------------------------------------------------------- 1 | Absolute path to \src\test\pythonEnvironments\common\envlayouts\pipenv\project3 -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/pipenv/project1/CustomPipfileName: -------------------------------------------------------------------------------- 1 | [[source]] 2 | name = "pypi" 3 | url = "https://pypi.org/simple" 4 | verify_ssl = true 5 | 6 | [dev-packages] 7 | 8 | [packages] 9 | 10 | [requires] 11 | python_version = "3.7" 12 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/pipenv/project2/Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | name = "pypi" 3 | url = "https://pypi.org/simple" 4 | verify_ssl = true 5 | 6 | [dev-packages] 7 | 8 | [packages] 9 | 10 | [requires] 11 | python_version = "3.7" 12 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/pipenv/project3/Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | name = "pypi" 3 | url = "https://pypi.org/simple" 4 | verify_ssl = true 5 | 6 | [dev-packages] 7 | 8 | [packages] 9 | 10 | [requires] 11 | python_version = "3.7" 12 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/pipenv/project3/parent/child/folder/dummyFile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/pipenv/project3/parent/child/folder/dummyFile -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/poetry/globalwinproject-9hvDnqYw-py3.11/Scripts/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/poetry/globalwinproject-9hvDnqYw-py3.11/Scripts/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/poetry/globalwinproject-9hvDnqYw-py3.11/pyvenv.cfg: -------------------------------------------------------------------------------- 1 | home = ~\appdata\local\programs\python\python36 2 | include-system-site-packages = false 3 | version = 3.6.1 4 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/poetry/poetry-tutorial-project-6hnqYwvD-py3.8/Scripts/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/poetry/poetry-tutorial-project-6hnqYwvD-py3.8/Scripts/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/poetry/poetry-tutorial-project-6hnqYwvD-py3.8/pyvenv.cfg: -------------------------------------------------------------------------------- 1 | home = ~\appdata\local\programs\python\python38 2 | implementation = CPython 3 | version_info = 3.9.0.alpha.1 4 | virtualenv = 20.1.0 5 | include-system-site-packages = false 6 | base-prefix = ~\appdata\local\programs\python\python38 7 | base-exec-prefix = ~\appdata\local\programs\python\python38 8 | base-executable = ~\appdata\local\programs\python\python38\python.exe 9 | prompt = (pythonEnv) 10 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/poetry/posix1project-9hvDnqYw-py3.4/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/poetry/posix1project-9hvDnqYw-py3.4/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/poetry/posix1project-9hvDnqYw-py3.4/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/poetry/posix1project-9hvDnqYw-py3.4/python -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/poetry/posix1project-9hvDnqYw-py3.4/pyvenv.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/poetry/posix1project-9hvDnqYw-py3.4/pyvenv.cfg -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/poetry/posix2project-6hnqYwvD-py3.7/bin/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/poetry/posix2project-6hnqYwvD-py3.7/bin/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/poetry/posix2project-6hnqYwvD-py3.7/bin/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/poetry/posix2project-6hnqYwvD-py3.7/bin/python -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/poetry/posix2project-6hnqYwvD-py3.7/pyvenv.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/poetry/posix2project-6hnqYwvD-py3.7/pyvenv.cfg -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/poetry/project1-haha-py3.8/Scripts/python.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/poetry/project1-haha-py3.8/Scripts/python.exe -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/poetry/project1/pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "poetry-tutorial-project" 3 | version = "0.1.0" 4 | description = "" 5 | authors = ["PVSC "] 6 | 7 | [tool.poetry.dependencies] 8 | python = "^3.5" 9 | 10 | [tool.poetry.dev-dependencies] 11 | 12 | [build-system] 13 | requires = ["poetry-core>=1.0.0"] 14 | build-backend = "poetry.core.masonry.api" 15 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/poetry/project2/pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "poetry-tutorial-project" 3 | version = "0.1.0" 4 | description = "" 5 | authors = ["PVSC "] 6 | 7 | [tool.poetry.dependencies] 8 | python = "^3.5" 9 | 10 | [tool.poetry.dev-dependencies] 11 | 12 | [build-system] 13 | requires = ["poetry-core>=1.0.0"] 14 | build-backend = "poetry.core.masonry.api" 15 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/poetry/project3/pyproject.toml: -------------------------------------------------------------------------------- 1 | # This pyproject.toml has not been setup for poetry 2 | 3 | [tool.pipenv.dependencies] 4 | python = "^3.5" 5 | 6 | [tool.pipenv.dev-dependencies] 7 | 8 | [build-system] 9 | requires = ["poetry-core>=1.0.0"] 10 | build-backend = "poetry.core.masonry.api" 11 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/poetry/project4/pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetrzzzzy] 2 | name = "poetry-tutorial-project" 3 | version = "0.1.0" 4 | description = "" 5 | 6 | [tool.poetry.dependencies] 7 | python = "^3.5" 8 | 9 | [tool.poetry.dev-dependencies] 10 | 11 | [build-system] 12 | requires = ["poetry-core>=1.0.0"] 13 | build-backend = "poetry.core.masonry.api" 14 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/poetry/wannabeglobalenv/Scripts/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/poetry/wannabeglobalenv/Scripts/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/posixroot/location1/python: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/posixroot/location1/python3: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/posixroot/location2/python: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/posixroot/location2/python37: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/posixroot/location2/python38: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/posixroot/location3/python3.7: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/posixroot/location3/python3.8: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/posixroot/location3/python3.9/empty: -------------------------------------------------------------------------------- 1 | this is intentionally empty 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/pyenv1/.pyenv/versions/3.6.9/bin/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/pyenv1/.pyenv/versions/3.6.9/bin/python -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/pyenv3/versions/3.6.9/bin/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/pyenv3/versions/3.6.9/bin/python -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/pyenvhome/.pyenv/versions/3.9.0/bin/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/pyenvhome/.pyenv/versions/3.9.0/bin/python -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/pyenvhome/.pyenv/versions/conda1/bin/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/pyenvhome/.pyenv/versions/conda1/bin/python -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/pyenvhome/.pyenv/versions/conda1/bin/python3.8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/pyenvhome/.pyenv/versions/conda1/bin/python3.8 -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/pyenvhome/.pyenv/versions/miniconda3-4.7.12/bin/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/pyenvhome/.pyenv/versions/miniconda3-4.7.12/bin/python -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/pyenvhome/.pyenv/versions/miniconda3-4.7.12/bin/python3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/pyenvhome/.pyenv/versions/miniconda3-4.7.12/bin/python3 -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/pyenvhome/.pyenv/versions/miniconda3-4.7.12/bin/python3.7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/pyenvhome/.pyenv/versions/miniconda3-4.7.12/bin/python3.7 -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/pyenvhome/.pyenv/versions/venv1/bin/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/pyenvhome/.pyenv/versions/venv1/bin/python -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/pyenvhome/.pyenv/versions/venv1/pyvenv.cfg: -------------------------------------------------------------------------------- 1 | home = ~/.pyenv/versions/3.9.0/bin 2 | include-system-site-packages = false 3 | version = 3.9.0 4 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/venv1/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/venv1/python -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/venv1/pyvenv.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/venv1/pyvenv.cfg -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/venv2/bin/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/venv2/bin/python -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/venv2/pyvenv.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/venv2/pyvenv.cfg -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualenv1/bin/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualenv1/bin/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualenv2/bin/activate.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualenv2/bin/activate.sh -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualenv3/bin/activate.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualenv3/bin/activate.ps1 -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualenvwrapper1/.virtualenvs/myenv/bin/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualenvwrapper1/.virtualenvs/myenv/bin/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualenvwrapper1/.virtualenvs/myenv/bin/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualenvwrapper1/.virtualenvs/myenv/bin/python -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualenvwrapper1/Envs/myenv/Scripts/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualenvwrapper1/Envs/myenv/Scripts/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualenvwrapper2/myenv/bin/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualenvwrapper2/myenv/bin/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualenvwrapper2/myenv/bin/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualenvwrapper2/myenv/bin/python -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/.local/share/virtualenvs/project2-vnNIWe9P/.project: -------------------------------------------------------------------------------- 1 | Absolute path to \src\test\pythonEnvironments\common\envlayouts\pipenv\project2 -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/.local/share/virtualenvs/project2-vnNIWe9P/bin/python: -------------------------------------------------------------------------------- 1 | Not a real python binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/.local/share/virtualenvs/project2-vnNIWe9P/pyvenv.cfg: -------------------------------------------------------------------------------- 1 | home = ~\appdata\local\programs\python\python38 2 | implementation = CPython 3 | version_info = 3.8.2.final.0 4 | virtualenv = 20.1.0 5 | include-system-site-packages = false 6 | base-prefix = ~\appdata\local\programs\python\python38 7 | base-exec-prefix = ~\appdata\local\programs\python\python38 8 | base-executable = ~\appdata\local\programs\python\python38\python.exe 9 | prompt = (folder1) 10 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/.virtualenvs/posix1/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualhome/.virtualenvs/posix1/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/.virtualenvs/posix1/python: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/.virtualenvs/posix1/python3: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/.virtualenvs/posix1/python3.8: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/.virtualenvs/posix2/bin/activate.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualhome/.virtualenvs/posix2/bin/activate.sh -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/.virtualenvs/posix2/bin/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualhome/.virtualenvs/posix2/bin/python -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/.virtualenvs/win1/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualhome/.virtualenvs/win1/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/.virtualenvs/win2/bin/activate.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualhome/.virtualenvs/win2/bin/activate.ps1 -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/Envs/wrapper_win1/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualhome/Envs/wrapper_win1/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/Envs/wrapper_win2/bin/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualhome/Envs/wrapper_win2/bin/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/customfolder/posix1/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualhome/customfolder/posix1/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/customfolder/posix1/python: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/customfolder/posix1/python3: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/customfolder/posix1/python3.5: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/customfolder/posix2/bin/activate.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualhome/customfolder/posix2/bin/activate.sh -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/customfolder/posix2/bin/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualhome/customfolder/posix2/bin/python -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/customfolder/win1/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualhome/customfolder/win1/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/customfolder/win2/bin/activate.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualhome/customfolder/win2/bin/activate.ps1 -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/workonhome/posix1/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualhome/workonhome/posix1/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/workonhome/posix1/python: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/workonhome/posix1/python3: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/workonhome/posix1/python3.5: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/workonhome/posix2/bin/activate.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualhome/workonhome/posix2/bin/activate.sh -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/workonhome/posix2/bin/python: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualhome/workonhome/posix2/bin/python -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/workonhome/win1/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualhome/workonhome/win1/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/virtualhome/workonhome/win2/bin/activate.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/virtualhome/workonhome/win2/bin/activate.ps1 -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/workspace/folder1/.direnv/posix1virtualenv/bin/activate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/pythonEnvironments/common/envlayouts/workspace/folder1/.direnv/posix1virtualenv/bin/activate -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/workspace/folder1/.direnv/posix1virtualenv/bin/python: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/workspace/folder1/.direnv/posix1virtualenv/bin/python3: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/workspace/folder1/.direnv/posix1virtualenv/bin/python3.8: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/workspace/folder1/.direnv/win2/pyvenv.cfg: -------------------------------------------------------------------------------- 1 | home = ~\appdata\local\programs\python\python36 2 | include-system-site-packages = false 3 | version = 3.6.1 4 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/workspace/folder1/Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | name = "pypi" 3 | url = "https://pypi.org/simple" 4 | verify_ssl = true 5 | 6 | [dev-packages] 7 | 8 | [packages] 9 | 10 | [requires] 11 | python_version = "3.7" 12 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/workspace/folder1/posix2conda/python: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/workspace/folder1/posix3custom/bin/python: -------------------------------------------------------------------------------- 1 | Not a real binary 2 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/envlayouts/workspace/folder1/win1/pyvenv.cfg: -------------------------------------------------------------------------------- 1 | home = ~\appdata\local\programs\python\python38 2 | implementation = CPython 3 | version_info = 3.9.0.alpha.1 4 | virtualenv = 20.1.0 5 | include-system-site-packages = false 6 | base-prefix = ~\appdata\local\programs\python\python38 7 | base-exec-prefix = ~\appdata\local\programs\python\python38 8 | base-executable = ~\appdata\local\programs\python\python38\python.exe 9 | prompt = (pythonEnv) 10 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/testdata/versiondata/venv/case1: -------------------------------------------------------------------------------- 1 | home = /home/kanadig/.pyenv/versions/3.9.0/bin 2 | include-system-site-packages = false 3 | version = 3.9.0 4 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/testdata/versiondata/venv/case2: -------------------------------------------------------------------------------- 1 | home = ~\appdata\local\programs\python\python38 2 | implementation = CPython 3 | version_info = 3.8.2.final.0 4 | virtualenv = 20.1.0 5 | include-system-site-packages = false 6 | base-prefix = ~\appdata\local\programs\python\python38 7 | base-exec-prefix = ~\appdata\local\programs\python\python38 8 | base-executable = ~\appdata\local\programs\python\python38\python.exe 9 | prompt = (pythonEnv) 10 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/testdata/versiondata/venv/case3: -------------------------------------------------------------------------------- 1 | home = /home/kanadig/.pyenv/versions/3.9.0/bin 2 | include-system-site-packages = false 3 | version = 3.9.0rc1 4 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/common/testdata/versiondata/venv/case4: -------------------------------------------------------------------------------- 1 | home = ~\appdata\local\programs\python\python38 2 | implementation = CPython 3 | version_info = 3.9.0.alpha.1 4 | virtualenv = 20.1.0 5 | include-system-site-packages = false 6 | base-prefix = ~\appdata\local\programs\python\python38 7 | base-exec-prefix = ~\appdata\local\programs\python\python38 8 | base-executable = ~\appdata\local\programs\python\python38\python.exe 9 | prompt = (pythonEnv) 10 | -------------------------------------------------------------------------------- /src/test/pythonEnvironments/constants.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | /* eslint-disable local-rules/dont-use-filename */ 5 | 6 | import * as path from '../../platform/vscode-path/path'; 7 | 8 | export const TEST_LAYOUT_ROOT = path.join(__dirname, '..', '..', '..', 'src', 'test', 'pythonEnvironments', 'common', 'envlayouts'); 9 | 10 | export const TEST_DATA_ROOT = path.join(__dirname, '..', '..', '..', 'src', 'test', 'pythonEnvironments', 'common', 'testdata'); 11 | -------------------------------------------------------------------------------- /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/testMultiRootWkspc/multi.code-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | { 4 | "path": "workspace4" 5 | }, 6 | { 7 | "path": "workspace5" 8 | }, 9 | { 10 | "path": "smokeTests" 11 | }, 12 | { 13 | "path": "parent\\child" 14 | }, 15 | { 16 | "path": "disableLinters" 17 | }, 18 | { 19 | "path": "../test" 20 | } 21 | ], 22 | "settings": { 23 | "python.workspaceSymbols.enabled": false, 24 | "python.pythonPath": "python", 25 | "python.defaultInterpreterPath": "python" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/test/testMultiRootWkspc/smokeTests/.gitignore: -------------------------------------------------------------------------------- 1 | .vscode/** 2 | *.log 3 | -------------------------------------------------------------------------------- /src/test/testMultiRootWkspc/smokeTests/definitions.py: -------------------------------------------------------------------------------- 1 | from contextlib import contextmanager 2 | 3 | def my_decorator(fn): 4 | """ 5 | This is my decorator. 6 | """ 7 | def wrapper(*args, **kwargs): 8 | """ 9 | This is the wrapper. 10 | """ 11 | return 42 12 | return wrapper 13 | 14 | @my_decorator 15 | def thing(arg): 16 | """ 17 | Thing which is decorated. 18 | """ 19 | pass 20 | 21 | @contextmanager 22 | def my_context_manager(): 23 | """ 24 | This is my context manager. 25 | """ 26 | print("before") 27 | yield 28 | print("after") 29 | 30 | with my_context_manager(): 31 | thing(19) 32 | -------------------------------------------------------------------------------- /src/test/testMultiRootWkspc/smokeTests/sample.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "print(\"Hello World\")" 10 | ] 11 | } 12 | ], 13 | "metadata": { 14 | "language_info": { 15 | "name": "python" 16 | } 17 | }, 18 | "nbformat": 4, 19 | "nbformat_minor": 2 20 | } 21 | -------------------------------------------------------------------------------- /src/test/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/test/testMultiRootWkspc/workspace4/.env: -------------------------------------------------------------------------------- 1 | X1234PYEXTUNITTESTVAR=1234 2 | PYTHONPATH=../workspace5 3 | -------------------------------------------------------------------------------- /src/test/testMultiRootWkspc/workspace4/.env2: -------------------------------------------------------------------------------- 1 | X12345PYEXTUNITTESTVAR=12345 2 | -------------------------------------------------------------------------------- /src/test/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/test/testMultiRootWkspc/workspace4/.env6: -------------------------------------------------------------------------------- 1 | REPO=/home/user/git/foobar 2 | PYTHONPATH=${REPO}/foo:${REPO}/bar 3 | PYTHON=${BINDIR}/python3 4 | -------------------------------------------------------------------------------- /src/test/testMultiRootWkspc/workspace4/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/test/testMultiRootWkspc/workspace4/one.py: -------------------------------------------------------------------------------- 1 | from hello import world 2 | print(world.sayHello()) 3 | -------------------------------------------------------------------------------- /src/test/testMultiRootWkspc/workspace5/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/test/testMultiRootWkspc/workspace5/djangoApp/home/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/testMultiRootWkspc/workspace5/djangoApp/home/__init__.py -------------------------------------------------------------------------------- /src/test/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/test/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/test/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/test/testMultiRootWkspc/workspace5/djangoApp/mysite/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/testMultiRootWkspc/workspace5/djangoApp/mysite/__init__.py -------------------------------------------------------------------------------- /src/test/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/test/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/test/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/test/testMultiRootWkspc/workspace5/hello/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/testMultiRootWkspc/workspace5/hello/__init__.py -------------------------------------------------------------------------------- /src/test/testMultiRootWkspc/workspace5/hello/world.py: -------------------------------------------------------------------------------- 1 | def sayHello(): 2 | return "Hello" 3 | -------------------------------------------------------------------------------- /src/test/testMultiRootWkspc/workspace5/mymod/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/test/testMultiRootWkspc/workspace5/mymod/__init__.py -------------------------------------------------------------------------------- /src/test/testMultiRootWkspc/workspace5/mymod/__main__.py: -------------------------------------------------------------------------------- 1 | print("Hello world!") 2 | -------------------------------------------------------------------------------- /src/test/testMultiRootWkspc/workspace5/remoteDebugger-start-with-nowait.py: -------------------------------------------------------------------------------- 1 | print('hello world') 2 | -------------------------------------------------------------------------------- /src/test/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/test/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 | -------------------------------------------------------------------------------- /src/test/utils/enum.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | /* eslint-disable @typescript-eslint/no-explicit-any */ 5 | 6 | export function getNamesAndValues(e: any): { name: string; value: T }[] { 7 | return getNames(e).map((n) => ({ name: n, value: e[n] })); 8 | } 9 | 10 | export function getNames(e: any) { 11 | return Object.keys(e).filter((v) => typeof v === 'string') as string[]; 12 | } 13 | -------------------------------------------------------------------------------- /src/test/vscode-notebook-perf/.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 | -------------------------------------------------------------------------------- /src/test/vscode-notebook-perf/.gitattributes: -------------------------------------------------------------------------------- 1 | package.json text eol=lf 2 | package-lock.json text eol=lf 3 | -------------------------------------------------------------------------------- /src/test/vscode-notebook-perf/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .huskyrc.json 3 | out 4 | **/node_modules 5 | *.pyc 6 | *.vsix 7 | .vscode-test 8 | __pycache__ 9 | **/.vscode-test/** 10 | **/.vscode test/** 11 | **/.vscode-smoke/** 12 | **/.venv*/ 13 | bin/** 14 | logs/** 15 | obj/** 16 | temp 17 | tmp 18 | -------------------------------------------------------------------------------- /src/test/vscode-notebook-perf/.nvmrc: -------------------------------------------------------------------------------- 1 | v20.17.0 2 | -------------------------------------------------------------------------------- /src/test/vscode-notebook-perf/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | singleQuote: true, 3 | printWidth: 120, 4 | tabWidth: 4, 5 | endOfLine: 'auto', 6 | trailingComma: 'all', 7 | overrides: [ 8 | { 9 | files: ['*.yml', '*.yaml'], 10 | options: { 11 | tabWidth: 2, 12 | }, 13 | }, 14 | ], 15 | }; 16 | -------------------------------------------------------------------------------- /src/test/vscode-notebook-perf/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": ["dbaeumer.vscode-eslint", "amodio.tsl-problem-matcher", "ms-vscode.extension-test-runner"] 5 | } 6 | -------------------------------------------------------------------------------- /src/test/vscode-notebook-perf/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | // See https://go.microsoft.com/fwlink/?LinkId=733558 2 | // for the documentation about the tasks.json format 3 | { 4 | "version": "2.0.0", 5 | "tasks": [ 6 | { 7 | "type": "npm", 8 | "script": "watch", 9 | "problemMatcher": "$tsc-watch", 10 | "isBackground": true, 11 | "presentation": { 12 | "reveal": "never", 13 | "group": "watchers" 14 | }, 15 | "group": { 16 | "kind": "build", 17 | "isDefault": true 18 | } 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /src/test/vscode-notebook-perf/src/api.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | export type Metrics = { 5 | preExecuteDuration: number; 6 | executeDuration: number; 7 | postExecuteDuration: number; 8 | duration: number; 9 | }; 10 | export type API = { 11 | executeNotebook(outputType: 'text' | 'html' | 'image'): Promise; 12 | }; 13 | -------------------------------------------------------------------------------- /src/test/web/index.web.test.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { initializeCommonWebApi } from '../common.web'; 5 | 6 | initializeCommonWebApi(); 7 | -------------------------------------------------------------------------------- /src/tsconfig.extension.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.base.json", 3 | "compilerOptions": { 4 | "baseUrl": "..", 5 | "rootDir": ".", 6 | "outDir": "out", 7 | "module": "es2020", 8 | "moduleResolution": "node", 9 | 10 | // Types 11 | "lib": ["es6", "es2018", "ES2019", "ES2020", "ES2021", "ES2022"], 12 | "types": [] 13 | }, 14 | "include": [ 15 | "./**/*", 16 | 17 | // Include all types outside the type roots manually 18 | "../vscode.*" 19 | ], 20 | "exclude": ["src/test", "webviews/webview-side", "**/*.web.ts"] 21 | } 22 | -------------------------------------------------------------------------------- /src/tsconfig.extension.web.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.base.json", 3 | "compilerOptions": { 4 | "baseUrl": "..", 5 | "rootDir": ".", 6 | "outDir": "out", 7 | 8 | // Types 9 | "lib": ["es6", "es2018", "dom", "ES2019", "ES2020", "ES2021", "ES2022"], 10 | "paths": { 11 | "*": ["types/*"] 12 | }, 13 | "typeRoots": ["./node_modules/@types"], 14 | "types": [] 15 | }, 16 | "include": [ 17 | "./**/*", 18 | 19 | // Include all types outside the type roots manually 20 | "../types/slickgrid", 21 | "../vscode.*" 22 | ], 23 | "exclude": ["src/test", "*.node.ts", "**/*.node.ts"] 24 | } 25 | -------------------------------------------------------------------------------- /src/webviews/extension-side/dataviewer/constants.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | export const pandasMinimumVersionSupportedByVariableViewer = '0.20.0'; 5 | -------------------------------------------------------------------------------- /src/webviews/extension-side/plotView/types.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import { NotebookDocument } from 'vscode'; 5 | 6 | export const IPlotSaveHandler = Symbol('IPlotSaveHandler'); 7 | 8 | export interface IPlotSaveHandler { 9 | savePlot(notebook: NotebookDocument, outputId: string, mimeType: string): Promise; 10 | } 11 | -------------------------------------------------------------------------------- /src/webviews/webview-side/common/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | } 5 | -------------------------------------------------------------------------------- /src/webviews/webview-side/data-explorer/cellFormatter.css: -------------------------------------------------------------------------------- 1 | .number-formatter { 2 | text-align: left; 3 | text-overflow: ellipsis; 4 | overflow: hidden; 5 | } 6 | 7 | .cell-formatter { 8 | /* Note: This is impacted by the RowHeightAdjustment in reactSlickGrid.tsx */ 9 | margin: 0px 0px 0px 0px; 10 | text-align: left; 11 | text-overflow: ellipsis; 12 | overflow: hidden; 13 | } 14 | 15 | .index-column-formatter { 16 | text-align: right; 17 | } -------------------------------------------------------------------------------- /src/webviews/webview-side/data-explorer/emptyRowsView.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/webviews/webview-side/data-explorer/emptyRowsView.css -------------------------------------------------------------------------------- /src/webviews/webview-side/data-explorer/emptyRowsView.tsx: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 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('noRowsInDataViewer', 'No rows match current filter'); 13 | 14 | return
{message}
; 15 | }; 16 | -------------------------------------------------------------------------------- /src/webviews/webview-side/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/webviews/webview-side/interactive-common/images.d.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | /* eslint-disable */ 5 | declare module '*.svg'; 6 | declare module '*.png'; 7 | declare module '*.jpg'; 8 | -------------------------------------------------------------------------------- /src/webviews/webview-side/interactive-common/variableExplorer.css: -------------------------------------------------------------------------------- 1 | .variable-explorer { 2 | margin: 5px; 3 | background: var(--vscode-editor-background); 4 | color: var(--vscode-editor-foreground); 5 | overflow: hidden; 6 | } 7 | 8 | #variable-explorer-data-grid { 9 | margin: 4px; 10 | } 11 | 12 | .span-debug-message { 13 | margin: 4px; 14 | } 15 | 16 | #variable-divider { 17 | width: 100%; 18 | border-top-color: var(--vscode-badge-background); 19 | border-top-style: solid; 20 | border-top-width: 2px; 21 | cursor: ns-resize; 22 | z-index: 999; 23 | position: fixed; 24 | } 25 | -------------------------------------------------------------------------------- /src/webviews/webview-side/interactive-common/variableExplorerButtonCellFormatter.css: -------------------------------------------------------------------------------- 1 | .variable-explorer-button-cell { 2 | height: 18px; 3 | width: 18px; 4 | color: var(--vscode-menu-foreground); 5 | } 6 | -------------------------------------------------------------------------------- /src/webviews/webview-side/interactive-common/variableExplorerEmptyRows.css: -------------------------------------------------------------------------------- 1 | #variable-explorer-empty-rows { 2 | margin: 5px; 3 | font-family: var(--vscode-font-family); 4 | } -------------------------------------------------------------------------------- /src/webviews/webview-side/interactive-common/variableExplorerEmptyRows.tsx: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 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('noRowsInVariableExplorer', 'No variables defined'); 11 | 12 | return
{message}
; 13 | }; 14 | -------------------------------------------------------------------------------- /src/webviews/webview-side/interactive-common/variableExplorerLoadingRows.tsx: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import './variableExplorerEmptyRows.css'; // Use same CSS as variableExplorerEmptyRows.tsx 5 | 6 | import * as React from 'react'; 7 | import { getLocString } from '../react-common/locReactSide'; 8 | 9 | export const VariableExplorerLoadingRowsView = () => { 10 | const message = getLocString('loadingRowsInVariableExplorer', 'Loading variables'); 11 | 12 | return
{message}
; 13 | }; 14 | -------------------------------------------------------------------------------- /src/webviews/webview-side/interactive-common/variableExplorerRowRenderer.tsx: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import * as React from 'react'; 5 | 6 | /* eslint-disable @typescript-eslint/no-explicit-any */ 7 | interface IVariableExplorerRowProps { 8 | renderBaseRow(props: any): JSX.Element; 9 | } 10 | 11 | export const VariableExplorerRowRenderer: React.SFC = (props) => { 12 | return
{props.renderBaseRow(props)}
; 13 | }; 14 | -------------------------------------------------------------------------------- /src/webviews/webview-side/ipywidgets/renderer/styles.css: -------------------------------------------------------------------------------- 1 | .cell-output-ipywidget-background { 2 | background: white !important; 3 | } 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/plot/mainPanel.css: -------------------------------------------------------------------------------- 1 | .main-panel { 2 | position: absolute; 3 | bottom: 0; 4 | top: 0; 5 | left: 0; 6 | right: 0; 7 | background-color: var(--vscode-editor-background); 8 | overflow: hidden; 9 | } 10 | -------------------------------------------------------------------------------- /src/webviews/webview-side/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/webviews/webview-side/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/webviews/webview-side/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/webviews/webview-side/react-common/codicon/codicon.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 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/webviews/webview-side/react-common/codicon/codicon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/webviews/webview-side/react-common/codicon/codicon.ttf -------------------------------------------------------------------------------- /src/webviews/webview-side/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/webviews/webview-side/react-common/images/Cancel/Cancel_16xMD_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Cancel/Cancel_16xMD_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/ClearAllOutput/clear_all_output_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/ClearAllOutput/clear_all_output_light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/CollapseAll/CollapseAll_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/CollapseAll/CollapseAll_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Copy/copy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Copy/copy_inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Delete/delete_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Delete/delete_light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/ExpandAll/ExpandAll_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/ExpandAll/ExpandAll_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/InsertAbove/above-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/InsertAbove/above.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/InsertBelow/below-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/InsertBelow/below.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Interrupt/Interrupt_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Interrupt/Interrupt_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Next/next-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Next/next.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/OpenInNewWindow/OpenInNewWindow_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/OpenInNewWindow/OpenInNewWindow_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/OpenPlot/plot_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/OpenPlot/plot_light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Pan/pan.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Pan/pan_inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/PopIn/PopIn_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | PopIn_16x -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/PopIn/PopIn_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | PopIn_16x -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/PopOut/PopOut_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | PopOut_16x -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/PopOut/PopOut_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | PopOut_16x -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Prev/previous-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Prev/previous.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Redo/Redo_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Redo/Redo_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Restart/Restart_grey_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Restart/Restart_grey_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Run/run-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Run/run-light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/RunAbove/runabove-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/RunAbove/runabove.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/RunAll/run_all_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/RunAll/run_all_light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/RunBelow/runbelow-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/RunBelow/runbelow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/webviews/webview-side/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/webviews/webview-side/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/webviews/webview-side/react-common/images/SaveAs/SaveAs_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/SaveAs/SaveAs_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/StartPage/Interactive-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/StartPage/Interactive.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/StartPage/Notebook-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/StartPage/Notebook.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/StartPage/OpenFolder-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/StartPage/OpenFolder.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Sync/sync-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Sync/sync.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Undo/Undo_16x_vscode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Undo/Undo_16x_vscode_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Up/up-inverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/images/Up/up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/logger.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | let messageLogger: undefined | ((category: 'error' | 'verbose', message: string) => void); 5 | export function logMessage(message: string) { 6 | if (messageLogger) { 7 | messageLogger('verbose', message); 8 | } 9 | } 10 | export function logErrorMessage(message: string) { 11 | if (messageLogger) { 12 | messageLogger('error', message); 13 | } 14 | } 15 | 16 | export function setLogger(logger: (category: 'error' | 'verbose', message: string) => void) { 17 | messageLogger = logger; 18 | } 19 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/progress.tsx: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | import './progress.css'; 5 | 6 | import * as React from 'react'; 7 | 8 | export class Progress extends React.Component { 9 | public override render() { 10 | // Vscode does this with two parts, a progress container and a progress bit 11 | return ( 12 |
13 |
14 |
15 | ); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/seti/seti.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/webviews/webview-side/react-common/seti/seti.ttf -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/svgViewer.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-jupyter/e34b4acce3bd4b309d81808c680f59b62b669590/src/webviews/webview-side/react-common/svgViewer.css -------------------------------------------------------------------------------- /src/webviews/webview-side/react-common/textMeasure.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | let canvas: HTMLCanvasElement | undefined; 5 | 6 | function getCanvas(): HTMLCanvasElement { 7 | if (!canvas) { 8 | canvas = document.createElement('canvas'); 9 | } 10 | return canvas; 11 | } 12 | 13 | export function measureText(text: string, font: string | null): number { 14 | const context = getCanvas().getContext('2d'); 15 | if (context) { 16 | if (font) { 17 | context.font = font; 18 | } 19 | const metrics = context.measureText(text); 20 | return metrics.width; 21 | } 22 | return 0; 23 | } 24 | -------------------------------------------------------------------------------- /src/webviews/webview-side/variable-view/variableViewPanel.css: -------------------------------------------------------------------------------- 1 | /* For the variable view panel, we just want to dock it cleanly in the view with no overflowing */ 2 | body, 3 | html { 4 | height: 100%; 5 | margin: 0; 6 | padding: 0; 7 | overflow: hidden; 8 | } 9 | 10 | #root { 11 | height: 100%; 12 | overflow: hidden; 13 | margin: 0; 14 | padding: 0; 15 | } 16 | 17 | #variable-view-main-panel { 18 | height: 100%; 19 | margin: 0; 20 | } 21 | 22 | .variable-explorer-menu-bar { 23 | visibility: hidden; 24 | height: 0; 25 | } 26 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /types/index.d.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | -------------------------------------------------------------------------------- /types/slickgrid/plugins/slick.columnpicker.d.ts: -------------------------------------------------------------------------------- 1 | // Type definitions for SlickGrid ColumnPicker Control 2.1.0 2 | // Project: https://github.com/mleibman/SlickGrid 3 | // Definitions by: berwyn 4 | // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped 5 | 6 | declare namespace Slick { 7 | export namespace Controls { 8 | export interface SlickColumnPickerOptions { 9 | fadeSpeed?: number; 10 | } 11 | 12 | export class ColumnPicker { 13 | constructor(columns: Slick.Column[], grid: Slick.Grid, options: SlickColumnPickerOptions); 14 | getAllColumns(): Slick.Column[]; 15 | destroy(): void; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /types/slickgrid/plugins/slick.rowselectionmodel.d.ts: -------------------------------------------------------------------------------- 1 | // Type definitions for SlickGrid RowSelectionModel Plugin 2.1.0 2 | // Project: https://github.com/mleibman/SlickGrid 3 | // Definitions by: Derek Cicerone 4 | // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped 5 | 6 | 7 | 8 | declare namespace Slick { 9 | class RowSelectionModel extends SelectionModel { 10 | constructor(options?:{selectActiveRow:boolean;}); 11 | 12 | getSelectedRows():number[]; 13 | 14 | setSelectedRows(rows:number[]):void; 15 | 16 | getSelectedRanges():number[]; 17 | 18 | setSelectedRanges(ranges:number[]):void; 19 | } 20 | } 21 | --------------------------------------------------------------------------------