refactor import visit strategy, use separate visit_launcher module (try 2) #20494
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
New branch and PR that supersedes: #20487
Resolves #18039 and #18884
Since Python3 we have had challenges with importing visit into a stand alone python interpreter due to module scoping and name spacing. In the past we provided an all in one module with a small front end that located a selected visit install, and then from there did a dynamic import. The delayed import caused issues with things like visit_utils, where were imported before visit was fully ready.
To resolve this, and avoid things like
The frontend logic is now in a separate module named
visit_launcher
We will lose some functionally -
visit_launcher.Launch()
may only be able to launch for 3.5.0 or newer installs.I still have a few things to iron out, but with the current implementation we can run the following:
Which we could not run before .
Type of change
How Has This Been Tested?
Tested on macOS
Reminders:
Checklist:
- [ ] I have added debugging support to my changes.- [ ] I have added tests that prove my fix is effective or that my feature works.- [ ] I have confirmed new and existing unit tests pass locally with my changes.- [ ] I have added new baselines for any new tests to the repo.- [ ] I have NOT made any changes to protocol or public interfaces in an RC branch.