ArgLab / ArgLab/writing_observer

Communication Protocol Second pass

Open
#84 7 comments 0 reactions 0 assignees View on GitHub
epoch
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.