-
Notifications
You must be signed in to change notification settings - Fork 701
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
stop using modextrapaths
to update $PYTHONPATH
with standard path to installed Python packages (lib/python%(pyshortver)s/site-packages
)
#20960
base: 5.0.x
Are you sure you want to change the base?
Conversation
That reminds me of an old PR of mine: #13385 However all but 1 of the ECs are now deprecated and that one is fixed here. However there was also an enhancement to CI which I extracted to #20963 And a regexp I used which you might try in your tree: |
13da972
to
c51b513
Compare
c51b513
to
2d1c32d
Compare
CI requires #21405 (which requires easybuilders/easybuild-framework#4644) after easybuilders/easybuild-framework#4634 |
modextrapaths
to update $PYTHONPATH
with standard path to installed Python packages (lib/python*/site-packages
)
modextrapaths
to update $PYTHONPATH
with standard path to installed Python packages (lib/python*/site-packages
)modextrapaths
to update $PYTHONPATH
with standard path to installed Python packages (lib/python%(pyshortver)s/site-packages
)
…andard lib/python*/site-packages path
a89f37b
to
8882e93
Compare
…dard path to installed Python packages
test/easyconfigs/easyconfigs.py
Outdated
modextrapaths = ec.get('modextrapaths', {}) | ||
regex = re.compile(r'^lib*/python[0-9]\.[0-9]+/site-packages$') | ||
for key, value in modextrapaths.items(): | ||
value = resolve_template(value, ec.template_values) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ec.get
has a resolve
parameter defaulting to True
, so it seems the value is already resolved at this point, isn't it?
If it was indeed required I'd suggest putting it below the check to avoid resolving every value without using almost any
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, maybe, I didn't actually verify that tbh... Will check
…via modextrapaths
# don't allow updating of $PYTHONPATH with standard lib/python*/site-packages path, | ||
# since that's already taken care of by EasyBuild framework now | ||
# (cfr. https://github.com/easybuilders/easybuild-framework/pull/4539) | ||
modextrapaths = ec.get('modextrapaths', {}, resolve=True) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We usually denote explicitly when we do not want to resolve values so I'd not be so explicit (only) here and given ec.get('key') ==
ec['key']`
modextrapaths = ec.get('modextrapaths', {}, resolve=True) | |
modextrapaths = ec.get('modextrapaths', {}) |
All the trivial cases cleaned up here. Some others i could potentially partly clean up, which uses a mix of several PYTHONPATH (standard + nonstandard location, Spark is an example of such an easyconfig).
Should of course not be merged until the corresponding framework PR is merged.
$PYTHONPATH
or$EBPYTHONPREFIXES
in generated module files by automatically scanning for python site package directories easybuild-framework#4539