Skip to main content

Add search to Textual SelectionList.

Project description

Searchable SelectionList

image Project License - MIT

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}")

Testing

There are currently no automated tests. Manual testing can be done by running:

python tests/manual/searchable_selection_list_select.py

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

textual_searchable_selectionlist-0.0.5.tar.gz (22.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

textual_searchable_selectionlist-0.0.5-py2.py3-none-any.whl (10.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file textual_searchable_selectionlist-0.0.5.tar.gz.

File metadata

File hashes

Hashes for textual_searchable_selectionlist-0.0.5.tar.gz
Algorithm Hash digest
SHA256 a99a7aba0ac07912b2e010cec73d297800b886331cf4fbf68aa6dc8587c325d2
MD5 36e72e800a6f32b17bac59d6e7d8741c
BLAKE2b-256 2574bfdb2f3a819acff7ecf6d6655068016bb17216f7a802c90f55057d8ecc29

See more details on using hashes here.

File details

Details for the file textual_searchable_selectionlist-0.0.5-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for textual_searchable_selectionlist-0.0.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0f48f734eedabd9f35870e0f3a4dc057e7a4ca7cab3fe1a4872ab5352b555c86
MD5 cca190e36d735a3d4116aefd80c3fc75
BLAKE2b-256 97203e9111dfc0f0d40f085161e77dc38eada4346337d0ecf05fc915772db234

See more details on using hashes here.

Supported by

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