listpick 0.1.15.19__py3-none-any.whl → 0.1.16.17__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: listpick
3
- Version: 0.1.15.19
3
+ Version: 0.1.16.17
4
4
  Summary: Listpick is a powerful TUI data tool for creating TUI apps or viewing/comparing tabulated data.
5
5
  Home-page: https://github.com/grimandgreedy/listpick
6
6
  Author: Grim
@@ -43,23 +43,19 @@ Dynamic: summary
43
43
 
44
44
  # listpick
45
45
 
46
- listpick is a TUI tool which displays a tabulated list of rows and allows the user to operate upon these rows--select, copy, pipe. A very simple concept but also, I hope, a powerful tool that will make it easier for people to develop TUI apps.
47
-
48
- Rows of data can be viewed, selected, generated, saved, loaded, refreshed, modified or copied to the clipboard. Easy to integrate into your project by creating a `menu = Picker(stdscr, items:list[list[str]])` and then the menu will be displayed by running `menu.run()`.
49
-
50
- It works great as the backend for a TUI application and can also be used as a standalone data viewer.
46
+ 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.
51
47
 
52
48
  **NOTE**: listpick is still in development.
53
49
 
54
50
  # Quickstart
55
51
 
56
- Install listpick
52
+ Install listpick:
57
53
 
58
54
  ```
59
55
  python -m pip installl "listpick[full]"
60
56
  ```
61
57
 
62
- Create a picker object to display rows:
58
+ Create a Picker:
63
59
 
64
60
  ```
65
61
  from listpick.listpick_app import Picker, start_curses, close_curses
@@ -72,18 +68,13 @@ x = Picker(
72
68
  ["row zero column zero", "row zero column one"],
73
69
  ["row one column zero", "row one column one"]
74
70
  ],
75
- header=["H0", "H1"]
71
+ header=["H0", "H1"],
72
+ cell_cursor=True,
76
73
  )
77
74
  x.run()
78
75
 
79
76
  close_curses(stdscr)
80
77
 
81
- ```
82
- Use the listpick binary to generate and display rows based on a list of commands:
83
-
84
- ```
85
- wget https://raw.githubusercontent.com/grimandgreedy/listpick/refs/heads/master/examples/data_generation/list_files.toml
86
- listpick -g list_files.py
87
78
  ```
88
79
 
89
80
  ## Overview
@@ -102,31 +93,42 @@ The application allows you to:
102
93
  ## Examples
103
94
 
104
95
 
105
- ### Identify video duplicates (./examples/data_generation//video_duplicates.toml):
106
- ```python
107
- listpick -g ./examples/data_generation/video_duplicates.toml
96
+ ### listpick as a command-line tool
97
+
98
+ listpick can be used as a command-line tool for tabulating command outputs:
99
+ ```bash
100
+ df -h | listpick --stdin
108
101
  ```
109
- - From the list of commands in the toml file we generate the properties we will use to identify the duplicates.
110
102
 
111
- - In the example file we set the directory and get the files with a simle `eza` (`ls`) command. We could also use `find` or `cat` from a list of files.
103
+ <div align="center"> <img src="assets/listpick_df_example.png" alt="lpfman" width="90%"> </div>
112
104
 
105
+ ### Applications
113
106
 
114
- - 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.
107
+ #### Aria2TUI
108
+
109
+ [Aria2TUI](https://github.com/grimandgreedy/Aria2TUI): TUI client for the aria2c download utility.
110
+
111
+ <div align="center"> <img src="assets/aria2tui_graph_screenshot.png" alt="Aria2TUI" width="90%"> </div>
112
+
113
+ #### lpfman
114
+ [lpfman](https://github.com/grimandgreedy/lpfman): Terminal file manager with extensive column support.
115
115
 
116
- <div align="center"> <img src="assets/file_compare.png" alt="Video Compare" width="70%"> </div>
116
+ <div align="center"> <img src="https://github.com/grimandgreedy/lpfman/blob/master/assets/lpfman_02.png?raw=true" alt="lpfman" width="90%"> </div>
117
117
 
118
118
 
119
- ### Aria2TUI
119
+ ### Data generation from toml file
120
120
 
121
- [Aria2TUI](https://github.com/grimandgreedy/Aria2TUI) is implemented using listpick. This is a good example of how listpick can be used for menus, data viewing, and active data retrieval.
121
+ ```python
122
+ listpick -g ./listpick/examples/data_generation/video_duplicates.toml
123
+ ```
124
+ - From the list of commands in the toml file we generate the properties we will use to identify the duplicates.
122
125
 
123
- <div align="center"> <img src="assets/aria2tui_screenshot.png" alt="Aria2TUI" width="70%"> </div>
126
+ - In the example file we set the directory and get the files with a simle `eza` (`ls`) command. We could also use `find` or `cat` from a list of files.
124
127
 
125
- ### lpfman
126
- [lpfman](https://github.com/grimandgreedy/lpfman) is a basic file manager created for the purposes of illustrating how easy TUI apps can be developed with the use of listpick. In 20 minutes and <100 lines of code we made a very basic file manager.
127
128
 
128
- <div align="center"> <img src="assets/lpfman.png" alt="lpfman" width="70%"> </div>
129
+ - 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.
129
130
 
131
+ <div align="center"> <img src="assets/file_compare.png" alt="Video Compare" width="90%"> </div>
130
132
 
131
133
 
132
134
  ## Description
@@ -134,7 +136,7 @@ listpick -g ./examples/data_generation/video_duplicates.toml
134
136
  ### Key Features:
135
137
  1. **File Input Support:**
136
138
  ```python
137
- listpick -i ~/dn.pkl -t pkl
139
+ listpick -i ~/items.csv
138
140
  ```
139
141
  - Text files (TSV, CSV)
140
142
  - JSON
@@ -206,19 +208,6 @@ listpick -g ./examples/data_generation/video_duplicates.toml
206
208
  - Opening files with a specific application `xargs -d \n -I{} mpv {}` will open the files in mpv
207
209
  - Dumping data. `xargs -d \n -I{} echo {} > ~/stuff.txt`
208
210
 
209
- ## Overview
210
-
211
- The application allows you to:
212
- - Select multiple items from different file types and input streams
213
- - Navigate between selected items with arrow keys
214
- - Delete individual items
215
- - Highlight specific items for quick selection
216
- - Perform complex filtering operations
217
- - Sort data based on specified columns
218
- - Persistent save/load of selections
219
- - Copy/paste selections to clipboard
220
-
221
-
222
211
  ## Support and Feedback
223
212
 
224
213
  Feel free to request features. Please report any errors you encounter with appropriate context.
@@ -0,0 +1,43 @@
1
+ listpick/__init__.py,sha256=ExXc97-bibodH--wlwpQivl0zCNR5D1hvpvrf7OBofU,154
2
+ listpick/__main__.py,sha256=wkCjDdqw093W27yWwnlC3nG_sMRKaIad7hHHWy0RBgY,193
3
+ listpick/listpick_app.py,sha256=MHe0-HWbby5SNotbozL_7hcR0lrMYy5jujFoRoPiSuo,222741
4
+ listpick/pane/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ listpick/pane/get_data.py,sha256=l12mHIb6qoZWIfW5zZZY8K8EqNcyIcRiHgtRaM2CVGs,2735
6
+ listpick/pane/left_pane_functions.py,sha256=SVIW4Ef8uNPBQRk4hL67mEFL3pfgChSFZSMRz06CVzw,5543
7
+ listpick/pane/pane_functions.py,sha256=_dL9jHpd3sT0enL9H_bMcUsBlMELXdtP9dtKFSC2KPQ,5117
8
+ listpick/pane/pane_functions_1.py,sha256=_dL9jHpd3sT0enL9H_bMcUsBlMELXdtP9dtKFSC2KPQ,5117
9
+ listpick/pane/pane_utils.py,sha256=cnuzBH52wdWoKrHR6iMBF4N-uhwpXYpHDnrglk21pqg,2539
10
+ listpick/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
+ listpick/ui/build_help.py,sha256=wSGeE3tUVWP7D709mb1cDyRU2M0QKVg0mRyTFmcR3fo,11720
12
+ listpick/ui/draw_screen.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ listpick/ui/footer.py,sha256=NcdH1uO_ma91m0qCczyQZ3zGrexfkiEnwDf5E4tHSMk,15089
14
+ listpick/ui/help_screen.py,sha256=zbfGIgb-IXtATpl4_Sx7nPbsnRXZ7eiMYlCKGS9EFmw,5608
15
+ listpick/ui/input_field.py,sha256=1GUuzMl7P-uw5ijYUOQONMhAzAKoYXRax0-332OroLE,29971
16
+ listpick/ui/keys.py,sha256=7QpG8xEp7kBH9tObTzL-Cmw7i5HTvN6amA3Dd4FmMpE,14077
17
+ listpick/ui/picker_colours.py,sha256=PYWtJEbBCsiM-Gbm83vJiFoIwfKuJuP4SGKxpozszKY,15159
18
+ listpick/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ listpick/utils/clipboard_operations.py,sha256=ORdNm2kgGbfs51xJSvgJPERgoSmBgT11axuMkvSoP9A,3133
20
+ listpick/utils/config.py,sha256=MEnAZg2Rhfl38XofEIN0uoVAOY7I0ftc79Evk3fOiVw,1654
21
+ listpick/utils/dump.py,sha256=60YVIMNtBoYvWhmzfTJOsNGcetOvcCB3_T7yv-bYTPQ,3838
22
+ listpick/utils/filtering.py,sha256=59_YIEYRV0ovnjF4iyuShq276FMAx5gBD9m3mE9IqJg,1237
23
+ listpick/utils/generate_data.py,sha256=TCGwDrN49Xx33AdURpQRGi6Xi2uwjt96rEeWWYS8mFE,4649
24
+ listpick/utils/generate_data_multiprocessing.py,sha256=B797wFm7bSpoe0wb5C_q1J96ffVp3JCB5Lu4Rly8K8M,178
25
+ listpick/utils/generate_data_multithreaded.py,sha256=jI9kWgWegnumegQOnKxrJg854lGw59cOXm-IyzdpjQ8,7631
26
+ listpick/utils/generate_data_utils.py,sha256=Aw1uL4Feqm6-23K-PhQg232N5dQZ16RGNIF_dvTPbtQ,1009
27
+ listpick/utils/graphing.py,sha256=ugjAH8js_iH7hulg4SySxb_W_f8B6GhTaceN5i7DID4,6954
28
+ listpick/utils/keycodes.py,sha256=ZGkw1-4szxPnP81wj80r92L6_neIOlBBjQltEieCwnk,2696
29
+ listpick/utils/options_selectors.py,sha256=fQqTCAqRsrMhZwXUtsPBm47svkaUaeJqWsMW7Q4JTYY,3083
30
+ listpick/utils/paste_operations.py,sha256=7wDXLPlxUgA3CA99gwsm47juWGO2YQ9EJghW06yo9vI,1242
31
+ listpick/utils/picker_log.py,sha256=SW6GmjxpI7YrSf72fSr4O8Ux0fY_OzaSXUgTFdz6Xo4,805
32
+ listpick/utils/search_and_filter_utils.py,sha256=XxGfkyDVXO9OAKcftPat8IReMTFIuTH-jorxI4o84tg,3239
33
+ listpick/utils/searching.py,sha256=Xk5UIqamNHL2L90z3ACB_Giqdpi9iRKoAJ6pKaqaD7Q,3093
34
+ listpick/utils/sorting.py,sha256=WZZiVlVA3Zkcpwji3U5SNFlQ14zVEk3cZJtQirBkecQ,5329
35
+ listpick/utils/table_to_list_of_lists.py,sha256=XBj7eGBDF15BRME-swnoXyOfZWxXCxrXp0pzsBfcJ5g,12224
36
+ listpick/utils/user_input.py,sha256=L3ylI7nnuFM_TP1XKwpiKpxUSkNb2W5cr7mJjTmv_6E,4582
37
+ listpick/utils/utils.py,sha256=gwonigqPd8nSQBvN6lLDB68kwUzXqWALesZBja-cehU,13956
38
+ listpick-0.1.16.17.dist-info/licenses/LICENSE.txt,sha256=2mP-MRHJptADDNE9VInMNg1tE-C6Qv93Z4CCQKrpg9w,1061
39
+ listpick-0.1.16.17.dist-info/METADATA,sha256=_NIFHFBvzMzRwNXlPJG7CZa_PG0DmiL9D__ylQ_wJYQ,7144
40
+ listpick-0.1.16.17.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
41
+ listpick-0.1.16.17.dist-info/entry_points.txt,sha256=-QCf_BKIkUz35Y9nkYpjZWs2Qg0KfRna2PAs5DnF6BE,43
42
+ listpick-0.1.16.17.dist-info/top_level.txt,sha256=5mtsGEz86rz3qQDe0D463gGjAfSp6A3EWg4J4AGYr-Q,9
43
+ listpick-0.1.16.17.dist-info/RECORD,,
@@ -1,37 +0,0 @@
1
- listpick/__init__.py,sha256=ExXc97-bibodH--wlwpQivl0zCNR5D1hvpvrf7OBofU,154
2
- listpick/__main__.py,sha256=wkCjDdqw093W27yWwnlC3nG_sMRKaIad7hHHWy0RBgY,193
3
- listpick/listpick_app.py,sha256=BlP61QjTueluizKMslb6Ir8SBXtpqKdAdlBI7s2ggNA,201685
4
- listpick/pane/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- listpick/pane/get_data.py,sha256=21PTDXt9HP-4vZV4QUM8sidTqDEaKnKCDshl3-cSRCo,2255
6
- listpick/pane/pane_functions.py,sha256=Hpc6wSFeiTmQTyO6n13muenarZMvzFw0OCmjJJy2lTY,3910
7
- listpick/pane/pane_utils.py,sha256=tMp8KlFng6ZQgNjd8iFrl1zWZLPXMH_Y1A_QeuQYAk0,2537
8
- listpick/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- listpick/ui/build_help.py,sha256=IpN4tX4U8ET3icRoTlF389VqVjVcPAon617vgstlPAc,10750
10
- listpick/ui/footer.py,sha256=OH27JLGvvq9TlUsI30ODG6cHvjm7NTGSbXvF6lN1qiY,15089
11
- listpick/ui/help_screen.py,sha256=zbfGIgb-IXtATpl4_Sx7nPbsnRXZ7eiMYlCKGS9EFmw,5608
12
- listpick/ui/input_field.py,sha256=ylf3fiLXdAD4pueHWfzIrlwaRb9f5zm8f1UGkEPBxgM,30539
13
- listpick/ui/keys.py,sha256=1NCsOPFxhNuVPbO5vflcArNZ1jbBBerPQ3oZUAZDyPs,13682
14
- listpick/ui/picker_colours.py,sha256=FFsyny_q0mGO6u7B1n7anuReBtP7Jw6LrgX5ycN-MRM,13413
15
- listpick/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
- listpick/utils/clipboard_operations.py,sha256=ORdNm2kgGbfs51xJSvgJPERgoSmBgT11axuMkvSoP9A,3133
17
- listpick/utils/config.py,sha256=MEnAZg2Rhfl38XofEIN0uoVAOY7I0ftc79Evk3fOiVw,1654
18
- listpick/utils/dump.py,sha256=60YVIMNtBoYvWhmzfTJOsNGcetOvcCB3_T7yv-bYTPQ,3838
19
- listpick/utils/filtering.py,sha256=59_YIEYRV0ovnjF4iyuShq276FMAx5gBD9m3mE9IqJg,1237
20
- listpick/utils/generate_data.py,sha256=7sv6JRhk0-Gcj4kOlkzx4qPNBJZ-GFWg9vM77GktzpI,3073
21
- listpick/utils/graphing.py,sha256=ugjAH8js_iH7hulg4SySxb_W_f8B6GhTaceN5i7DID4,6954
22
- listpick/utils/keycodes.py,sha256=ZGkw1-4szxPnP81wj80r92L6_neIOlBBjQltEieCwnk,2696
23
- listpick/utils/options_selectors.py,sha256=fQqTCAqRsrMhZwXUtsPBm47svkaUaeJqWsMW7Q4JTYY,3083
24
- listpick/utils/paste_operations.py,sha256=7wDXLPlxUgA3CA99gwsm47juWGO2YQ9EJghW06yo9vI,1242
25
- listpick/utils/picker_log.py,sha256=SW6GmjxpI7YrSf72fSr4O8Ux0fY_OzaSXUgTFdz6Xo4,805
26
- listpick/utils/search_and_filter_utils.py,sha256=XxGfkyDVXO9OAKcftPat8IReMTFIuTH-jorxI4o84tg,3239
27
- listpick/utils/searching.py,sha256=Xk5UIqamNHL2L90z3ACB_Giqdpi9iRKoAJ6pKaqaD7Q,3093
28
- listpick/utils/sorting.py,sha256=WZZiVlVA3Zkcpwji3U5SNFlQ14zVEk3cZJtQirBkecQ,5329
29
- listpick/utils/table_to_list_of_lists.py,sha256=XBj7eGBDF15BRME-swnoXyOfZWxXCxrXp0pzsBfcJ5g,12224
30
- listpick/utils/user_input.py,sha256=oyJZPAwA7UGAclPhdPL44tKnPIVNHWhX-tZEnCdBKC0,4318
31
- listpick/utils/utils.py,sha256=QptLnqT15Z3G7xoq-6Q8e4-aZRFClTdb3h0l42di11s,13810
32
- listpick-0.1.15.19.dist-info/licenses/LICENSE.txt,sha256=2mP-MRHJptADDNE9VInMNg1tE-C6Qv93Z4CCQKrpg9w,1061
33
- listpick-0.1.15.19.dist-info/METADATA,sha256=DEC_4b14QQUzZ-GF7Kh2llXoArGf3uk6sZKX4iVkt-A,8132
34
- listpick-0.1.15.19.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
35
- listpick-0.1.15.19.dist-info/entry_points.txt,sha256=-QCf_BKIkUz35Y9nkYpjZWs2Qg0KfRna2PAs5DnF6BE,43
36
- listpick-0.1.15.19.dist-info/top_level.txt,sha256=5mtsGEz86rz3qQDe0D463gGjAfSp6A3EWg4J4AGYr-Q,9
37
- listpick-0.1.15.19.dist-info/RECORD,,