Searchable SelectionList
Add search to Textual's SelectionList.
- Selectable items can be filtered by substring.
- Select one or multiple items.
- Search is case-insensitive.
- Title and description can be customized.
Installation
pip install textual-searchable-selectionlist
Usage
from textual_searchable_selectionlist.options import SelectionStrategy
from textual_searchable_selectionlist.select import select, select_enum
selected = select(
['John', 'Jane', 'James'],
selection_strategy=SelectionStrategy.MULTIPLE,
search_title='Select people',
)
# Enums
# class Color(Enum):
# RED = 'red'
# GREEN = 'green'
#
# selected_colors = select_enum(Color, selection_strategy=SelectionStrategy.ONE)
Events and callbacks
Use selected_callback when embedding the widget, or listen for the
SearchableListWidget.Selected message in your app.
from textual.app import App, ComposeResult
from textual_searchable_selectionlist.options import SelectionStrategy
from textual_searchable_selectionlist.searchable_list_widget import SearchableListWidget
class MyApp(App):
def compose(self) -> ComposeResult:
yield SearchableListWidget(
"Alpha",
"Beta",
"Gamma",
selection_strategy=SelectionStrategy.ONE,
selected_callback=self._on_selected_callback,
)
def _on_selected_callback(self, selected: list[str]):
self.log(f"Callback selected: {selected}")
def on_searchable_list_widget_selected(
self, event: SearchableListWidget.Selected
):
self.log(f"Event selected: {event.selected}")
Development and testing
Make sure uv is installed globally.
There are currently no automated tests. Manual testing can be done by running:
python tests/manual/searchable_selection_list_select.py
Metadata
Release files for textual-searchable-selectionlist 0.0.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| textual_searchable_selectionlist-0.0.8.tar.gz | 8.8 kB | Without provenance | Details for textual_searchable_selectionlist-0.0.8.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| textual_searchable_selectionlist-0.0.8-py3-none-any.whl | Python 3 | none | any | Details for textual_searchable_selectionlist-0.0.8-py3-none-any.whl |
Total release size: 20.2 kB
Release files / textual_searchable_selectionlist-0.0.8.tar.gz
| Download URL | textual_searchable_selectionlist-0.0.8.tar.gz |
|---|---|
| Size | 8.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6c9e6e2f4e380a8b91f5e43a8d29ddc3089c1ca1e52746f9648af2e1aad5e9dd
|
|
BLAKE2b-256 checksum How to use checksums |
fc8ff0a56f8a9fdb3a6a99fc9f18d9822c1eb9ab6e28c6a10d4a0a768dba5130
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / textual_searchable_selectionlist-0.0.8-py3-none-any.whl
| Download URL | textual_searchable_selectionlist-0.0.8-py3-none-any.whl |
|---|---|
| Size | 11.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
05cf9dbd452f3b2c460eeba0f64a3841741736a1f72436460c3281e3ffef989f
|
|
BLAKE2b-256 checksum How to use checksums |
ae457e3ac82b07c4cd8d5042added7588804e986d0827fc12226240f5cab0f63
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for textual-searchable-selectionlist 0.0.8
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.