blob: 65c5558f6d2e2bb47260d93648b88ea35fa3e73e [file] [log] [blame]
.. _module-pw_console:
----------
pw_console
----------
The Pigweed Console provides a Python repl (read eval print loop) using
`ptpython`_ and a log message viewer in a single-window terminal based
interface. It is designed to be a replacement for `IPython's embed()`_ function.
.. warning::
The Pigweed Console is under heavy development. A user manual and usage
information will be documented as features near completion.
Goals
=====
``pw_console`` is a complete solution for interacting with hardware devices
using :ref:`module-pw_rpc` over a :ref:`module-pw_hdlc` transport.
The repl allows interactive RPC sending while the log viewer provides immediate
feedback on device status.
Features
^^^^^^^^
- Interactive Python repl and log viewer in a single terminal window.
- Easily embeddable within a project's own custom console. This should allow
users to define their own transport layer.
- Log viewer with searching and filtering.
Contributing
============
- All code submissions to ``pw_console`` require running the
:ref:`module-pw_console-testing`.
- Commit messages should include a ``Testing:`` line with the steps that were
manually run.
Guides
======
.. toctree::
:maxdepth: 1
embedding
testing
internals
.. _IPython's embed(): https://ipython.readthedocs.io/en/stable/interactive/reference.html#embedding
.. _IPython: https://ipython.readthedocs.io/
.. _prompt_toolkit: https://python-prompt-toolkit.readthedocs.io/
.. _ptpython: https://github.com/prompt-toolkit/ptpython/