streamlit-text-annotation is a simple streamlit component for displaying and editing text annotations.
Project description
# streamlit-text-annotation
streamlit-text-annotation is a simple streamlit component for displaying and editing text annotations.
Its display functions are similar to [st-annotated-text](https://github.com/tvst/st-annotated-text), with the following added functions:
- support for multiple labels on the same token
- optional CSS style customization for each label
- automatic distinct color assignment (can be overridden with CSS styles)
- horizonal and vertical label layouts
Its (optional) editing functions allow users to easily add or delete multi-label annotations.
This component is built on [streamlit-component-template-vue](https://github.com/andfanilo/streamlit-component-template-vue).
# Installation
```
pip install streamlit-text-annotation
```
## Parameters
The text_annotation function accepts the following parameters:
- tokens (required): an array of token objects whose properties include 'text' (required) and 'labels' (optional), in the following format:
```
[
{ text: "Text1"},
{ text: "Text2", labels: ["Label1", "Label2"] },
]
```
- labels (optional, default=[]): an array of label objects whose properties include 'text' (required) and 'style' (optional), in the following format:
```
[
{"text": "Pronoun"},
{"text": "Verb", "style": {
"color": "green",
"background-color": "white",
"font-size": "8px",
"font-weight": "900",
}}
]
```
- allowEditing (optional, default=false): boolean; set to true to allow editing (edit mode) or false to disallow (display mode)
- labelOrientation (optional, default="vertical"): whether to display the labels vertically ("vertical") or horizontally ("horizontal")
- collectLabelsFromTokens (optional, default=true): whether to add labels from existing token labels (defined in the tokens array) to the labels array if not found
## Examples
```
import streamlit as st
from streamlit_text_annotation import text_annotation
data1 = {
"tokens": [
{"text": "He", "labels": ["Person"]},
{"text": "loves"},
{"text": "his"},
{"text": "dog", "labels": ["Animal", "Pet"]},
],
"labels": [
{"text": "Person"},
{"text": "Action"},
{"text": "Animal"},
]
}
st.subheader("Display Mode:")
left, right = st.columns(2)
with left:
st.text("Vertical labels:")
text_annotation(data1)
with right:
st.text("Horizontal labels:")
data1["labelOrientation"] = "horizontal"
text_annotation(data1)
data2 = {
"allowEditing": True,
"tokens": [
{"text": "He", "labels": ["Pronoun", "Person"]},
{"text": "loves", "labels": ["Action"]},
{"text": "his"},
{"text": "dog", "labels": ["Animal"]},
],
"labels": [
{"text": "Pronoun", "style": {
"color": "red",
"background-color": "white",
"font-size": "8px",
"border": "3px dashed red",
}},
{"text": "Verb", "style": {
"color": "green",
"background-color": "white",
"font-size": "8px",
"font-weight": "900",
}},
{"text": "Noun", "style": {
"color": "blue",
"background-color": "white",
"font-size": "8px",
}},
{"text": "Person"},
{"text": "Animal"},
]
}
st.subheader("Edit Mode:")
data = text_annotation(data2)
if data:
"Returned data:", data
```
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file streamlit-text-annotation-0.1.5.tar.gz.
File metadata
- Download URL: streamlit-text-annotation-0.1.5.tar.gz
- Upload date:
- Size: 518.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4cb982d76db14c96041c1cfd2cf71349407efbb85594ab159ee0b3347b6b129d
|
|
| MD5 |
97d2484281d9e09796429e5d9f3f14ad
|
|
| BLAKE2b-256 |
e3b1385e2a4ddb2c863968dd603ff7fda8753fe5ad407f7d5bf810e6caaa9202
|
File details
Details for the file streamlit_text_annotation-0.1.5-py3-none-any.whl.
File metadata
- Download URL: streamlit_text_annotation-0.1.5-py3-none-any.whl
- Upload date:
- Size: 523.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f49d7e7d023c71e698f59c8ad8139814c47536e66d1267be43f41c6e99ccaf0
|
|
| MD5 |
15e2f7f3eb2a1550c4865c9e68d923c3
|
|
| BLAKE2b-256 |
ed94cc38822f5f7bd67576a922f0a57ee44fa607c4068ff1ba66cd324b4af446
|