Fix Windows path issue when importing interfaces #1781
Merged
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.
The Issue
To prevent imports outside of the the root path,
vyper-json
prepends import paths with/__vyper
and then ensures the final resolved path is still a subfolder of that path. On Windows this check is failing withValueError: 'C:\\__vyper\\path.vy' does not start with '\\__vyper'
. Oopsies.You can see a detailed traceback for the issue here.
How I fixed it
Perform the
relative_to
check against aPath
object, so that it works on any filesystem.How to verify it
I confirmed that it works in a Windows 10 VM. Not sure if anyone wants to add Windows to the CI...
Cute Animal Picture