Changelog¶
0.6 - Becoming mio¶
0.6.0 - 24-12-10¶
Breaking Changes¶
miniscope-iois now known asmio! Big thanks to@heuerfor graciously giving us the name. This gives us a nice, short name that is uniform across pypi, the repository, and the cli.The
mio.models.config.LogConfig.level_file()andmio.models.config.LogConfig.level_stdout()fields are no longer automatically populated from thelevelfield. This was because of the way the multi-source config system propagates values between sources with different priorities. Now downstream consumers should check if these values areNoneand use thelevelfield if so.
Config¶
Two big changes to config:
#72-@sneakers-the-rat- Global config, user config from multiple sources: see the config documentation for more#76-@sneakers-the-rat- Convertformatstoyaml. We finally got rid of the godforsaken self-inflicted wound of having instantiated models serve as config, and instead are usingyamleverywhere for static config. This includes every yaml-able config having a header that indicates which model the config corresponds to, a (locally) unique id, which can be used anywhere a path can be, and a version stamp in anticipation of being able to handle model migrations.
CI¶
#75-@sneakers-the-rat- Test docs builds on PRs to avoid broken links and references
0.5¶
0.5.0 - 24-11-11¶
Enhancements and bugfixes to StreamDaq; adding device_update module; CI/CD updates.
Features / bugfixes¶
Over-the-air device config: modules and commands for updating and rebooting; e.g.,
mio update --key LED --value 10,mio device --reboot.Continuous run: updated error handling to continuously capture even when the data stream is interrupted.
UNIX timestamp: added UNIX timestamp to metadata file export.
More Opal Kelly bitfiles: added FPGA configuration images and organized them based on Manchester encoding conventions, frequency, etc.
CI/CD¶
Switched to
pdmfrompoetry; nowpdm install --with allfor contributing.Added workflow for readthedocs preview link in PRs.
Added snake_case enforcement (Lint).
Related PRs: #45, #48, #49, #50, #53, Contributors: @t-sasatani, @sneakers-the-rat, @MarcelMB, @phildong
0.4¶
0.4.1 - 24-09-01¶
Added Features¶
Support dummy words at the beginning of buffer to make data detection in
StreamDaqmore robust. The length of this word can be set via the device config YAML file.models.stream.ADCScalingclass for converting ADC raw values into voltage. The scaling factors can be set via the device config YAML file.
Related PRs: #41, #44 Related Issues: #36 Contributors: @t-sasatani, @sneakers-the-rat, @MarcelMB.
0.4.0 - 24-08-27¶
Enhancements and bugfixes to StreamDaq. Mostly around handling metadata.
Contributors: @t-sasatani, @sneakers-the-rat, @MarcelMB. Related PRs: #35, #38, #33 Related Issues: #34, #36, #38, #40
Features:
Metadata handling: CSV export and real-time plotting of metadata. The plotting feature is experimental and is still very unstable. Also improved metadata error handling.
CLI enhancement: Generate video and metadata csv files with same stem names.
Models/Formats:
Runtime config:
StreamDevRuntimenow configures queue and buffer sizes used inStreamDaq.
CI / Bugfix:
Fix termination: Now buffer size doesn’t affect output video. Very good for tests.
Device docs section: For adding documentation about specific devices.
CLI docs on RTD: Mock binaries so CLI docs show up on RTD.
Dependency: Update some packages for Windows compatibility.
0.3¶
0.3.0 - 24-07-04¶
Enhancements to StreamDaq and improved CI processes.
Contributors: @sneakers-the-rat, @t-sasatani. Related PRs and Issues: #29, #31, #27
Features:
Performance enhancements: Refactoring of streamDaq to eliminate delays in the default configuration.
New CLI: Introduced a
click-based CLI offering greater flexibility and scalability.Test coverage: Integrated Coveralls to display test coverage statistics.
BufferFormatter class: Added for flexible bit/byte operations and decoding incoming buffers.
Models/Formats:
Configuration changes: Isolated device config and user config. device config is now stored in
StreamDevConfig(renamed fromStreamDaqConfig). User configs are segregated to the CLI.
CI:
Python 3.12 compatibility: Added tests for Python 3.12.
StreamDaq tests: Fixed issues with video hash assert tests in
streamDaq.Global test timeout: added global timeout for all tests.
0.2¶
0.2.1 - 24-06-21¶
Linting and code formatting :)
Added black and ruff for linting and formatting,
reformatted the package.
See the Contributing documentation for details and usage.
0.2.0 - 24-06-21¶
StreamDaq enhancements and testing
https://github.com/Aharoni-Lab/miniscope-io/pull/26
Testing:
@t-sasatani - add end-to-end test for
streamDaqAdd a mock class for
okDevreplace
tmpdirfixture andtempfilemodule withtmp_path
New:
@t-sasatani - allow use of okDev on Windows
capture()can export video :)More specific exceptions:
hash_video()- hash decoded video frames, rather than encoded video file
Fixed:
Removed
printstatements inokDev-
Don’t require
configReplace logging with
init_logger()Use of
terminateto control inner loops
Models:
added
fsandshow_videotoStreamDaqConfig
CI:
@t-sasatani - restore windows and mac tests (oops)
caching dependency installs
not using pytest-emoji, it was always annoying
0.1¶
0.1.8 - 24-06-16¶
https://github.com/Aharoni-Lab/miniscope-io/pull/21
https://github.com/Aharoni-Lab/miniscope-io/pull/15
New features:
Support for Various Image Formats:
streamDaqnow supports multiple image formats, including different image sizes, frame rates (FPS), and bit-depths. These configurations can be provided via a YAML file. Examples of these configurations can be found inmio.data.config.Pydantic Model for Configuration: Added a Pydantic model to validate the configuration of
streamDaq.Bitstream Loader: Added a bitstream loader to automatically configure the Opal Kelly FPGA when running
streamDaq.Updated Command Line Script: The command line script for running
streamDaqhas been updated. UsestreamDaq -c path/to/config/yaml/file.ymlto run the process with your YAML configuration file.Logger Module: Added a logger module that can be configured using environmental variables or a
.envfile.
Note: Version 0.1.7 was skipped accidentally and does not exist.
0.1.6 - 24-04-09¶
https://github.com/Aharoni-Lab/miniscope-io/pull/14
New features:
Added support for the wireless FPGA and UART daqs - work in progress unifying the API, but initial version of code is present in
stream_daq.pyVendored opalkelly device drivers - see
devicesandvendor
0.1.5 - 23-09-03¶
https://github.com/Aharoni-Lab/miniscope-io/pull/9
https://github.com/Aharoni-Lab/miniscope-io/pull/10
Bugfixes:
Handle absolute paths correctly on windows, which can’t deal with
pathlib.Path.resolve(), apparently
New features:
Added
to_video()to export videosAdded notebook demonstrating
to_video()
Added
mio.utilsmodule withhash_file()function for hashing files (used in testing)
Code structure:
(Minor) moved
skip()to general methods block (no change)
Tests:
Run tests on macos and windows
0.1.4 - 23-09-03¶
https://github.com/Aharoni-Lab/miniscope-io/pull/8
New features:
Data models! Hold a collection of frames and get their headers
Plots! Mimic the plots from ye olde notebook
Update to pydantic v2
Version field in formats
Format for miniscope firmware with battery voltage level
Reverted:
grab_frames notebook is restored to using the example data and having the evaluated output present
0.1.1 - 23-07-13¶
Additions¶
Added
EndOfRecordingExceptionwhen attempting to read past last frameAdded
frame_countproperty inferred from the number of buffers and buffers per frameReturn
selfwhen enteringSDCardcontextOptionally return
DataHeaders from frame when reading
Bugfixes¶
Index the position of the 0th frame in
positionsreset internal frame counter to 0 when exiting context