v.1.11.0
This release makes two disruptive changes, among others.
- If you use CLI demos, you'll find them to be totally reworked in this release to be more applike and driven by jsonfiles. This is intended to make them potentially usable without being edited.
- If you build other software that imports caiman, this release has more functions in the code that generate output files do so in the temp/ directory rather than leave them in a variety of random places. Not everything was changed; future releases will likely continue to increase tidiness on this front, so if you import caiman and need to know where files land, please reach out to [email protected] if you want a heads-up or to make requests/suggestions. Eventually the codebase will likely have per-run directories and have standard file outputs that most functions produce, hopefully making it much easier to wrap caiman (either as a library or as an external call)
The codebase is moving towards the standard that if the user requests something be put in a file with a particular name:
- If that name contains a path, it will be put exactly in that path, meeting the request
- If that name does not contain a path, the codebase will find a suitable place to put it and return or store a value somewhere indicating where it was put. Right now this is always caiman_data/temp/ but in the future after we have per-run directories, there may be further distinction between logs, temporary files, and output files (we have not committed to specifics yet, but intend to move in this direction)
The full changelist:
- Significant SBX format reworking, tiff format fixes from ethanbb
- Bugfix in detecting N5 and ZARR files from marberi
- Removed support for the oldest (pre-hdf5) format of MAT files, better messages for that code in general
- Full refactoring of most CLI demos to be applications, driven by JSON, to be usable without code modification. Added a README
- CLI demos have some long-overdue fixes to display their results correctly. Note that demo_behaviour requires particular builds of OpenCV (that are built against Qt6 rather than standalone).
- Changes across the codebase to have it less often produce files all over the place during a run
- Removed some dead code and entries in data structures throughout the codebase (including some that used the now nonsupported spams library as a dynamic import). caiman.behavior.extract_components() no longer supports the method_factorization value of dict_learn
- Movie.save() now always returns the filename regardless of filetype; this is now preferred because if one doesn’t include a path it will save in temp/ and the caller can use the return value to know how to reopen it later
- environment.yml better handles alternate distributions of conda (like miniforge, which we still don’t recommended but it now more likely to work)
- Ensure that caimanmanager will not copy pycache directories into caiman_data
- Miscellaneous small bugfixes