Notebook:
Config - creates it in USER as needed unless otherwise configured
NbExtensions - installs in system unless given --user or --sys-prefix
ServerExtensions - installs in user unless given --sys-prefix
Config and data default to user then sys-prefix, then system
Pip:
- User will overshadow system as needed
- User will use system if needed
Precedence is sys-prefix, then user, then system in a venv with system and user then system when not in a venv
The point is that it can detect this fact
Conda:
- Is always only sys-prefix
Okay, I'm back to: prefer sys-prefix for writability, unless configured otherwise.
Uninstall removes it from sys-prefix if it is installed there, or app-dir if it is installed there.
For conda and venv users, everything just works. For sys-level users, they set the environment flag. For advanced users, they get a coherent behavior.
The only bad behavior is that we can't write config on a system install unless configured to do so, but this can be handled by sys admins or advanced users.
jupyter lab
-> looks for config and launches.
If the user makes a settings change, try to generate config and bail if
it does not work.