Listpick is a powerful TUI data tool for creating TUI apps or viewing/comparing tabulated data.
Project description
listpick
listpick is a powerful TUI data tool for viewing, editing and operating upon tabulated data; can be used to build TUI applications, generate data columns, or function as a command-line utility.
NOTE: listpick is still in development.
Quickstart
Install listpick:
python -m pip installl "listpick[full]"
Create a Picker:
from listpick.listpick_app import Picker, start_curses, close_curses
stdscr = start_curses()
x = Picker(
stdscr,
items=[
["row zero column zero", "row zero column one"],
["row one column zero", "row one column one"]
],
header=["H0", "H1"],
cell_cursor=True,
)
x.run()
close_curses(stdscr)
Overview
The application allows you to:
- Select multiple items from different file types and input streams
- Delete individual items
- Highlight specific items for quick selection
- Filtering: supports regular expressions for row- and column-based filtering.
- Searching: supports regular expressions for row- and column-based searching.
- Sort data based on specified columns and sort-type
- Save and load data.
- Copy/paste selections to clipboard
- Generate rows from a list of commands in an input.toml file.
Examples
listpick as a command-line tool
listpick can be used as a command-line tool for tabulating command outputs:
df -h | listpick --stdin
Applications
Aria2TUI
Aria2TUI: TUI client for the aria2c download utility.
lpfman
lpfman: Terminal file manager with extensive column support.
Data generation from toml file
listpick -g ./listpick/examples/data_generation/video_duplicates.toml
-
From the list of commands in the toml file we generate the properties we will use to identify the duplicates.
-
In the example file we set the directory and get the files with a simle
eza(ls) command. We could also usefindorcatfrom a list of files. -
We get the SHA1 hash to identify identical files; we also get the size, duration, resolution, and bitrate so that we can identify a video duplicate that may have the same duration but a lower resolution.
Description
Key Features:
- File Input Support:
listpick -i ~/items.csv
- Text files (TSV, CSV)
- JSON
- XLSX
- ODS (OpenDocument Spreadsheet)
- Pickle
- Generate data based on an toml file with relevant commands to generate the rows.
listpick -g ./examples/data_generation/video_duplicates.toml
- See ./examples/
- Highlighting:
- Highlight specific strings for display purposes.
- E.g., when we search for a string we will highlight strings in the rows that match the search.
- Filtering and Sorting:
- Apply custom filters and sort criteria on the fly
- Modes:
- Default modes are supported so that a certain filter/search/sort can structure the data in a way that is easy to move between.
- Options:
- Along with returning the selected rows, the user can also return options.
- Input field with readline support
- Options select box
- Colour themes:
- Several colour themes are available
- Copy rows:
- 'y' to copy rows in various formats: CSV, TSV, python list
- Save data:
- Data can be saved so that it can be loaded with the -i flag.
- This is very helpful if your data generation takes a long time.
- Customisable keybinds:
- The Picker object takes a keys_dict variable which allows all keys to be customised. Default keys can be seen in src/listpick/ui/keys.py.
- Also allows the restriction of certain functions by not assigning a key.
- Dynamic or manual refresh of data:
- If a refresh_function is passed with auto_refresh=True then listpick will automatically refresh the data. - If a refresh_function is passed then one can also manually refresh by pressing f5.
- Notifications.
- Supports notifications upon certain events
- Visual options
- Display/hide title.
- Display/hide footer with selection information
- Display/hide columns
- Display/hide highlights
- Option to centre in cells, centre in terminal and centre rows vertically.
- Change settings on the fly.
- Press '~' to see list of display settings or press '`' to enter a command to change display settings.
- Change visual options
- Cycle through themes
- Centre data in cells or centre rows vertically
- Show/hide the footer
- Show/hide a specific column.
- Select a column
- Toggle auto-refresh
- Toggle highlights
- Pipe the data from the selected rows in the focussed column to a bash command ('|')
- By default when you press '|' it will fill the input field with
xargs. You can remove this if you like (^U). - For example, if you run
xargs -d '\n' -I {} notify-send {}to this it will display notifications containing the data from the current column - Useful for:
- Opening files with a specific application
xargs -d \n -I{} mpv {}will open the files in mpv - Dumping data.
xargs -d \n -I{} echo {} > ~/stuff.txt
- Opening files with a specific application
Support and Feedback
Feel free to request features. Please report any errors you encounter with appropriate context.
Project details
Release history Release notifications | RSS feed
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 listpick-0.1.16.17.tar.gz.
File metadata
- Download URL: listpick-0.1.16.17.tar.gz
- Upload date:
- Size: 83.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afb6e422029a665383706e61edf1c7faa455ef5e5360cc47b2de3ec12b6ad6a0
|
|
| MD5 |
a11a5d0716f85ad033772eb2aadfc507
|
|
| BLAKE2b-256 |
8b44fbc1ea9c12a707eabdba8a6a28addfa2d349be8bb3ede25330ddd08ed0ca
|
File details
Details for the file listpick-0.1.16.17-py3-none-any.whl.
File metadata
- Download URL: listpick-0.1.16.17-py3-none-any.whl
- Upload date:
- Size: 94.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14d157c511f97db9959c103021652ed79f330ffb6a16e9406a990857c3fdf4f2
|
|
| MD5 |
9f651b580c10909226ba35b21bf87d6f
|
|
| BLAKE2b-256 |
49dad15c5f1e988dc1b0adca4644ac7f1f3ecb43aab7017885833dd2f4e15eec
|