Closed
Description
This issue tracks the progress towards a more universal installer. To close this issue, we should end satisfying the following considerations:
- Have the Data Frame working on the web (therefore having DataFrame working in web extension #9665 fixed).
- To have a new service,
DebuggerEvaluator
, with anevaluate
function that would allow the execution of code on the debugger.- This debugger evaluator should replace all (or at least most) of the current usages of the
DebugLocationTrackerFactory
.
- This debugger evaluator should replace all (or at least most) of the current usages of the
- To have an
IInstaller
that supports installing dependencies given anIKernel
and aDebuggerSession
.- The installer should show the appropriate message to the user regarding whether the kernel or the debugger may need to be restarted.
To achieve the above, I will focus on making the following PRs in order.
- (Urgent) Enable the Data Frame on the web (Fixing DataFrame working in web extension #9665)
- By changing the
IDataViewerDependencyService
to receive anIKernel
besides thePythonEnvironment
that it receives today. - By adding a universal version of the
dataViewerDependencyService
that would only work ifIKernel
is provided and throw otherwise an error sayingInstallation of "pandas" not supported while debugging. Please ensure you have "pandas" installed.
- By keeping the current node-specific version of the
dataViewerDependencyService
that would extract the interpreter from theIKernel
if theIKernel
is provided. - Besides ensuring the
dataViewerDependencyService
is registered on the web service registry, and removing the conditional that disables the Data Frame on the web.
- By changing the
- Create a DebugEvaluator service #10639
- This service would allow any other piece of code to run Python on the debugger.
- This service will copy how the current
DebugLocationTrackerFactory
retrieves the frame ID. - This service will replace all the current usages of the
DebugLocationTrackerFactory
in the same PR.
- dataViewerDependencyService to derive the interpreter from the DebugEvaluator #10640
- Replace the usage of the
PythonEnvironment
(the interpreter) from the parameters of thedataViewerDependencyService
methods and use theDebugEvaluator
instead. - Evaluate code to get the interpreter path then use the old interpreter code.
- Replace the usage of the
- Install Data Viewer dependencies using the DebuggerEvaluator #10641
- Enable installing
pandas
on the Debugger version of thedataViewerDependencyService
by using the code underneath%pip
and%conda
in iPython. - Completely remove the usage of the interpreter from the
dataViewerDependencyService
. - If
pandas
needs to be installed (either because it's not yet installed or because the version is inadequate), show a prompt message saying thatYou may need to restart the debugger
after the installation is complete.
- Enable installing
- IInstaller to support IKernel and DebuggerEvaluator #10642
- Move the code from
dataViewerDependencyService
into theIInstaller
to provide a universal installer experience that could be used to install any package with either a Kernel or the active debugger.
- Move the code from
Feedback always appreciated!