Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat refactor task widget #1262

Draft
wants to merge 5 commits into
base: develop
Choose a base branch
from
Draft

Conversation

micahwoodard
Copy link
Collaborator

Pull Request instructions:

  • Please follow the update protocol
  • Answer the questions below in detail. Your responses will be emailed to experimenters.
  • If the experimenters must do anything new, provide detailed step by step instructions on the wiki
  • If computer maintainers need to manually update anything, provide detailed step by step instructions
  • Use markdown syntax in order for your comments to be rendered reliably in the email: "1." instead of "1)", use four spaces for indents.
  • If you use the keyword "skip email" in the title, it will skip the email updates
  • Merges from "develop" into "production_testing" should use the keyword "production merge" in the title for reliable indexing of updates
  • Merges from "production_testing" into "main" should use the keyword "update main"

Describe changes:

Automating creation of task widget and AINDBehaviorTaskLogicModel

What issues or discussions does this update address?

  • NA

Describe the expected change in behavior from the perspective of the experimenter

  • NA

Describe any manual update steps for task computers

  • NA

Was this update tested in 446/447?

  • 446/7

@micahwoodard
Copy link
Collaborator Author

A little side project I've been working on this week. I basically made a robust schema for all the task types, fed those schemas into a previous widget tool that I've made that automatically creates, formats, and validates widgets, and then created a lightweight custom widget on top that will handle and update task changes and updating the AindBehaviorTaskLogicModel. This approach makes it so if the task schema needs to be updated, all downstream widgets and AindBehaviorTaskLogicModel will be updated and handled automatically, hopefully saving time and effort in the future. Let me know what you folks think. Right now it's not integrated, but that's what I'll be working on next unless people don't think this is worth the effort.

2024-12-24.08-53-35.mp4

@micahwoodard micahwoodard marked this pull request as draft December 24, 2024 17:01
@micahwoodard
Copy link
Collaborator Author

micahwoodard commented Dec 24, 2024

Also there is an example in the task_widget.py file if anyone wants to play around. I'm sure there are some tweaks around the task schemas and this will effect downstream processing, but wanted to put it out there to try and see if we can simplify some of the widgets and make them more flexible for future applications.

@XX-Yin
Copy link
Collaborator

XX-Yin commented Dec 24, 2024

This looks cool. Let's review this PR after the break.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants