-
Notifications
You must be signed in to change notification settings - Fork 122
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
Update Python library handling #2317
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Codecov Report
@@ Coverage Diff @@
## master #2317 +/- ##
==========================================
+ Coverage 58.79% 58.84% +0.04%
==========================================
Files 625 626 +1
Lines 119921 119960 +39
==========================================
+ Hits 70513 70587 +74
+ Misses 49408 49373 -35
... and 4 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
✔️ 757d2f5 -> Azure artifacts URL |
This comment has been minimized.
This comment has been minimized.
✔️ e063b3f -> Azure artifacts URL |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
1cb784c
to
27d38bd
Compare
This comment has been minimized.
This comment has been minimized.
fabcd8b
to
f7fa518
Compare
b8ba9dc
to
aba38f4
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
d378029
to
f1f0d0e
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
✔️ 3926c5c -> Azure artifacts URL |
f0c5055
to
c414dc6
Compare
✔️ c414dc6 -> Azure artifacts URL |
This comment has been minimized.
This comment has been minimized.
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.
I didn't read the docs & cmake parts (but I see that Robert has at least looked at the docs).
The only thing that I looked into a bit more was at src/nrniv/nrnpy.cpp
as historically this is the file where I/we were stumbling on. (In case @nrnhines wants to take a look at this PR, this could be one file to review maybe?)
With the improvements in CI & testing, this is really nice! 👌
✔️ 464b5e1 -> Azure artifacts URL |
This comment has been minimized.
This comment has been minimized.
✔️ 92e8ebf -> Azure artifacts URL |
libnrnpythonX.Y
unconditionally minor-version-dependent, given that we do not use the Python limited APIlibnrnpythonX.Y
on Windows but onlylibnrnpythonX
on macOS and LinuxPyConfig
APIPyConfig
API, avoiding warnings for outdated methods that are expected(?) to be removed in Python 3.12python
-like configuration (e.g. for input encoding), reducing differences betweenpython
andnrniv -python
python
orpython3
is now more likely to not be a minor version that we compiled for.pyinit
" tests that comparepython
,nrniv -python
and many error cases.NRN_PYTHON_EXTRA_FOR_TESTS
option (list of valid Pythons that NEURON is not built against) allows explicit testing of error cases.-DPYTHON_EXECUTABLE=/path/to/venv/bin/python
should just worknrn_find_python_module
is now aware of multiple Python versions;ALL
option checks if they all have a packagenrnpy_*
global variables are folded into a singleneuron::python::methods
struct, which holds pointers to functions that have to be built for specific versions of Python inside thelibnrnpythonX.Y
libraries; this makes the handling of such function pointers more consistent