Changing RPC constants on proxy does not change the constants on the real object
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- python
- Domain
- distributed-systems
Research direction
Start in qmi/core/rpc.py by tracing the existing RPC method-call and lock request/reply handling through QMI_RpcFuture, _RpcThread, and RpcObjectManager. Add the corresponding constant request/reply flow, then update the unit tests, RPC documentation, and CHANGELOG.md. Done means changing a listed proxy constant also updates the real object's value for internal calls.
Written by the indexing model from the issue text.
Description
Description
The _rpc_constants class variable can be used in all QMI_RpcObjects to expose the class variables of the real object to its proxy object. This also means that the class variable value can be changed by doing TheProxyObjectToRealObject.variable_x = new_value, if it was defined as _rpc_constants = ["variable_x"] before the __init__ method in the real object (let's define it as RealObject(QMI_RpcObject).
The idea of the "_rpc_constants" is to stay "constant" by name, but at times we would like to change this "constant". For example when we notice some timeout becomes too short for some reason and we want to extend it without having to modify the real object itself. If we only use the proxy of the real object for the new value, it is fine. But we often need the real object's value in internal calls of the real object.
At the moment QMI lacks the forwarding of constant value change to the real object from the proxy. We need to make request and reply message classes, sending and handling of constant RPC requests in QMI_RpcFuture, and pushing and handling them in _RpcThread, and handling it in RpcObjectManager. These should be done similarly to the respective RPC method call requests and also lock requests.
Best approach is probably to create "constant" versions of QMI_XxxRpcRequest|ReplyMessage classes and see where they have been used for methods and locking, and add "constant" version of the use cases there.
Affected components
qmi.core
Files to be changed
qmi/core/rpc.pyCHANGELOG.md- Documentation about RPC calls -> add that constants can be changed too.
- Unit-tests
- Dominant language
- Python
- Stars
- 25
- Forks
- 9
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from QuTech-Delft/QMI
-
Difficulty 4/5 3-5 days Newbie friendliness 58/100
QuTech-Delft/QMI#218 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
QuTech-Delft/QMI#185 ·
-
blocked enhancement
Difficulty 4/5 3-5 days Newbie friendliness 25/100
QuTech-Delft/QMI#137 ·
-
QMI driver
Difficulty 5/5 Over a week Newbie friendliness 30/100
QuTech-Delft/QMI#136 ·
-
blocked enhancement
Difficulty 4/5 3-5 days Newbie friendliness 25/100
QuTech-Delft/QMI#135 · 1 comment ·
All issues in QuTech-Delft/QMI
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
bancolombia/sentinel#23 ·
-
test md OpenCI
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·
-
bug client
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100