Files
pyscript/docs/reference/elements/py-repl.md
Jeff Glass ef793aecf3 Add REPL plugin hooks; Add output, output-mode, stderr attributes (#1106)
* Add before, after REPL hooks

* Re-introduce 'output-mode' attribute for py-repl

* Add plugin execution tests

* Documentation

* Changelog

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: mariana <marianameireles@protonmail.com>
2023-03-22 20:19:22 -05:00

2.0 KiB

<py-repl>

The <py-repl> element provides a REPL(Read Eval Print Loop) to evaluate multi-line Python and display output.

Attributes

attribute type default description
auto-generate boolean Auto-generates REPL after evaluation
output-mode string "" Determines whether the output element is cleared prior to writing output
output string The id of the element to write stdout and stderr to
stderr string The id of the element to write stderr to

auto-generate

If a <py-repl> tag has the auto-generate attribute, upon execution, another <pr-repl> tag will be created and added to the DOM as a sibling of the current tag.

output-mode

By default, the element which displays the output from a REPL is cleared (innerHTML set to "") prior to each new execution of the REPL. If output-mode == "append", that element is not cleared, and the output is appended instead.

output

The ID of an element in the DOM that stdout (e.g. print()), stderr, and the results of executing the repl are written to. Defaults to an automatically-generated <div> as the next sibling of the REPL itself.

stderr

The ID of an element in the DOM that stderr will be written to. Defaults to None, though writes to stderr will still appear in the location specified by output.

Examples

<py-repl> element set to auto-generate

<py-repl auto-generate="true"> </py-repl>

<py-repl> element with output

The following will write "Hello! World!" to the div with id replOutput.

<div id="replOutput"></div>
<py-repl output="replOutput">
    print("Hello!")
    hello = "World!"
    hello
</py-repl>

Note that if we print from the REPL (or otherwise write to sys.stdout), the output will be printed in the py-terminal if is enabled.