Releases: waltsims/k-wave-python
v0.3.7
This is a patch release on top of k-wave-python v0.3.6.
This patch fixes the bug found in #514 by @mikaelhaji that broke Windows execution.
This release fixes that issue by not passing the threads flag to the executable on Windows.
v0.3.6
Warning Yanked. See v0.3.7 release notes
What's Changed
- In #473 we updated the logic in the SimulationExecutionOptions() class to reduce user error and improve ease of use.
- In #505 we dropped support for Python 3.9 and added support for Python 3.13 in this version.
- Also in #505 we bumped our scipy dependency to v1.13.1.
- In #506 we bumped our numpy dependency to now support numpy v2.0 and adapted our k-wave-python to numpy v2.0 in #510. Please consult the v2.0 migration guide here to find out what this means for you!
- @brubbel fixed Bug #376 in #509 which will help everyone record multiple outputs. Thanks for the great find in your first PR @brubbel!
Other Dependencies
- Bump jaxtyping from 0.2.34 to 0.2.36 by @dependabot in #508
- Bump coverage from 7.6.4 to 7.6.7 by @dependabot in #507
New Contributors 🎉
Full Changelog: v0.3.5...v0.3.6
v0.3.5
Hi k-wave-python community!
We're excited to announce v0.3.5. This point release includes some improvements to k-wave-python that improve performance and reliability. We have also included new examples in the repository.
Special thanks to first-time contributors @faberno and @precicely for their contributions to this release!
What's Changed
- #454: measure no longer has enforced decimal places. Closes #454. by @precicely in #455
- 454 element measure precision by @precicely in #457
- update logger messages with f-strings by @waltsims in #458
- Update executor.py to handle spaces in binary path by @djps in #489
- add ability to run all examples by @waltsims in #480
- Update environment variable generation for safer execution by @waltsims in #493
New examples
- #441 Add us beams example by @gordon-n-stevenson in #445
- Add Focussed Detector In 2D Example by @faridyagubbayli in #492
- Add Focussed Detector In 3D Example by @faridyagubbayli in #495
- Add Modelling Sensor Directivity In 2D Example by @faridyagubbayli in #500
Bug fixes
- clear ruff errors in examples by @waltsims in #453
- Small bug fixes by @faberno in #463
- Typo in at_annular_array_3D script by @waltsims in #474
- Do not bind process in MacOS by @faridyagubbayli in #476
- Suppress the FileNotFound error when attempting to set the file mode by @faridyagubbayli in #498
Dependencies
- Bump coverage from 7.5.4 to 7.6.1 by @dependabot in #443
- Bump furo from 2024.5.6 to 2024.8.6 by @dependabot in #456
- Bump matplotlib from 3.9.0 to 3.9.2 by @dependabot in #451
- Bump sphinx-toolbox from 3.6.0 to 3.8.0 by @dependabot in #452
- Bump deepdiff from 7.0.1 to 8.0.1 by @dependabot in #466
- Bump pre-commit from 3.7.1 to 3.8.0 by @dependabot in #465
- Bump jaxtyping from 0.2.31 to 0.2.34 by @dependabot in #464
- Bump sphinx-mdinclude from 0.6.1 to 0.6.2 by @dependabot in #467
- Bump h5py from 3.11.0 to 3.12.1 by @dependabot in #479
- Bump coverage from 7.6.1 to 7.6.3 by @dependabot in #483
- Bump pre-commit from 3.8.0 to 4.0.1 by @dependabot in #482
- Bump beartype from 0.18.5 to 0.19.0 by @dependabot in #478
- Bump coverage from 7.6.3 to 7.6.4 by @dependabot in #487
- Bump sphinx-tabs from 3.4.5 to 3.4.7 by @dependabot in #486
New Contributors
- @precicely made their first contribution in #455
- @faberno made their first contribution in #463
Full Changelog: v0.3.4...v0.3.5
v0.3.4
v0.3.4
We're excited to announce the relsease of k-wave-python v0.3.4! We have improved code coverage, fixed some bugs and finally MacOS support for OpenMP execution in this point release! 🎉
Highlights
- k-Wave-python can now be run on MacOS using OpenMP #410
- We added key examples from contributors including defining a transducer by @gordon-n-stevenson in #378, phased-array @void-mckenzie in #379 and Modelling in 3D by @djps in #323.
- We improved support for Windows by addressing issues identified and addressed by @peterhollender in #367
- @KR616 contributed their first contributions to k-wave-python working to improve the issue and PR workflow in #409
We want to thank the community for its support and contributions. We look forward to your continued feedback 💯. See you in the next release!
What's Changed (complete list)
- Update documentation 2024 by @waltsims in #364
- Fix binary file redownloading on windows by @peterhollender in #367
- Modelling in 3D by @djps in #323
- Bump deepdiff from 6.7.1 to 7.0.1 by @dependabot in #368
- Bump scipy from 1.12.0 to 1.13.0 by @dependabot in #362
- Bump beartype from 0.17.2 to 0.18.2 by @dependabot in #361
- Axisymmetric by @djps in #371
- Fixed typo in utils/interp.py by @guillefix in #369
- Minor Typo fix - US BMode Phased Array Example by @void-mckenzie in #379
- Bump coverage from 7.4.4 to 7.5.1 by @dependabot in #380
- Bump h5py from 3.10.0 to 3.11.0 by @dependabot in #372
- Add us_defining_transducer example from kwave by @gordon-n-stevenson in #378
- Bump pre-commit from 3.7.0 to 3.7.1 by @dependabot in #381
- Bump matplotlib from 3.8.3 to 3.8.4 by @dependabot in #360
- Bump gdown from 5.1.0 to 5.2.0 by @dependabot in #382
- Replace m2r2 with mdinclude by @waltsims in #384
- Bump beartype from 0.18.2 to 0.18.5 by @dependabot in #373
- Bump sphinx-tabs from 3.4.4 to 3.4.5 by @dependabot in #277
- Refactor dunder init by @waltsims in #349
- patch plotting axis typo by @waltsims in #385
- Bump sphinx-mdinclude from 0.5.4 to 0.6.1 by @dependabot in #389
- Bump requests from 2.31.0 to 2.32.2 by @dependabot in #392
- Clean duplicate code in post_init method for SimulationExecutionOptions by @waltsims in #393
- Incorrect image in README.md by @KR616 in #396
- allow CI to complete on windows by @waltsims in #398
- Bump matplotlib from 3.8.4 to 3.9.0 by @dependabot in #388
- Bump coverage from 7.5.1 to 7.5.2 by @dependabot in #401
- Bump jaxtyping from 0.2.28 to 0.2.29 by @dependabot in #399
- Bump furo from 2024.1.29 to 2024.5.6 by @dependabot in #387
- Bump scipy from 1.13.0 to 1.13.1 by @dependabot in #400
- delete unused methods by @waltsims in #402
- Fix ivp example by @waltsims in #403
- Bump opencv-python from 4.9.0.80 to 4.10.0.82 by @dependabot in #406
- Bump requests from 2.32.2 to 2.32.3 by @dependabot in #405
- Bump coverage from 7.5.2 to 7.5.3 by @dependabot in #407
- ensure stderr and stdout are printed on executor error by @waltsims in #395
- PR for Issue #397 by @KR616 in #409
- Fix stability check by @waltsims in #411
- Update examples README.md with google sheets link. by @waltsims in #416
- Bump jaxtyping from 0.2.29 to 0.2.30 by @dependabot in #414
- Bump opencv-python from 4.10.0.82 to 4.10.0.84 by @dependabot in #415
- Add MacOS support by @waltsims in #410
- Separate DLL checking in windows by @peterhollender in #420
- Only test installation when pyproject.toml is updated by @waltsims in #422
- Bump coverage from 7.5.3 to 7.5.4 by @dependabot in #424
- migrate test-setup to init by @waltsims in #404
- Bump jaxtyping from 0.2.30 to 0.2.31 by @dependabot in #427
- Bump sphinx-toolbox from 3.5.0 to 3.6.0 by @dependabot in #428
- Update pyproject.toml to error on depreciation by @waltsims in #412
- create new map for every recorder object and clear vars by @waltsims in #429
- Fix and test check_stability by @waltsims in #431
- Fix typo in simulation_options arguments by @waltsims in #433
- v0.3.4 release by @waltsims in #430
New Contributors
- @peterhollender made their first contribution in #367
- @void-mckenzie made their first contribution in #379
- @gordon-n-stevenson made their first contribution in #378
- @KR616 made their first contribution in #396
Full Changelog: v0.3.3...v0.3.4
v0.3.3
What's Changed
We are excited to announce another release of k-wave-python! This release adds minor enhancements and improvements to k-wave-python along with a new example for phased-array transducers contributed by @talg2324.
Enhancements
- Add ruff pre-commit-hook by @waltsims in #316
- Update simulation_options.py - ensure that a 2d pml can be set by @djps in #328
- Update CITATION.cff with doi by @waltsims in #337
- phased array example by @talg2324 in #341
- Make cart arc by @djps in #343
- Metadata for lazy installation by @faridyagubbayli in #347
- Use jaxtyping by @faridyagubbayli in #351
- update colors for colab by @waltsims in #357
Fixes
- 310 bug two times log compression in the example us bmode linear transducer by @waltsims in #356
- 344 karray 2d weights dimension by @waltsims in #346
- Remove deprecation warning in write attributes by @waltsims in #352
Dependencies
- Bump gdown from 4.6.0 to 5.1.0 by @dependabot in #313
- Bump coverage from 7.4.3 to 7.4.4 by @dependabot in #345
- Bump jaxtyping from 0.2.25 to 0.2.28 by @dependabot in #354
- Bump beartype from 0.16.4 to 0.17.2 by @dependabot in #331
- Bump pre-commit from 3.6.2 to 3.7.0 by @dependabot in #355
Full Changelog: v0.3.2...v0.3.3
v0.3.2
What's Changed
We're excited to announce k-wave-python v0.3.2! This release brings with it many improvements and fixes listed below. Importantly, we drop support for Python 3.8 and add support for Python 3.12. We have added development documentation on testing workflows and improved the overall documentation readability. Test coverage has also been added to the project. Furthermore, David Sinden (@djps) has joined the project as our third maintainer! 🎉
Lastly, we have added a citation file to the project. If you are enjoying k-Wave-python, please cite it in your work!
Breaking Changes
Improvements
- Check if color_map is usable by @faridyagubbayli in #287
- Add code coverage by @waltsims in #275
- Upgrade setup-python action & use pip cache by @faridyagubbayli in #280
- Remove module name from object names in the documentation. by @waltsims in #285
- Remove legacy mode from write attributes by @faridyagubbayli in #289
- create CITATION.cff proposal by @waltsims in #290
- Update pyproject.toml by @waltsims in #296
- Improve logging when checking for the presence of binaries by @faridyagubbayli in #320
- Update mapgen.py to include focused annulus oneil by @djps in #284
- Clean up examples and add more colab buttons by @waltsims in #298
- Remove duplicate write_attributes_typed function by @faridyagubbayli in #318
- Add test coverage for tol_star by @faridyagubbayli in #324
- Improved typing and testing for temperature dependency functions by @djps in #309
- Update make_cart_spherical_segment types to floating point values by @waltsims in #315
- Add CodeCov config by @faridyagubbayli in #334
- Bump python support to 3.12 by @waltsims in #267
- Update local testing workflow instructions by @waltsims in #291
Fixes
- #262 Fix stdout logic on exceptions by @waltsims in #297
- update argument types of focused_bowl_oneil by @waltsims in #317
- Fix colab link for controlling the pml by @waltsims in #333
Dependencies
- Bump pre-commit from 3.5.0 to 3.6.0 by @dependabot in #278
- Bump coverage from 7.4.0 to 7.4.1 by @dependabot in #294
- Bump gdown from 4.7.3 to 5.1.0 by @dependabot in #295
- Bump pre-commit from 3.6.0 to 3.6.1 by @dependabot in #300
- Bump furo from 2023.9.10 to 2024.1.29 by @dependabot in #299
- Bump matplotlib from 3.7.2 to 3.8.3 by @dependabot in #325
- Bump scipy from 1.10.1 to 1.12.0 by @dependabot in #276
- Bump coverage from 7.4.1 to 7.4.3 by @dependabot in #330
- Bump pre-commit from 3.6.1 to 3.6.2 by @dependabot in #329
Full Changelog: v0.3.1...v0.3.2
v0.3.1
What's Changed
In this release, we have restructured and added new examples in k-wave-python. All examples now include colab notebook links for faster exploration. We have made some enhancements as well thanks in part to our new community contributer @guillefix. Minor bugfixes are also included in this release.
Improved examples
- Ivp photo acoustic waveforms by @djps in #237
- Migrate examples to notebooks by @waltsims in #229
- Add example as a notebook: example_na_controlling_the_pml by @faridyagubbayli in #217
Enhancements
- Add type and shape annotations by @faridyagubbayli in #249
- Update record_reader.py to remove warnings by @waltsims in #211
- non-copying operation to improve speed for large matrices (useful for 3D simulation) by @guillefix in #269
Bug fixes
- 250 bug phantom data cannot be downloaded from google drive by @waltsims in #251
- 238 bug attributeerror kwavesimulation object has no attribute record u split field by @waltsims in #242
Dependency updates
Updated
- Bump sphinx-toolbox from 3.4.0 to 3.5.0 by @dependabot in #181
- Bump furo from 2023.8.19 to 2023.9.10 by @dependabot in #207
- Bump deepdiff from 6.3.1 to 6.7.1 by @dependabot in #241
- Bump h5py from 3.9.0 to 3.10.0 by @dependabot in #240
- Bump opencv-python from 4.8.0.76 to 4.8.1.78 by @dependabot in #239
- Bump sphinx-tabs from 3.4.1 to 3.4.4 by @dependabot in #243
- Bump opencv-python from 4.8.1.78 to 4.9.0.80 by @dependabot in #247
- Update numpy requirement from <1.25.0,>=1.22.2 to >=1.22.2,<1.27.0 by @dependabot in #209
- Bump gdown from 4.6.0 to 4.7.3 by @dependabot in #266
Added
- Added
beartype
andnptyping
#249
Removed
Project maintenance
- Update issue templates by @waltsims in #230
- Cache generated matlab references by @faridyagubbayli in #260
- Bump pytest coverage 3.11 by @waltsims in #206
- Bump python version for pages test by @waltsims in #234
New Contributors
- @guillefix made their first contribution in #269
Full Changelog: v0.3.0...v0.3.1
v0.3.0
What's Changed
This release includes new interface improvements, updates to reach functional and testing parity with k-Wave v1.4.0, improved documentation, performance improvements, and fixes to k-Wave-python. We are happy to say that this release was also supported by new community contributors including @djps, @bvale1 , @talg2324! Thanks to everyone for their work and support. We hope this release accelerates your work and look forward to hearing from you.
Interface refactoring
- Refactor kSpaceFirstOrder inputs by @faridyagubbayli in #107
- Replace Array class with numpy-based Vector class by @faridyagubbayli in #118
- Vectorize variables by @faridyagubbayli in #124
k-Wave v1.4.0 changes
This release extends functional and testing coverage to k-Wave v1.4.0 MATLAB release. This includes migrating matlab functions to k-Wave-python and testing for correctness. These include:
- Python implementation of
makeCartRect
by @faridyagubbayli in #126 - Add trim_zeros function and test by @waltsims in #128
- Python implementation of
trimCartPoints
by @faridyagubbayli in #134 - New funcs: get_affine_matrix() and compute_linear_transform() by @faridyagubbayli in #146
- Update fwhm return values for v1.4.0 by @waltsims in #148
- Add makeCartArc and tests by @waltsims in #149
- Add get_delta_BLI and test by @waltsims in #150
- Update focus_bowl_oneil to return complex axial pressure by @waltsims in #154
- MATLAB data collector for testing kWaveArray by @faridyagubbayli in #161
- Add make_cart_bowl by @waltsims in #164
- Add make_cart_disc by @waltsims in #165
- Add make_cart_spherical_segment and test by @waltsims in #166
- Python implementation of
kWaveArray
&get_off_grid_points(...)
by @faridyagubbayli in #168 - Update pytest.yml to run on PRs as well by @waltsims in #197
- Add custom element by @bvale1 in #212
- Test nearest neighbor mode of resize function by @faridyagubbayli in #216
Documentation updates
We have updated and extended the documentation of k-Wave by porting the documentation to readthedocs.
- rename pages to publish_pages by @waltsims in #119
- Update README.md to fix broken docs link by @waltsims in #123
- Create ruff.yml by @waltsims in #131
- Migrate documentation to Readthedocs by @waltsims in #152
- Clean up documentation by @waltsims in #158
- Update README.md by @waltsims in #170
More examples 🍾
- Example script refactor and added testing by @waltsims in #108
- Examples/at linear array transducer by @waltsims in #174
- Example of karray source by @waltsims in #193
Performance improvements
Fixes
- Update conversion.py - fix ordering in tolStar by @djps in #172
- Clean up extra GOLDEN_ANGLES by @waltsims in #178
- Update kwave_array.py removing discretization by @djps in #195
- lower library verbosity by @talg2324 in #196
- Update workflow checkout to v4 by @waltsims in #200
- Update filters.py by @djps in #202
- Update save_to_disk_func.py - fix dtype error by @djps in #204
- fix typo by @djps in #214
Dependency updates
- Bump sphinx-toolbox from 3.2.0 to 3.4.0 by @dependabot in #99
- Bump deepdiff from 5.2.3 to 6.2.3 by @dependabot in #87
- Bump gdown from 4.6.0 to 4.6.4 by @dependabot in #110
- Bump k-Wave test version to v1.4.0 by @waltsims in #116
- Bump m2r2 from 0.3.2 to 0.3.3.post2 by @dependabot in #98
- Bump matplotlib from 3.6.3 to 3.7.1 by @dependabot in #114
- Bump sphinx-copybutton from 0.5.1 to 0.5.2 by @dependabot in #121
- Bump opencv-python from 4.7.0.68 to 4.7.0.72 by @dependabot in #112
- Bump scipy from 1.7.3 to 1.10.1 by @dependabot in #109
- Bump h5py from 3.6.0 to 3.8.0 by @dependabot in #113
- Bump gdown from 4.6.4 to 4.7.1 by @dependabot in #143
- Bump scikit-image from 0.19.3 to 0.21.0 by @dependabot in #147
- Bump deepdiff from 6.2.3 to 6.3.1 by @dependabot in #169
- Bump matplotlib from 3.7.1 to 3.7.2 by @dependabot in #179
- Bump furo from 2022.12.7 to 2023.8.19 by @dependabot in #189
- Bump h5py from 3.8.0 to 3.9.0 by @dependabot in #186
- Bump opencv-python from 4.7.0.72 to 4.8.0.76 by @dependabot in #198
New Contributors
- @djps made their first contribution in #172
- @talg2324 made their first contribution in #196
- @bvale1 made their first contribution in #212
Full Changelog: v0.2.1...v0.3.0
v0.2.1
v0.2.0
Hey all,
this is a pretty big release with extended testing and improved GPU support. Let us know if you encounter any challenges.
Thanks,
Walter
What's Changed
- GitHub workflow by @waltsims in #15
- Update for Windows binary test compatibility by @Redstonemaster29 in #19
- Added Windows compatibility by @ktritz in #20
- Address warning in kspaceFirstOrder by @waltsims in #22
- Matlab ci artifacts by @waltsims in #25
- Build rebuild by @waltsims in #37
- Re-add requirement files for sphinx-build and dependabot by @waltsims in #39
- Update development documentation by @waltsims in #45
- [WIP] Added testing by @waltsims in #38
- Fix docs for pyproject.toml support by @waltsims in #53
- Bump gdown from 4.4.0 to 4.5.3 by @dependabot in #47
- Refactor camel-case method names to snake case by @waltsims in #54
- Tests fail after un-skipping cart2grid test by @waltsims in #56
- Unskip tests by @waltsims in #65
- Utils cleanup by @waltsims in #55
- add docs dependency version requirements by @waltsims in #66
- Options refactor by @waltsims in #64
- kWaveGrid tests & TestRecorder by @faridyagubbayli in #62
- remove all import-alls by @waltsims in #76
- angular_spectrum: implementation & test by @faridyagubbayli in #83
- [WIP] Docs cleanup by @waltsims in #82
- Update License by @waltsims in #90
- Bump gdown from 4.5.3 to 4.6.0 by @dependabot in #63
- Update numpy requirement from ~=1.22.2 to >=1.22.2,<1.25.0 by @dependabot in #68
- Angular Spectrum CW: implementation & test by @faridyagubbayli in #95
- Misssing collectors cleanup by @waltsims in #80
- Bump matplotlib from 3.6.1 to 3.6.3 by @dependabot in #91
- Attention Compensation: implementation & test by @faridyagubbayli in #96
- [WIP] Lazy binary install strategy by @waltsims in #89
- V0.2.0 release by @waltsims in #101
- Bump opencv-python from 4.6.0.66 to 4.7.0.68 by @dependabot in #92
- v0.2.0 release by @waltsims in #103
New Contributors
- @waltsims made their first contribution in #15
- @Redstonemaster29 made their first contribution in #19
- @ktritz made their first contribution in #20
- @dependabot made their first contribution in #47
Full Changelog: v0.1.0...0.2.0