Skip to main content

Streamlit autocomplete Textcomplete editor for HTMLTextAreaElement

Project description

Streamlit Textcomplete - Autocomplete text in any textarea

Streamlit Textcomplete is a custom Streamlit component designed to enhance text input fields with autocomplete functionality. It leverages the powerful textcomplete library to provide users with a seamless and intuitive autocomplete experience within Streamlit applications.

Demo

demo

Example Screencast

Features

  • Autocomplete for Text Areas: Enhance textarea in Streamlit with autocomplete functionality, making data input faster and more accurate.
  • Customizable Strategies: Define your own strategies for text autocomplete, including username mentions, emoji suggestions, and more.
  • Easy Integration: Seamlessly integrates with existing Streamlit applications with minimal setup.
  • Flexible and Extensible: Easily extend the component to support additional autocomplete strategies as per your application's needs.

Installation

To install Streamlit Textcomplete, run the following command in your terminal:

pip install streamlit-textcomplete

Usage

To use Streamlit Textcomplete in your Streamlit application, follow these steps:

  1. Import the [textcomplete] function from the package.
  2. Define your autocomplete (multiple) strategies.
  3. Define standard streamlit textarea but give it a defined label
  4. Initialize the textcomplete component with this label & your strategies.

Example:

import streamlit as st
from textcomplete import textcomplete, StrategyProps

original_label: str = "Textcomplete Example"
txt: str = st.text_area(
    label=original_label,
    key="st_text_area_1",
)
# Define your autocomplete strategies
username_strategy = StrategyProps(
    id="userFullName",
    match="\\B@(\\w*)$",
    search=async_search_function,  # Define your async search function as JS string
    replace="([fullName]) => `${fullName}`",
    template="([fullName]) => `🧑🏻 ${fullName}`",
)

# Initialize the textcomplete component
textcomplete(
    area_label=original_label,
    strategies=[username_strategy],
    max_count=5,
    # Additional options ...
)

Development

To contribute to the development of Streamlit Textcomplete, you can set up a development environment by cloning the repository and installing the dependencies.

git clone https://github.com/voznik/streamlit-textcomplete.git
cd streamlit-textcomplete
pip install -r requirements.txt

Testing

Run the tests to ensure everything is working as expected:

pytest

License

Streamlit Textcomplete is MIT licensed, as found in the LICENSE file.

Acknowledgments

  • This project is built using the Textcomplete library.
  • Special thanks to the Streamlit community for their support and contributions.

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

streamlit_textcomplete-0.2.0.tar.gz (124.9 kB view details)

Uploaded Source

Built Distribution

streamlit_textcomplete-0.2.0-py3-none-any.whl (130.0 kB view details)

Uploaded Python 3

File details

Details for the file streamlit_textcomplete-0.2.0.tar.gz.

File metadata

  • Download URL: streamlit_textcomplete-0.2.0.tar.gz
  • Upload date:
  • Size: 124.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.10.15 Linux/6.5.0-1025-azure

File hashes

Hashes for streamlit_textcomplete-0.2.0.tar.gz
Algorithm Hash digest
SHA256 861b93de5fba2e35b569a68201347bdaf4839034e488ab1ad85a91c7d134ebba
MD5 b9959d8336fb3c201be716fd57f89781
BLAKE2b-256 6689f5015b0d6745f9845aa17a66cd004976bd3b9a5041869e2ef67a7f5954c1

See more details on using hashes here.

File details

Details for the file streamlit_textcomplete-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for streamlit_textcomplete-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d18df56a61776b36345538dcdfbad1a8878a5590a5f1af604f3de3f4835ca4e3
MD5 f2a14386d7d97faed0776a21be8ef100
BLAKE2b-256 bc5f7110b2fa578afa4ab937777e1861bc3fc03811834f75b90704604f08e2a4

See more details on using hashes here.

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