While going through SCA203, I kept having trouble with the jupyter notebooks.
Eventually, I was able to find a root-cause and workaround. This post is to document for others who might hit this, and to request a fix by maintainer of the cwtvla module.
How to determine if you are affected
Run pip check – does it list any version conflicts, especially about numpy and chipwhisperer?
Background
- the
chipwhisperer 6.0.0module requiresnumpy <=1.26.4. - the
cwtvla 0.1.3module requiresnumpy, but does not list any version metadata. - The
chipwhisperer 6.0.0module does not listcwtvlaas a prerequisite (which seems correct) - The
cwtvla 0.1.3module does not listchipwhispereras a prerequisite
As a result, cwtvla must be manually installed. A typical installation would simply be: pip install cwtvla.
However, because cwtvla does not list version metadata in its requirements, that will install the latest available versions. In particular, numpy will be updated to version 2.x.x … even though it breaks the chipwhisperer module’s explicit requirement of numpy <= 1.26.4.
As a result, lots of things break.
Workaround
pip uninstall -y scipy numpy cwtvla
pip install numpy==1.26.4
pip install "scipy<1.14"
pip install cwtvla --no-deps
pip check
Proper Fix
Fix the cwtvla module dependencies:
- add
chipwhisperer == 6.0.0 - modify
Requires: scipy→Requires: scipy<1.14 - similarly, add
Requires: zarr <= ...with proper version metadata, since that module is also required for at leastcwtvla.cw_convenience - etc.
This would ensure that The cwtvla module should list dependencies that don’t conflict with the chipwhisperer module.
In fact, perhaps cwtvla module should depend on the chipwhisperer module directly?