[roll third_party/pigweed] pw_rpc: Python client improvements

- Use the Call object directly as the context object. This is simpler
  and makes cancelling prior calls easier.
- Return the previous context when a duplicate RPC is called.
- Cancel the prior RPC call when the same RPC is called again on the
  same channel.
- Update the response iteration API.
  - Don't use "block" since it is redundant with timeout_s=0.
  - Accept optional "count" arg for how many responses to receive.
  - Don't cancel the RPC if iteration fails. If there is a server error,
    the RPC will be terminated anyway. The user may cancel directly on
    the call object or by using it in a with block.
  - Remove accidental get_responses on client streaming RPCs.
- Propagate exceptions from user callbacks so they aren't just logged.
- Add unit and integration tests.

Original-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/56553

https://pigweed.googlesource.com/pigweed/pigweed
third_party/pigweed Rolled-Commits: 1a88725edb3e6ef..420af4b4688268c
Roller-URL: https://ci.chromium.org/b/8838708703912662865
Cq-Cl-Tag: roller-builder:pigweed-experimental-roller
Cq-Cl-Tag: roller-bid:8838708703912662865
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I704e993c4e7bd6203985d7d3a158ba1cdb99bb93
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/57341
Bot-Commit: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com>
Commit-Queue: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com>
1 file changed
tree: 5b7c375c8a4d67026476dbaa75091359dd2138a9
  1. applications/
  2. build_overrides/
  3. pw_board_led/
  4. pw_board_led_arduino/
  5. pw_board_led_host/
  6. pw_board_led_stm32cube/
  7. pw_board_led_stm32f429i_disc1/
  8. pw_spin_delay/
  9. pw_spin_delay_arduino/
  10. pw_spin_delay_host/
  11. pw_spin_delay_stm32cube/
  12. pw_spin_delay_stm32f429i_disc1/
  13. pw_sys_io_stm32cube/
  14. targets/
  15. third_party/
  16. tools/
  17. .gitattributes
  18. .gitignore
  19. .gitmodules
  20. .gn
  21. activate.bat
  22. banner.txt
  23. bootstrap.bat
  24. bootstrap.sh
  25. BUILD.gn
  26. BUILDCONFIG.gn
  27. env_setup.json
  28. navbar.md
  29. PW_PLUGINS
  30. README.md
README.md

Pigweed Experimental

This repository contains experimental pigweed modules.

Repository setup

Clone this repo with --recursive to get all required submodules.

git clone --recursive https://pigweed.googlesource.com/pigweed/experimental

This will pull the Pigweed source repository into third_party/pigweed. If you already cloned but forgot to --recursive run git submodule update --init to pull all submodules.