Skip to main content

An editable text box for executing Python code live

Project description

ExecBox - Execute Python code from inside your Streamlit apps!

Execbox is basically a text editor plus exec().

Installation

First install Streamlit (of course!) then pip-install this library:

pip install streamlit
pip install st-execbox

Example usage

import streamlit as st
from st_execbox import execbox


# Draw a text editor and a "Run" button. When you press "Run", the code in the editor executes!
execbox()


# Makes the code run automatically on each keystroke.
execbox(autorun=False)


# Draw an execbox with some initial text.
execbox("""
a = 10
b = 20
st.write(a + b)
""")

Parameters

The execbox() function accepts any of the following arguments:

  • body (str. default: '')

    The initial code to show in the execbox.

  • button_label (str. default: 'Run')

    The label to use for the "Run" button.

  • autorun (bool. default: False)

    Whether the code should execute with each keystroke.

  • height (int or None. default: None)

    The height of the execbox, in pixels. If None, calculates the height smartly to fill the content and a couple more lines.

  • line_numbers (bool. default: False)

    Whether to show line numbers.

  • key (str or None. default: None)

    An optional string to use as the unique key for the widget. If this is omitted, a key will be generated for the widget based on its content. Multiple widgets of the same type may not share the same key.

To-do

Just one to-do:

  • Write tests! Contributions accepted :wink:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

st-execbox-1.0.0.tar.gz (3.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page