pw_console: ptpython repl, execution and display

Enables a ptpython based repl in the ReplPane. User repl code is
executed in it's own thread with stdout and stderr patched to
capture output.

Change-Id: I005481f1ecd6805ce9a74fbf57ff0f2317b9d2aa
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/48960
Pigweed-Auto-Submit: Anthony DiGirolamo <tonymd@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Reviewed-by: Joe Ethier <jethier@google.com>
11 files changed
tree: d3286602d5fa46176ad2eb7d1b5bde9ad9a45d25
  1. build_overrides/
  2. docker/
  3. docs/
  4. pw_allocator/
  5. pw_analog/
  6. pw_arduino_build/
  7. pw_assert/
  8. pw_assert_basic/
  9. pw_assert_log/
  10. pw_base64/
  11. pw_bloat/
  12. pw_blob_store/
  13. pw_boot_armv7m/
  14. pw_build/
  15. pw_bytes/
  16. pw_checksum/
  17. pw_chrono/
  18. pw_chrono_embos/
  19. pw_chrono_freertos/
  20. pw_chrono_stl/
  21. pw_chrono_threadx/
  22. pw_cli/
  23. pw_console/
  24. pw_containers/
  25. pw_cpu_exception/
  26. pw_cpu_exception_cortex_m/
  27. pw_docgen/
  28. pw_doctor/
  29. pw_env_setup/
  30. pw_function/
  31. pw_fuzzer/
  32. pw_hdlc/
  33. pw_hex_dump/
  34. pw_i2c/
  35. pw_interrupt/
  36. pw_interrupt_cortex_m/
  37. pw_kvs/
  38. pw_libc/
  39. pw_log/
  40. pw_log_basic/
  41. pw_log_multisink/
  42. pw_log_null/
  43. pw_log_rpc/
  44. pw_log_sink/
  45. pw_log_tokenized/
  46. pw_malloc/
  47. pw_malloc_freelist/
  48. pw_metric/
  49. pw_minimal_cpp_stdlib/
  50. pw_module/
  51. pw_multisink/
  52. pw_package/
  53. pw_persistent_ram/
  54. pw_polyfill/
  55. pw_preprocessor/
  56. pw_presubmit/
  57. pw_protobuf/
  58. pw_protobuf_compiler/
  59. pw_random/
  60. pw_result/
  61. pw_ring_buffer/
  62. pw_router/
  63. pw_rpc/
  64. pw_snapshot/
  65. pw_span/
  66. pw_status/
  67. pw_stm32cube_build/
  68. pw_stream/
  69. pw_string/
  70. pw_sync/
  71. pw_sync_baremetal/
  72. pw_sync_embos/
  73. pw_sync_freertos/
  74. pw_sync_stl/
  75. pw_sync_threadx/
  76. pw_sys_io/
  77. pw_sys_io_arduino/
  78. pw_sys_io_baremetal_lm3s6965evb/
  79. pw_sys_io_baremetal_stm32f429/
  80. pw_sys_io_stdio/
  81. pw_target_runner/
  82. pw_thread/
  83. pw_thread_embos/
  84. pw_thread_freertos/
  85. pw_thread_stl/
  86. pw_thread_threadx/
  87. pw_tokenizer/
  88. pw_tool/
  89. pw_toolchain/
  90. pw_trace/
  91. pw_trace_tokenized/
  92. pw_transfer/
  93. pw_unit_test/
  94. pw_varint/
  95. pw_watch/
  96. pw_web_ui/
  97. targets/
  98. third_party/
  99. .bazelignore
  100. .bazelrc
  101. .clang-format
  102. .eslintrc.json
  103. .gitattributes
  104. .gitignore
  105. .gn
  106. .prettierrc.js
  107. .pylintrc
  108. activate.bat
  109. AUTHORS
  110. bootstrap.bat
  111. bootstrap.sh
  112. BUILD
  113. BUILD.gn
  114. BUILDCONFIG.gn
  115. CMakeLists.txt
  116. LICENSE
  117. modules.gni
  118. OWNERS
  119. package.json
  120. PW_PLUGINS
  121. README.md
  122. tsconfig.json
  123. WORKSPACE
  124. yarn.lock
README.md

See our website: http://pigweed.dev