-
Notifications
You must be signed in to change notification settings - Fork 13
Zmq pr #203
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
Merged
Merged
Zmq pr #203
Conversation
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
- reformatting yaml file for new links - changing readme for new formats
- rewriting GUI as a single actor with an encapsulated state that's passed to QT front end - trying to remove special-case GUI code (commented out in nexus.py) - currently not working; starting GUI seems to leave zmq sockets in a bad state; calling exec function may block
- quitting GUI sends quit but it doesn't work - need to overhaul comms with nexus to remove special cases
- currently need logging to be set up before registering with nexus - probably want to have a default that works without this in future (perhaps with a warning)
- these messages now start with Nexus, so that all message types start with their _source_
- Actor Signal messages originate at actors as control signals back to nexus
- this was parameterized in order to test some specific functionality, but that led to much harder to read code that was only leveraged in a single test case
- on the way to removing it as an option
- now there's a single flow for processing actor input, branching based on message type - still work to do on simplifying quit pathway (better now!) and removing dead code - still some problems with TUI signaling via the output port
- got rid of extra async that was slowing down quitting - TUI now quits if it gets QUIT in reply on nexus control port also (probably good to leave in quit option on other port, too) - direct send of text to TUI doesn't seem to be working, though - TUI logging needs to know log pull port (not available at spinup)
- quit now works well - tui sends "ready" on startup and prints "Awaiting input:" - "QUIT" is now broadcast from quit path, not reply on signal port
- this makes sure TUI doesn't try to "phone home" to Nexus and send a ready signal during app testing
- previously, we only published logging sub port; actors couldn't post directly to logger without being spawned from nexus - now we pick pub port at runtime from cli; this allows, e.g., TUI and GUI(s) access to logger as well - lots of updates to tests
- still need to verify TUI logging works, but nothing is throwing an error - still don't like cli.py names for logging ports, but pub and pull are reasonable internal names
- make sure you sanitize your ports correctly!
- comms between GUI and Nexus appear to be working - current troubles are with reading data and processing actor errors
- need to guard against TimeoutError when we try to get data - fixing some other bugs from previous ways of doing things
- new load_data function searches `sys.path` for a file given only relative file path
needed to overload runStep to call update on the GUI
this comports with new API in working demos
we now handle fork and spawn similarly enough that we don't need a special actor here any more
…er run on my end.
draelos
approved these changes
Nov 17, 2025
Collaborator
draelos
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tweaked a few minor things but everything is essentially addressed from earlier requested changes, besides things we will address in future PRs.
This was referenced Nov 18, 2025
Closed
Closed
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.
Based on @rwschonberg's #184, but with substantial simplifications.
nexus.py, including removal of all special-casing for GUI and TUI.demos/bubblewrapto use new 0MQ actors. This establishes a new pattern for future GUIs to adopt.