Hook for switching projects

Is there a hook that gets called when switching projects in desktop?
I need to be able to change environment variables and sys.path before anything else runs.

We have per project python libraries that are managed outside of shotgun. I need the correct project code pathed before my custom engine setup code runs.

When do these core hooks trigger?
It looks like one of them should be where I want mess with sys.path and sys.modules.

bootstrap.py
bundle_init.py
engine_init.py (does this trigger before the desktop engine for the project starts?)
pipeline_configureation_init.py
tank_init.py

The very first core hook that gets triggered is the tank_init, what you are trying to do should work in there since it gets called before sg desktop reads the yaml configs…

(From my personal testing)

For anyone else stumbling upon this the context_change.py hook might also be useful.

Full list of hooks can be found here: tk-core/hooks at master · shotgunsoftware/tk-core · GitHub