{"package": "msw-core", "summary": "Murine Shift Work acquisition stack: CLI, hardware, hooks, and logic.", "pypi_url": "https://pypi.org/project/msw-core", "piwheels_url": "https://www.piwheels.org/project/msw-core", "releases": {"0.11.4": {"released": "2026-06-22 08:51:59", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.11.4-py3-none-any.whl": {"file_url": "/simple/msw-core/msw_core-0.11.4-py3-none-any.whl", "filehash": "1b6cbd3880ec159d1bea969ba0bf663c4c7634f837c0af32d25613dcb18f54ee", "filesize": 96260, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.11.3": {"released": "2026-06-21 18:35:37", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.11.3-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.11.3-py3-none-any.whl", "filehash": "2c8c787c823e7ce541ba3c13f5f94a2fa84e3e286e17ab4c789bd6f2444884e6", "filesize": 94354, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.11.2": {"released": "2026-06-21 12:08:57", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.11.2-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.11.2-py3-none-any.whl", "filehash": "9ce9e8a3b8f2ffc567e7c96ac943a69ef0bd312f89e6bce06c0d7097e1ebd3c5", "filesize": 93999, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.11.1": {"released": "2026-06-21 11:11:20", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.11.1-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.11.1-py3-none-any.whl", "filehash": "1576407c3176a1e0a9b4233809d781c999ea330c2ff19188149560ad6a77dc58", "filesize": 94028, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.11.0": {"released": "2026-06-20 22:06:23", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.11.0-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.11.0-py3-none-any.whl", "filehash": "476595a387bc9b8ea7101c3faad0b0769848ddcb34303b709cf84a44a4acd3b9", "filesize": 92996, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.10.0": {"released": "2026-06-20 19:20:39", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.10.0-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.10.0-py3-none-any.whl", "filehash": "76fa1ab76ef6c0f48ef7edcdd157ccb074c26935f51510fc3a6a506a54dafecd", "filesize": 92593, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.9.3": {"released": "2026-06-20 14:42:00", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.9.3-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.9.3-py3-none-any.whl", "filehash": "963b210d865cbc9939bc8f9811e649ddddbce6f53f181322866059a9075f0a0b", "filesize": 92516, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.9.2": {"released": "2026-06-20 14:10:54", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.9.2-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.9.2-py3-none-any.whl", "filehash": "eaa818087781c896645d42d7e3837b0e6247d02a97aeb687239db196a417ad8f", "filesize": 90770, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.9.1": {"released": "2026-06-20 14:08:19", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.9.1-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.9.1-py3-none-any.whl", "filehash": "2801d860bdc2a1b795f4e31b9e6069b5385117d69763beb6aa840ec784705d54", "filesize": 91407, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.9.0": {"released": "2026-06-20 09:58:21", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.9.0-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.9.0-py3-none-any.whl", "filehash": "b7d92c7748c0837b0b1ba8ccafde95544c43ed2946f7869244b7e13ef207122f", "filesize": 91333, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.8.0": {"released": "2026-06-19 21:04:25", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.8.0-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.8.0-py3-none-any.whl", "filehash": "d51bd7c27dd1f9382432d91e66d1f13293f6bbb791189cda6bdd5086ba435028", "filesize": 90265, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.7.2": {"released": "2026-06-19 19:48:31", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.7.2-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.7.2-py3-none-any.whl", "filehash": "b374ee24f48caef61eaf54ad7c3ed7286798375e1733f6ef9fdcf68bbe3bd189", "filesize": 88831, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.7.1": {"released": "2026-06-19 13:26:41", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.7.1-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.7.1-py3-none-any.whl", "filehash": "ce4b0556008d07484077487e58dd623c086e5a38c7dd63e476bca2aae54531ec", "filesize": 88643, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.7.0": {"released": "2026-06-19 12:27:40", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.7.0-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.7.0-py3-none-any.whl", "filehash": "30792b912bf9873acac678167e362f8fa5c0e32bb4f291456779f1b8d074b2d1", "filesize": 88206, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.6.0": {"released": "2026-06-19 10:26:24", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.6.0-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.6.0-py3-none-any.whl", "filehash": "272c97344409f4c601f4a1b298fb8aecd5d8ad8f14eee5be83956a57e71d36ed", "filesize": 87159, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.5.1": {"released": "2026-06-19 07:16:06", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.5.1-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.5.1-py3-none-any.whl", "filehash": "cadef4b077979598ef8fc6333d4ff06d91c7481b3416d4b78253218256d11619", "filesize": 85885, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.5.0": {"released": "2026-06-18 19:39:28", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.5.0-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.5.0-py3-none-any.whl", "filehash": "0af994aba37c15276fa57dd1947ce9f4c8b6a13ed6af17d40a72ff0a868bddbf", "filesize": 85812, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.4.2": {"released": "2026-06-18 15:24:32", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.4.2-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.4.2-py3-none-any.whl", "filehash": "5b9230e4f31a0e344b69498ff1f1f9a908d3592c291ada40a499ba7f9cc5449e", "filesize": 85140, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "safe-and-collaborative-architecture", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.4.1": {"released": "2026-06-18 15:12:25", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.4.1-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.4.1-py3-none-any.whl", "filehash": "944e4ea261a489d8f08490db232a4e6afac90acbf3c50cd78af90bdb27853650", "filesize": 84688, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "sca", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.4.0": {"released": "2026-06-18 15:05:15", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.4.0-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.4.0-py3-none-any.whl", "filehash": "a49cd1561145ecaae26fdb29faec57a48330e79a29e8b6a8b056f60cc759f474", "filesize": 84684, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.3.2": {"released": "2026-06-18 13:02:22", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.3.2-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.3.2-py3-none-any.whl", "filehash": "903edd9c24030410608fd80b7d2b2123c88899fd28f32dc1a4de4e043bb07cc0", "filesize": 84688, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.3.1": {"released": "2026-06-18 06:42:34", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.3.1-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.3.1-py3-none-any.whl", "filehash": "1b18993c1d7873b9e64c52828f8e4edee46706a2a5606016c7e094f858ae76c7", "filesize": 84686, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.3.0": {"released": "2026-06-17 23:17:24", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.3.0-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.3.0-py3-none-any.whl", "filehash": "54048bd19d9eb345166709750cf60c870e4e837c81116430fcc9a50b71817d3f", "filesize": 84690, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.2.2": {"released": "2026-06-16 14:18:06", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.2.2-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.2.2-py3-none-any.whl", "filehash": "3051d98cbb63bd6099292a7d2d77d49dff3c1bffd1aa4c2271d6a431a775117e", "filesize": 85136, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.2.1": {"released": "2026-06-16 13:36:22", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.2.1-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.2.1-py3-none-any.whl", "filehash": "d1aa44c46619968830f102d599d2b7cf6dcbc12d2357bf9c7ba63dd15a5c08d1", "filesize": 85138, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}, "0.2.0": {"released": "2026-06-16 11:53:13", "prerelease": false, "yanked": false, "skip_reason": "", "files": {"msw_core-0.2.0-py3-none-any.whl": {"file_url": "https://archive1.piwheels.org/simple/msw-core/msw_core-0.2.0-py3-none-any.whl", "filehash": "095746bc1ba58e8bb6a1d133b0092cd3c753ff34a1c68faa99df0fb1207aad62", "filesize": 85122, "builder_abi": "cp313", "file_abi_tag": "none", "platform": "any", "requires_python": ">=3.12", "apt_dependencies": [], "pip_dependencies": ["matplotlib", "msw-io", "msw-plugin-api", "numpy", "one-axis-stage", "pandas", "pybpod-api", "pydantic", "pyserial", "pyyaml", "rich", "scipy", "seaborn", "sounddevice", "ttl-barcoder"]}}}}}