Add sys.path lookup when searching for tasks #1056
Open
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.
Hi,
This is an addition based on the documentation about loading collections.
NOTE : I'm using Invoke on Windows 11.
Currently, when using
invoke --listcommand, only current directory and its parents are checked when trying to find tasks package or module. Sys.path is never checked, seemingly contradicting the docs.This PR aims to correct this by also checking paths in sys.path if cwd search failed. This allows the use of PYTHONPATH env variable and other package managers like REZ and avoids writing the root path for tasks in every
invokecall.Also, as the cwd/root is checked first and will return the results if tasks are found there, this shouldn't break existing setups.
There is also a small fix to avoid empty paths ("") being passed to
os.path()