Modernize core modules: pathlib, type hints, DRY engine consolidation#13
Open
Modernize core modules: pathlib, type hints, DRY engine consolidation#13
Conversation
Co-authored-by: Gronemeyer <46824871+Gronemeyer@users.noreply.github.com>
Co-authored-by: Gronemeyer <46824871+Gronemeyer@users.noreply.github.com>
…evel guard Co-authored-by: Gronemeyer <46824871+Gronemeyer@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Simplify and modernize implementations for Mesofield framework
Modernize core modules: pathlib, type hints, DRY engine consolidation
Feb 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Modernize and simplify the Mesofield framework across core modules, reducing ~68 net lines while fixing several pre-existing bugs that prevented tests from running.
Modernization
config.py—pathlib.Path: Replace allos.pathusage withpathlib.Pathfor BIDS path generation, hardware resolution, and JSON persistence._save_diris now aPathinternally.engines.py— DRY consolidation:DevEnginenow inherits fromPupilEngineinstead of duplicating the entireexec_sequenced_eventloop (~60 lines removed). Only overridesset_config/setup_sequence/teardown_sequenceto skip NIDAQ behavior.Type hints (8 files):
from __future__ import annotations+ modern union syntax (str | None,list[str],dict[str, Any]) across__init__,__main__,base,config,hardware,protocols.__init__.py: Added__all__for explicit public API.Bug fixes
base.py: Hardcodedcameras[1]/cameras[0]→ safe iteration. Previously crashed with fewer than 2 cameras.data/writer.py: Removed circular import ofBASE_DIRfromcrop_enhance_mp4(already defined locally) that causedcv2import failure at module load.__main__.py: Removed hardcodedD:\jgronemeyer\...Windows path inplot_session.test_workflow.py: Fixed indentation error, invalid YAML, reference to non-existentDataSaver.writer_for, missingdata.setup()call.Example: config path handling before/after
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.