/streamlit-searchbox

Streamlit searchbox that dynamically updates and provides a list of suggestions based on a provided function

Primary LanguagePythonMIT LicenseMIT

streamlit-searchbox


A streamlit custom component providing a searchbox with autocomplete.

Example

Installation

pip install streamlit-searchbox

Overview

Create a searchbox component and pass a search_function that accepts a str searchterm. The searchbox is triggered on user input, calls the search function for new options and redraws the page via st.experimental_rerun().

You can either pass a list of arguments, e.g.

import wikipedia
from streamlit_searchbox import st_searchbox

# function with list of labels
def search_wikipedia(searchterm: str) -> List[any]:
    return wikipedia.search(searchterm) if searchterm else []


# pass search function to searchbox
selected_value = st_searchbox(
    search_wikipedia,
    key="wiki_searchbox",
)

This example will call the Wikipedia Api to reload suggestions. The selected_value will be one of the items the search_wikipedia function returns, the suggestions shown in the UI components are a str representation. In case you want to provide custom text for suggestions, pass a Tuple.

def search(searchterm: str) -> List[Tuple[str, any]]:
    ...

Usage

To customize the searchbox you can pass the following arguments:

search_function: Callable[[str], List[any]]

Function that will be called on user input

placeholder: str = "Search ..."

Placeholder for empty searches shown within the component.

label: str = None

Label shown above the component.

default: any = None

Default return value in case nothing was submitted or the searchbox cleared.

clear_on_submit: bool = False

Automatically clear the input after selection.

key: str = "searchbox"

Streamlit key for unique component identification.

Example

An example Streamlit app can be found here