ArgLab / ArgLab/writing_observer
Communication Protocol Second pass
- Dominant language
- Python
- Stars
- 12
- Forks
- 11
- PR merge metrics
- No merged PRs in 30d
Description
We've taken an initial pass at the communication protocol. Anything found to be bugged, not yet implemented, or any other items please leave here.
Starting with some of the TODO in the codebase:
- [ ] Verify structure of request from client before passing to Communication Protocol
- [x] Allow some way of specifying the server sleep time
- [ ] General LO traceback serialization/deserialization
- [x] Implement the proper handle_keys (replace `handle_hack_keys`)
- [ ] Pass KVS to internal Select (`handle_select`)
- [x] Catch all errors where appropriate (mainly for the `get_nested_dict_value`)
- [ ] Replace `_has_error` search algorithm (currently DFS)
- [ ] Determine appropriate naming scheme in and out (the user says they want `[x, y]` from `[wo]`, they probably expect to see `wo.x` and `wo.y` after; however, we actually see `wo.x_endpoint` returned)
- [ ] Clean up Dash code
- [x] Create JS query converter
- [x] Fix `communication_protocol/util.py:get_nested_dict_value` to allow for fetching values of `None` without raising an error
- [ ] Rename `q.variable()` to something else, perhaps `q.node()` or maybe `q.substitute_node()`. The current name causes some confusion
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading communication_protocol/util.py and the communication protocol code around handle_select, then review each unchecked TODO in the issue. Done means the remaining protocol verification, serialization, naming, algorithm, and cleanup items have been addressed and their behavior verified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, python
- Domain
- api, backend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100