The review's completeness check found the def-time capture pattern was not yet applied to every name the reply/settlement paths resolve at call time: - _decode_json_plain now also captures isinstance/str/list. - read_frame/read_frame_async capture len; read_frame_async captures asyncio.get_event_loop. - send_done uses _run's bound _str/_isinstance for its frame-shape check. - The reply pump's frame reader is a bound method captured by _run BEFORE the program runs and passed into _pump_replies, so a rebind of the class attribute cannot redirect it. The decode-rebind regression test still pins the _decode_json_plain rebind; rebinding builtins (len/isinstance/list/str) in a test is not viable because the Python runtime itself resolves them implicitly. |
||
|---|---|---|
| .. | ||
| bootstrap.py | ||
| protocol.py | ||