visidata 2.11.1__py3-none-any.whl → 3.0.1__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.
Files changed (256) hide show
  1. visidata/__init__.py +72 -91
  2. visidata/_input.py +259 -42
  3. visidata/_open.py +84 -29
  4. visidata/_types.py +21 -3
  5. visidata/_urlcache.py +17 -4
  6. visidata/aggregators.py +78 -25
  7. visidata/apps/__init__.py +0 -0
  8. visidata/apps/vdsql/__about__.py +8 -0
  9. visidata/apps/vdsql/__init__.py +5 -0
  10. visidata/apps/vdsql/__main__.py +27 -0
  11. visidata/apps/vdsql/_ibis.py +748 -0
  12. visidata/apps/vdsql/bigquery.py +61 -0
  13. visidata/apps/vdsql/clickhouse.py +53 -0
  14. visidata/apps/vdsql/setup.py +40 -0
  15. visidata/apps/vdsql/snowflake.py +67 -0
  16. visidata/apps/vgit/__init__.py +13 -0
  17. {vgit → visidata/apps/vgit}/blame.py +5 -2
  18. {vgit → visidata/apps/vgit}/branch.py +31 -16
  19. {vgit → visidata/apps/vgit}/config.py +3 -3
  20. visidata/apps/vgit/diff.py +169 -0
  21. visidata/apps/vgit/gitsheet.py +161 -0
  22. {vgit → visidata/apps/vgit}/grep.py +6 -5
  23. visidata/apps/vgit/log.py +81 -0
  24. {vgit → visidata/apps/vgit}/main.py +18 -5
  25. {vgit → visidata/apps/vgit}/remote.py +8 -4
  26. visidata/apps/vgit/repos.py +71 -0
  27. {vgit → visidata/apps/vgit}/setup.py +6 -4
  28. visidata/apps/vgit/stash.py +69 -0
  29. visidata/apps/vgit/status.py +204 -0
  30. {vgit → visidata/apps/vgit}/statusbar.py +2 -0
  31. visidata/basesheet.py +63 -51
  32. visidata/canvas.py +208 -93
  33. visidata/choose.py +6 -6
  34. visidata/clean_names.py +29 -0
  35. visidata/clipboard.py +73 -17
  36. visidata/cliptext.py +220 -46
  37. visidata/cmdlog.py +88 -114
  38. visidata/color.py +142 -56
  39. visidata/column.py +121 -129
  40. visidata/ddw/input.ddw +74 -79
  41. visidata/ddw/regex.ddw +57 -0
  42. visidata/ddwplay.py +33 -14
  43. visidata/deprecated.py +77 -3
  44. visidata/desktop/visidata.desktop +7 -0
  45. visidata/editor.py +12 -6
  46. visidata/errors.py +6 -2
  47. visidata/experimental/__init__.py +0 -0
  48. visidata/experimental/diff_sheet.py +29 -0
  49. visidata/experimental/digit_autoedit.py +6 -0
  50. visidata/experimental/gdrive.py +89 -0
  51. visidata/experimental/google.py +37 -0
  52. visidata/experimental/gsheets.py +79 -0
  53. visidata/experimental/live_search.py +37 -0
  54. visidata/experimental/liveupdate.py +45 -0
  55. visidata/experimental/mark.py +133 -0
  56. visidata/experimental/noahs_tapestry/__init__.py +1 -0
  57. visidata/experimental/noahs_tapestry/tapestry.py +147 -0
  58. visidata/experimental/rownum.py +73 -0
  59. visidata/experimental/slide_cells.py +26 -0
  60. visidata/expr.py +8 -4
  61. visidata/extensible.py +22 -4
  62. visidata/features/__init__.py +0 -0
  63. visidata/features/addcol_audiometadata.py +42 -0
  64. visidata/features/addcol_histogram.py +34 -0
  65. visidata/features/canvas_save_svg.py +69 -0
  66. visidata/features/change_precision.py +46 -0
  67. visidata/features/cmdpalette.py +197 -0
  68. visidata/features/colorbrewer.py +363 -0
  69. visidata/{colorsheet.py → features/colorsheet.py} +17 -16
  70. visidata/features/command_server.py +105 -0
  71. visidata/features/currency_to_usd.py +70 -0
  72. visidata/{customdate.py → features/customdate.py} +2 -0
  73. visidata/features/dedupe.py +132 -0
  74. visidata/{describe.py → features/describe.py} +17 -15
  75. visidata/features/errors_guide.py +26 -0
  76. visidata/features/expand_cols.py +202 -0
  77. visidata/{fill.py → features/fill.py} +3 -1
  78. visidata/{freeze.py → features/freeze.py} +11 -6
  79. visidata/features/graph_seaborn.py +79 -0
  80. visidata/features/helloworld.py +10 -0
  81. visidata/features/hint_types.py +17 -0
  82. visidata/{incr.py → features/incr.py} +5 -0
  83. visidata/{join.py → features/join.py} +107 -53
  84. visidata/features/known_cols.py +21 -0
  85. visidata/features/layout.py +62 -0
  86. visidata/{melt.py → features/melt.py} +32 -21
  87. visidata/features/normcol.py +118 -0
  88. visidata/features/open_config.py +7 -0
  89. visidata/features/open_syspaste.py +18 -0
  90. visidata/features/ping.py +157 -0
  91. visidata/features/procmgr.py +208 -0
  92. visidata/features/random_sample.py +6 -0
  93. visidata/{regex.py → features/regex.py} +47 -31
  94. visidata/features/reload_every.py +55 -0
  95. visidata/features/rename_col_cascade.py +30 -0
  96. visidata/features/scroll_context.py +60 -0
  97. visidata/features/select_equal_selected.py +11 -0
  98. visidata/features/setcol_fake.py +65 -0
  99. visidata/{slide.py → features/slide.py} +77 -21
  100. visidata/features/sparkline.py +48 -0
  101. visidata/features/status_source.py +20 -0
  102. visidata/{sysedit.py → features/sysedit.py} +2 -1
  103. visidata/features/sysopen_mailcap.py +46 -0
  104. visidata/features/term_extras.py +13 -0
  105. visidata/{transpose.py → features/transpose.py} +5 -4
  106. visidata/features/type_ipaddr.py +73 -0
  107. visidata/features/type_url.py +11 -0
  108. visidata/{unfurl.py → features/unfurl.py} +9 -9
  109. visidata/{window.py → features/window.py} +2 -2
  110. visidata/form.py +50 -21
  111. visidata/freqtbl.py +81 -33
  112. visidata/fuzzymatch.py +414 -0
  113. visidata/graph.py +105 -33
  114. visidata/guide.py +200 -0
  115. visidata/help.py +75 -44
  116. visidata/hint.py +39 -0
  117. visidata/indexsheet.py +109 -0
  118. visidata/input_history.py +55 -0
  119. visidata/interface.py +58 -0
  120. visidata/keys.py +20 -16
  121. visidata/loaders/__init__.py +9 -0
  122. visidata/loaders/_pandas.py +61 -21
  123. visidata/loaders/api_airtable.py +70 -0
  124. visidata/loaders/api_bitio.py +102 -0
  125. visidata/loaders/api_matrix.py +148 -0
  126. visidata/loaders/api_reddit.py +306 -0
  127. visidata/loaders/api_zulip.py +249 -0
  128. visidata/loaders/archive.py +41 -7
  129. visidata/loaders/arrow.py +7 -7
  130. visidata/loaders/conll.py +49 -0
  131. visidata/loaders/csv.py +25 -7
  132. visidata/loaders/eml.py +3 -4
  133. visidata/loaders/f5log.py +1204 -0
  134. visidata/loaders/fec.py +325 -0
  135. visidata/loaders/fixed_width.py +2 -4
  136. visidata/loaders/frictionless.py +3 -3
  137. visidata/loaders/geojson.py +8 -5
  138. visidata/loaders/google.py +48 -0
  139. visidata/loaders/graphviz.py +4 -4
  140. visidata/loaders/hdf5.py +4 -4
  141. visidata/loaders/html.py +54 -12
  142. visidata/loaders/http.py +84 -30
  143. visidata/loaders/imap.py +20 -10
  144. visidata/loaders/jrnl.py +52 -0
  145. visidata/loaders/json.py +83 -29
  146. visidata/loaders/jsonla.py +74 -0
  147. visidata/loaders/lsv.py +15 -11
  148. visidata/loaders/mailbox.py +40 -0
  149. visidata/loaders/markdown.py +1 -3
  150. visidata/loaders/mbtiles.py +4 -5
  151. visidata/loaders/mysql.py +11 -13
  152. visidata/loaders/npy.py +7 -7
  153. visidata/loaders/odf.py +4 -1
  154. visidata/loaders/orgmode.py +428 -0
  155. visidata/loaders/pandas_freqtbl.py +14 -20
  156. visidata/loaders/parquet.py +62 -6
  157. visidata/loaders/pcap.py +3 -3
  158. visidata/loaders/pdf.py +4 -3
  159. visidata/loaders/png.py +19 -13
  160. visidata/loaders/postgres.py +9 -8
  161. visidata/loaders/rec.py +7 -3
  162. visidata/loaders/s3.py +342 -0
  163. visidata/loaders/sas.py +5 -5
  164. visidata/loaders/scrape.py +186 -0
  165. visidata/loaders/shp.py +6 -5
  166. visidata/loaders/spss.py +5 -6
  167. visidata/loaders/sqlite.py +68 -28
  168. visidata/loaders/texttables.py +1 -1
  169. visidata/loaders/toml.py +60 -0
  170. visidata/loaders/tsv.py +61 -19
  171. visidata/loaders/ttf.py +19 -7
  172. visidata/loaders/unzip_http.py +6 -5
  173. visidata/loaders/usv.py +1 -1
  174. visidata/loaders/vcf.py +16 -16
  175. visidata/loaders/vds.py +10 -7
  176. visidata/loaders/vdx.py +30 -5
  177. visidata/loaders/xlsb.py +8 -1
  178. visidata/loaders/xlsx.py +145 -25
  179. visidata/loaders/xml.py +6 -3
  180. visidata/loaders/xword.py +4 -4
  181. visidata/loaders/yaml.py +15 -5
  182. visidata/macros.py +129 -42
  183. visidata/main.py +119 -94
  184. visidata/mainloop.py +101 -155
  185. visidata/man/parse_options.py +2 -2
  186. visidata/man/vd.1 +302 -149
  187. visidata/man/vd.txt +291 -154
  188. visidata/memory.py +3 -3
  189. visidata/menu.py +104 -423
  190. visidata/metasheets.py +59 -141
  191. visidata/modify.py +78 -23
  192. visidata/motd.py +3 -3
  193. visidata/mouse.py +137 -0
  194. visidata/movement.py +43 -35
  195. visidata/optionssheet.py +99 -0
  196. visidata/path.py +113 -32
  197. visidata/pivot.py +73 -47
  198. visidata/plugins.py +65 -192
  199. visidata/pyobj.py +55 -205
  200. visidata/rename_col.py +20 -0
  201. visidata/save.py +37 -20
  202. visidata/search.py +54 -10
  203. visidata/selection.py +84 -5
  204. visidata/settings.py +162 -25
  205. visidata/sheets.py +239 -260
  206. visidata/shell.py +51 -21
  207. visidata/sidebar.py +162 -0
  208. visidata/sort.py +11 -4
  209. visidata/statusbar.py +114 -104
  210. visidata/stored_list.py +43 -0
  211. visidata/stored_prop.py +38 -0
  212. visidata/tests/benchmark.csv +52 -0
  213. visidata/tests/conftest.py +3 -3
  214. visidata/tests/test_cliptext.py +39 -0
  215. visidata/tests/test_commands.py +65 -7
  216. visidata/tests/test_edittext.py +2 -2
  217. visidata/tests/test_features.py +28 -0
  218. visidata/tests/test_menu.py +14 -0
  219. visidata/tests/test_path.py +13 -4
  220. visidata/text_source.py +53 -0
  221. visidata/textsheet.py +10 -3
  222. visidata/theme.py +44 -0
  223. visidata/themes/__init__.py +0 -0
  224. visidata/themes/ascii8.py +84 -0
  225. visidata/themes/asciimono.py +84 -0
  226. visidata/themes/light.py +17 -0
  227. visidata/threads.py +89 -40
  228. visidata/tuiwin.py +22 -0
  229. visidata/type_currency.py +22 -3
  230. visidata/type_date.py +31 -9
  231. visidata/type_floatsi.py +5 -1
  232. visidata/undo.py +17 -5
  233. visidata/utils.py +106 -23
  234. visidata/vdobj.py +28 -17
  235. visidata/windows.py +10 -0
  236. visidata/wrappers.py +9 -3
  237. visidata-3.0.1.data/data/share/applications/visidata.desktop +7 -0
  238. {visidata-2.11.1.data → visidata-3.0.1.data}/data/share/man/man1/vd.1 +302 -149
  239. {visidata-2.11.1.data → visidata-3.0.1.data}/data/share/man/man1/visidata.1 +302 -149
  240. visidata-3.0.1.data/scripts/vd2to3.vdx +9 -0
  241. {visidata-2.11.1.dist-info → visidata-3.0.1.dist-info}/METADATA +12 -8
  242. visidata-3.0.1.dist-info/RECORD +258 -0
  243. {visidata-2.11.1.dist-info → visidata-3.0.1.dist-info}/WHEEL +1 -1
  244. vgit/__init__.py +0 -1
  245. vgit/gitsheet.py +0 -164
  246. visidata/layout.py +0 -44
  247. visidata/misc.py +0 -5
  248. visidata-2.11.1.data/scripts/vgit +0 -9
  249. visidata-2.11.1.dist-info/RECORD +0 -155
  250. {vgit → visidata/apps/vgit}/__main__.py +0 -0
  251. {vgit → visidata/apps/vgit}/abort.py +0 -0
  252. /visidata/{repeat.py → features/repeat.py} +0 -0
  253. {visidata-2.11.1.data → visidata-3.0.1.data}/scripts/vd +0 -0
  254. {visidata-2.11.1.dist-info → visidata-3.0.1.dist-info}/LICENSE.gpl3 +0 -0
  255. {visidata-2.11.1.dist-info → visidata-3.0.1.dist-info}/entry_points.txt +0 -0
  256. {visidata-2.11.1.dist-info → visidata-3.0.1.dist-info}/top_level.txt +0 -0
visidata/man/vd.txt CHANGED
@@ -5,7 +5,7 @@ NAME
5
5
 
6
6
  SYNOPSIS
7
7
  vd [options] [input ...]
8
- vd [options] --play cmdlog [-w waitsecs] [--batch] [-o output]
8
+ vd [options] --play cmdlog [-w waitsecs] [--batch] [-i] [-o output]
9
9
  [field=value]
10
10
  vd [options] [input ...] +toplevel:subsheet:col:row
11
11
 
@@ -20,13 +20,11 @@ DESCRIPTION
20
20
  -w, --replay-wait=seconds
21
21
  wait seconds between commands
22
22
  -b, --batch replay in batch mode (with no interface)
23
+ -i, --interactive launch VisiData in interactive mode after batch
23
24
  -o, --output=file save final visible sheet to file as .tsv
24
- --replay-movement toggle --play to move cursor cell-by-cell
25
25
  field=value replace "{field}" in cmdlog contents with value
26
26
 
27
27
  Commands During Replay
28
- ^U pause/resume replay
29
- ^N execute next row in replaying sheet
30
28
  ^K cancel current replay
31
29
 
32
30
  GLOBAL COMMANDS
@@ -41,18 +39,28 @@ DESCRIPTION
41
39
  Q quit current sheet and free associated memory
42
40
  gq quit all sheets (clean exit)
43
41
 
44
- ^H activate help menu (Enter/left-mouse to expand submenu
42
+ Alt+H activate help menu (Enter/left-mouse to expand submenu
45
43
  or execute command)
46
44
  g^H view this man page
47
45
  z^H view sheet of command longnames and keybindings for cur‐
48
46
  rent sheet
49
- Space longname execute command by its longname
47
+
48
+ gb open sidebar in a new sheet
49
+ b toggle sidebar
50
50
 
51
51
  U undo the most recent modification (requires enabled
52
52
  options.undo)
53
53
  R redo the most recent undo (requires enabled
54
54
  options.undo)
55
55
 
56
+ Space longname open command palette; Enter to execute top command by
57
+ its longname
58
+
59
+ Command Palette
60
+ Tab Move to command palette, and cycle through commands
61
+ 0-9 Execute numbered command
62
+ Enter Execute highlighted command
63
+
56
64
  Cursor Movement
57
65
  Arrow PgUp go as expected
58
66
  h j k l go left/down/up/right
@@ -105,6 +113,7 @@ DESCRIPTION
105
113
  ~ # % $ @ z#
106
114
  set type of current column to str/int/float/cur‐
107
115
  rency/date/len
116
+ Alt++ Alt+- show more/less precision in current numerical column
108
117
  ^ rename current column
109
118
  g^ rename all unnamed visible columns to contents of se‐
110
119
  lected rows (or current row)
@@ -150,8 +159,10 @@ DESCRIPTION
150
159
  or dicts (e.g. {3}) one level
151
160
  z( gz( depth expand current/all visible column(s) of lists (e.g. [3])
152
161
  or dicts (e.g. {3}) to given depth (0= fully)
153
- ) unexpand current column; restore original column and re‐
154
- move other columns at this level
162
+ ) g( unexpand current/all visible column(s); restore original
163
+ column and remove other columns at this level
164
+ z) gz) depth contract current/all visible column(s) of former lists
165
+ (e.g. [3]) or dicts (e.g. {3}) to given depth (0= fully)
155
166
  zM row-wise expand current column of lists (e.g. [3]) or
156
167
  dicts (e.g. {3}) within that column
157
168
 
@@ -235,7 +246,7 @@ DESCRIPTION
235
246
  Backspace Del delete previous/current character
236
247
  Insert toggle insert mode
237
248
  Up Down set contents to previous/next in history
238
- Tab Shift+Tab autocomplete input (when available)
249
+ Tab Shift+Tab move cursor left/right and re-enter edit mode
239
250
  Shift+Arrow move cursor in direction of Arrow and re-enter edit
240
251
  mode
241
252
 
@@ -342,9 +353,8 @@ DESCRIPTION
342
353
 
343
354
  Internal Sheets List
344
355
  . Directory Sheet browse properties of files in a directory
345
- . Plugins Sheet browse, install, and (de)activate plugins
346
- . Memory Sheet (Alt+Shift+M) browse saved values, including
347
- clipboard
356
+ . Guide Index read documentation from within VisiData
357
+ . Memory Sheet (Alt+Shift+M) browse saved values, including clipboard
348
358
 
349
359
  Metasheets
350
360
  . Columns Sheet (Shift+C) edit column properties
@@ -385,16 +395,14 @@ DESCRIPTION
385
395
  ` (backtick) open parent directory
386
396
  z^S commit changes to file system
387
397
 
388
- Plugins Sheet
389
- Browse through a list of available plugins. VisiData needs to be
390
- restarted before plugin activation takes effect. Installation may require
391
- internet access.
398
+ Guide Index
399
+ Browse through a list of available guides. Each guide shows you how to
400
+ use a particular feature. Gray guides have not been written yet.
392
401
  (global commands)
393
- Space open-plugins
394
- open the Plugins Sheet
402
+ Space open-guide-index
403
+ open the Guide Index
395
404
  (sheet-specific commands)
396
- a install and activate current plugin
397
- d deactivate current plugin
405
+ Enter open a guide
398
406
 
399
407
  Memory Sheet
400
408
  Browse through a list of stored values, referanceable in expressions
@@ -457,9 +465,9 @@ DESCRIPTION
457
465
  . extend copy first selected sheet, keeping all rows
458
466
  and sheet type, and extend with columns from other
459
467
  sheets
460
- . merge mostly keep all rows from first selected
461
- sheet, except prioritise cells with non-null/non-
462
- error values
468
+ . merge keep all rows from first sheet, updating
469
+ any False-y cells with non-False-y values from
470
+ second sheet; add unique rows from second sheet
463
471
 
464
472
  Options Sheet (Shift+O)
465
473
  (global commands)
@@ -558,44 +566,26 @@ COMMANDLINE OPTIONS
558
566
  +toplevel:subsheet:col:row launch vd with subsheet of toplevel at
559
567
  top-of-stack, and cursor at col and row; all
560
568
  arguments are optional
569
+ --overwrite=c Overwrite with confirmation
561
570
 
562
571
  -f, --filetype=filetype tsv set loader to use for
563
572
  filetype instead of file extension
564
573
  -d, --delimiter=delimiter \t field delimiter to use
565
574
  for tsv/usv filetype
566
- -y, --confirm-overwrite=F True overwrite existing files
575
+ -y, --overwrite=y y overwrite existing files
567
576
  without confirmation
568
- -N, --nothing=T False disable loading
577
+ -ro, --overwrite=n n do not overwrite existing
578
+ files
579
+ -N, --nothing=T False disable loading
569
580
  .visidatarc and plugin addons
570
581
  --visidata-dir=str ~/.visidata/ directory to load and
571
582
  store additional files
572
- --mouse-interval=int 1 max time between
573
- press/release for click
574
- (ms)
575
- --null-value=NoneType None a value to be counted as
576
- null
583
+ --debug False exit on error and display
584
+ stacktrace
577
585
  --undo=bool True enable undo/redo
578
586
  --col-cache-size=int 0 max number of cache en‐
579
587
  tries in each cached col‐
580
588
  umn
581
- --clean-names False clean column/sheet names
582
- to be valid Python iden‐
583
- tifiers
584
- --default-width=int 20 default column width
585
- --default-height=int 4 default column height
586
- --textwrap-cells=bool True wordwrap text for multi‐
587
- line rows
588
- --quitguard False confirm before quitting
589
- modified sheet
590
- --debug False exit on error and display
591
- stacktrace
592
- --skip=int 0 skip N rows before header
593
- --header=int 1 parse first N rows as
594
- column names
595
- --load-lazy False load subsheets always
596
- (False) or lazily (True)
597
- --force-256-colors False use 256 colors even if
598
- curses reports fewer
599
589
  --note-pending=str ⌛ note to display for pend‐
600
590
  ing cells
601
591
  --note-format-exc=str ? cell note for an excep‐
@@ -607,6 +597,14 @@ COMMANDLINE OPTIONS
607
597
  sion
608
598
  --scroll-incr=int -3 amount to scroll with
609
599
  scrollwheel
600
+ --force-256-colors False use 256 colors even if
601
+ curses reports fewer
602
+ --quitguard False confirm before quitting
603
+ modified sheet
604
+ --default-width=int 20 default column width
605
+ --default-height=int 4 default column height
606
+ --textwrap-cells=bool True wordwrap text for multi‐
607
+ line rows
610
608
  --name-joiner=str _ string to join sheet or
611
609
  column names
612
610
  --value-joiner=str string to join display
@@ -620,18 +618,29 @@ COMMANDLINE OPTIONS
620
618
  --min-memory-mb=int 0 minimum memory to con‐
621
619
  tinue loading and async
622
620
  processing
623
- --encoding=str utf-8 encoding passed to
624
- codecs.open
621
+ --encoding=str utf-8-sig encoding passed to
622
+ codecs.open when reading
623
+ a file
625
624
  --encoding-errors=str surrogateescape encoding_errors passed to
626
625
  codecs.open
627
- --input-history=str basename of file to store
628
- persistent input history
626
+ --mouse-interval=int 1 max time between
627
+ press/release for click
628
+ (ms)
629
629
  --bulk-select-clear False clear selected rows be‐
630
630
  fore new bulk selections
631
631
  --some-selected-rows False if no rows selected, if
632
632
  True, someSelectedRows
633
633
  returns all rows; if
634
634
  False, fails
635
+ --regex-skip=str regex of lines to skip in
636
+ text sources
637
+ --regex-flags=str I flags to pass to re.com‐
638
+ pile() [AILMSUX]
639
+ --load-lazy False load subsheets always
640
+ (False) or lazily (True)
641
+ --skip=int 0 skip N rows before header
642
+ --header=int 1 parse first N rows as
643
+ column names
635
644
  --delimiter=str field delimiter to use
636
645
  for tsv/usv filetype
637
646
  --row-delimiter=str " row delimiter to use
@@ -641,8 +650,7 @@ COMMANDLINE OPTIONS
641
650
  tsv
642
651
  --tsv-safe-tab=str replacement for tab char‐
643
652
  acter when saving to tsv
644
- --visibility=int 0 visibility level (0=low,
645
- 1=high)
653
+ --visibility=int 0 visibility level
646
654
  --default-sample-size=int 100 number of rows to sample
647
655
  for regex.split (0=all)
648
656
  --fmt-expand-dict=str %s.%s format str to use for
@@ -656,23 +664,24 @@ COMMANDLINE OPTIONS
656
664
  json
657
665
  --json-sort-keys False sort object keys when
658
666
  saving to json
667
+ --json-ensure-ascii=bool True ensure ascii encode when
668
+ saving json
659
669
  --default-colname=str column name to use for
660
670
  non-dict rows
661
671
  --filetype=str specify file type
672
+ --safe-error=str #ERR error string to use while
673
+ saving
674
+ --save-encoding=str utf-8 encoding passed to
675
+ codecs.open when saving a
676
+ file
677
+ --clean-names False clean column/sheet names
678
+ to be valid Python iden‐
679
+ tifiers
662
680
  --replay-wait=float 0.0 time to wait between re‐
663
681
  played commands, in sec‐
664
682
  onds
665
- --replay-movement False insert movements during
666
- replay
667
683
  --rowkey-prefix=str キ string prefix for rowkey
668
684
  in the cmdlog
669
- --cmdlog-histfile=str file to autorecord each
670
- cmdlog action to
671
- --confirm-overwrite=bool True whether to prompt for
672
- overwrite confirmation on
673
- save
674
- --safe-error=str #ERR error string to use while
675
- saving
676
685
  --clipboard-copy-cmd=str xclip -selection clipboard -filter
677
686
  command to copy stdin to
678
687
  system clipboard
@@ -683,35 +692,25 @@ COMMANDLINE OPTIONS
683
692
  --fancy-chooser False a nicer selection inter‐
684
693
  face for aggregators and
685
694
  jointype
686
- --describe-aggrs=str mean stdev numeric aggregators to
687
- calculate on Describe
688
- sheet
695
+ --null-value=NoneType None a value to be counted as
696
+ null
689
697
  --histogram-bins=int 0 number of bins for his‐
690
698
  togram of numeric columns
691
699
  --numeric-binning False bin numeric columns into
692
700
  ranges
693
- --regex-flags=str I flags to pass to re.com‐
694
- pile() [AILMSUX]
695
- --regex-maxsplit=int 0 maxsplit to pass to
696
- regex.split
697
- --show-graph-labels=bool True show axes and legend on
698
- graph
699
701
  --plot-colors=str list of distinct colors
700
702
  to use for plotting dis‐
701
703
  tinct objects
702
- --zoom-incr=float 2.0 amount to multiply cur‐
703
- rent zoomlevel when zoom‐
704
- ing
705
704
  --motd-url=str source of randomized
706
705
  startup messages
707
- --dir-recurse False walk source path recur‐
708
- sively on DirSheet
706
+ --dir-depth=int 0 folder recursion depth on
707
+ DirSheet
709
708
  --dir-hidden False load hidden files on
710
709
  DirSheet
711
- --config=Path /home/kefala/.visidatarc
710
+ --config=Path ~/.visidatarc
712
711
  config file to exec in
713
712
  Python
714
- --play=str file.vd to replay
713
+ --play=str file.vdj to replay
715
714
  --batch False replay in batch mode
716
715
  (with no interface and
717
716
  all status sent to std‐
@@ -726,10 +725,37 @@ COMMANDLINE OPTIONS
726
725
  only)
727
726
  --nothing False no config, no plugins,
728
727
  nothing extra
729
- --unfurl-empty False if unfurl includes rows
730
- for empty containers
731
- --incr-base=float 1.0 start value for column
732
- increments
728
+ --interactive False run interactive mode af‐
729
+ ter batch replay
730
+ --overwrite=str c overwrite existing files
731
+ {y=yes|c=confirm|n=no}
732
+ --plugins-autoload=bool True do not autoload plugins
733
+ if False
734
+ --theme=str display/color theme to
735
+ use
736
+ --airtable-auth-token=str Airtable API key from
737
+ https://airtable.com/ac‐
738
+ count
739
+ --matrix-token=str matrix API token
740
+ --matrix-user-id=str matrix user ID associated
741
+ with token
742
+ --matrix-device-id=str VisiData device ID associated with
743
+ matrix login
744
+ --reddit-client-id=str client_id for reddit api
745
+ --reddit-client-secret=str client_secret for reddit
746
+ api
747
+ --reddit-user-agent=str 3.0.1 user_agent for reddit api
748
+ --zulip-batch-size=int -100 number of messages to
749
+ fetch per call (<0 to
750
+ fetch before anchor)
751
+ --zulip-anchor=int 1000000000 message id to start
752
+ fetching from
753
+ --zulip-delay-s=float 1e-05 seconds to wait between
754
+ calls (0 to stop after
755
+ first)
756
+ --zulip-api-key=str Zulip API key
757
+ --zulip-email=str Email for use with Zulip
758
+ API key
733
759
  --csv-dialect=str excel dialect passed to
734
760
  csv.reader
735
761
  --csv-delimiter=str , delimiter passed to
@@ -745,55 +771,140 @@ COMMANDLINE OPTIONS
745
771
  --safety-first False sanitize input/output to
746
772
  handle edge cases, with a
747
773
  performance cost
748
- --xlsx-meta-columns False include columns for cell
749
- objects, font colors, and
750
- fill colors
751
- --sqlite-onconnect=str sqlite statement to exe‐
752
- cute after opening a con‐
753
- nection
774
+ --f5log-object-regex=NoneType None A regex to perform on the
775
+ object name, useful where
776
+ object names have a
777
+ structure to extract. Use
778
+ the (?P<foo>...) named
779
+ groups form to get column
780
+ names.
781
+ --f5log-log-year=NoneType None Override the default year
782
+ used for log parsing. Use
783
+ all four digits of the
784
+ year (e.g., 2022). By de‐
785
+ fault (None) use the year
786
+ from the ctime of the
787
+ file, or failing that the
788
+ current year.
789
+ --f5log-log-timezone=str UTC The timezone the source
790
+ file is in, by default
791
+ UTC.
754
792
  --fixed-rows=int 1000 number of rows to check
755
793
  for fixed width columns
756
794
  --fixed-maxcols=int 0 max number of fixed-width
757
795
  columns to create (0 is
758
796
  no max)
759
- --postgres-schema=str public The desired schema for
760
- the Postgres database
797
+ --graphviz-edge-labels=bool True whether to include edge
798
+ labels on graphviz dia‐
799
+ grams
800
+ --html-title=str <h2>{sheet.name}</h2>
801
+ table header when saving
802
+ to html
761
803
  --http-max-next=int 0 max next.url pages to
762
804
  follow in http response
763
805
  --http-req-headers=dict {} http headers to send to
764
806
  requests
765
- --html-title=str <h2>{sheet.name}</h2>
766
- table header when saving
767
- to html
807
+ --http-ssl-verify=bool True verify host and certifi‐
808
+ cates for https
809
+ --npy-allow-pickle False numpy allow unpickling
810
+ objects (unsafe)
768
811
  --pcap-internet=str n (y/s/n) if save_dot in‐
769
812
  cludes all internet hosts
770
813
  separately (y), combined
771
814
  (s), or does not include
772
815
  the internet (n)
773
- --xml-parser-huge-tree=bool True allow very deep trees and
774
- very long text content
775
- --graphviz-edge-labels=bool True whether to include edge
776
- labels on graphviz dia‐
777
- grams
778
- --npy-allow-pickle False numpy allow unpickling
779
- objects (unsafe)
780
816
  --pdf-tables False parse PDF for tables in‐
781
817
  stead of pages of text
782
- --plugins-url=str https://visidata.org/plugins/plugins.jsonl
783
- source of plugins sheet
784
- --plugins-autoload=bool True do not autoload plugins
785
- if False
818
+ --postgres-schema=str public The desired schema for
819
+ the Postgres database
820
+ --s3-endpoint=str alternate S3 endpoint,
821
+ used for local testing or
822
+ alternative S3-compatible
823
+ services
824
+ --s3-glob=bool True enable glob-matching for
825
+ S3 paths
826
+ --s3-version-aware False show all object versions
827
+ in a versioned bucket
828
+ --sqlite-onconnect=str sqlite statement to exe‐
829
+ cute after opening a con‐
830
+ nection
831
+ --xlsx-meta-columns False include columns for cell
832
+ objects, font colors, and
833
+ fill colors
834
+ --xml-parser-huge-tree=bool True allow very deep trees and
835
+ very long text content
836
+ --plt-marker=str . matplotlib.markers
837
+ --plot-palette=str Set3 colorbrewer palette to
838
+ use
839
+ --server-addr=str 127.0.0.1 IP address to listen for
840
+ commands
841
+ --server-port=int 0 port to listen for com‐
842
+ mands
843
+ --fixer-api-key=str API Key for api.api‐
844
+ layer.com/fixer
845
+ --fixer-cache-days=int 1 Cache days for currency
846
+ conversions
847
+ --describe-aggrs=str mean stdev numeric aggregators to
848
+ calculate on Describe
849
+ sheet
850
+ --hello-world=str ¡Hola mundo! shown by the hello-world
851
+ command
852
+ --incr-base=float 1.0 start value for column
853
+ increments
854
+ --ping-count=int 3 send this many pings to
855
+ each host
856
+ --ping-interval=float 0.1 wait between ping rounds,
857
+ in seconds
858
+ --regex-maxsplit=int 0 maxsplit to pass to
859
+ regex.split
860
+ --rename-cascade False cascade column renames
861
+ into expressions
862
+ --faker-locale=str en_US default locale to use for
863
+ Faker
864
+ --faker-extra-providers=NoneType None list of additional
865
+ Provider classes to load
866
+ via add_provider()
867
+ --faker-salt=str Use a non-empty string to
868
+ enable deterministic
869
+ fakes
870
+ --mailcap-mimetype=str force mimetype for
871
+ sysopen-mailcap
872
+ --unfurl-empty False if unfurl includes rows
873
+ for empty containers
786
874
 
787
875
  DISPLAY OPTIONS
788
876
  Display options can only be set via the Options Sheet or a .visidatarc
789
877
  (see FILES).
790
878
 
791
- disp_splitwin_pct 0 height of second sheet on screen
792
- color_sidebar black on 114 blue color of sidebar
793
- disp_float_fmt {:.02f} default fmtstr to format for
794
- float values
795
- disp_int_fmt {:d} default fmtstr to format for int
879
+ disp_menu True show menu on top line when not
880
+ active
881
+ disp_menu_keys True show keystrokes inline in sub‐
882
+ menus
883
+ color_menu black on 68 blue color of menu items in general
884
+ color_menu_active 223 yellow on black
885
+ color of active menu items
886
+ color_menu_spec black on 34 green color of sheet-specific menu
887
+ items
888
+ color_menu_help black italic on 68 blue
889
+ color of helpbox
890
+ disp_menu_boxchars ││──┌┐└┘├┤ box characters to use for menus
891
+ disp_menu_more » command submenu indicator
892
+ disp_menu_push ⎘ indicator if command pushes sheet
893
+ onto sheet stack
894
+ disp_menu_input … indicator if input required for
895
+ command
896
+ disp_menu_fmt | VisiData {vd.version} | Alt+H for help menu
897
+ right-side menu format string
898
+ disp_float_fmt {:.02f} default fmtstr to format float
796
899
  values
900
+ disp_int_fmt {:d} default fmtstr to format int val‐
901
+ ues
902
+ disp_formatter generic formatter to create the text in
903
+ each cell (also used by text
904
+ savers)
905
+ disp_displayer generic displayer to render the text in
906
+ each cell
907
+ disp_splitwin_pct 0 height of second sheet on screen
797
908
  disp_note_none ⌀ visible contents of a cell whose
798
909
  value is None
799
910
  disp_truncator … indicator that the contents are
@@ -835,6 +946,9 @@ COMMANDLINE OPTIONS
835
946
  color_bottom_hdr underline color of the bottom header row
836
947
  color_current_row reverse color of the cursor row
837
948
  color_current_col bold color of the cursor column
949
+ color_current_cell color of current cell, if differ‐
950
+ ent from color_cur‐
951
+ rent_row+color_current_col
838
952
  color_current_hdr bold reverse color of the header for the cur‐
839
953
  sor column
840
954
  color_column_sep 246 blue color of column separators
@@ -842,78 +956,101 @@ COMMANDLINE OPTIONS
842
956
  color_hidden_col 8 color of hidden columns on
843
957
  metasheets
844
958
  color_selected_row 215 yellow color of selected rows
845
- disp_rstatus_fmt {sheet.longname} {sheet.nRows:9d} {sheet.rowtype}
846
- {sheet.modifiedStatus}
847
- {sheet.options.disp_selected_note}{sheet.nSelectedRows}
959
+ color_clickable underline color of internally clickable
960
+ item
961
+ color_code bold white on 237 color of code sample
962
+ color_heading bold 200 color of header
963
+ color_guide_unwritten 243 on black color of unwritten guides in
964
+ GuideGuide
965
+ disp_rstatus_fmt {sheet.threadStatus} {sheet.keystrokeStatus}
966
+ [:longname]{sheet.longname}[/]
967
+ {sheet.nRows:9d} {sheet.rowtype}
968
+ {sheet.modifiedStatus}{sheet.selectedStatus}{vd.replayStatus}
848
969
  right-side status format string
849
- disp_status_fmt {sheet.shortcut}› {sheet.name}|
970
+ disp_status_fmt [:onclick sheets-stack]{sheet.shortcut}›
971
+ {sheet.name}[/]|
850
972
  status line prefix
851
973
  disp_lstatus_max 0 maximum length of left status
852
974
  line
853
- disp_status_sep separator between statuses
854
- color_keystrokes bold 233 black on 110 cyan
855
- color of input keystrokes on sta‐
856
- tus line
857
- color_status bold black on 110 cyan
858
- status line color
859
- color_error red error message color
860
- color_warning yellow warning message color
975
+ disp_status_sep separator between statuses
976
+ color_keystrokes bold white on 237 color of input keystrokes
977
+ color_longname bold 52 on 114 green
978
+ color of command longnames
979
+ color_keys bold color of keystrokes in help
980
+ color_status bold on 238 status line color
981
+ color_error 202 1 error message color
982
+ color_warning 166 15 warning message color
861
983
  color_top_status underline top window status bar color
862
- color_active_status black on 110 cyan active window status bar color
984
+ color_active_status black on 68 blue active window status bar color
863
985
  color_inactive_status 8 on black inactive window status bar color
864
- color_working green color of system running smoothly
865
- color_edit_cell white cell color to use when editing
986
+ color_highlight_status black on green color of highlighted elements in
987
+ statusbar
988
+ color_working 118 5 color of system running smoothly
989
+ color_edit_unfocused 238 on 110 display color for unfocused input
990
+ in form
991
+ color_edit_cell 233 on 110 cell color to use when editing
866
992
  cell
867
993
  disp_edit_fill _ edit field fill character
868
994
  disp_unprintable · substitute character for unprint‐
869
995
  ables
996
+ disp_date_fmt %Y-%m-%d default fmtstr passed to strftime
997
+ for date values
870
998
  disp_currency_fmt %.02f default fmtstr to format for cur‐
871
999
  rency values
872
- disp_date_fmt %Y-%m-%d default fmtstr to strftime for
873
- date values
1000
+ color_currency_neg red color for negative values in cur‐
1001
+ rency displayer
874
1002
  disp_replay_play ▶ status indicator for active re‐
875
1003
  play
876
- disp_replay_pause ‖ status indicator for paused re‐
877
- play
878
1004
  color_status_replay green color of replay status indicator
879
- disp_formatter generic formatter to use for display and
880
- saving
881
- disp_menu True show menu on top line when not
882
- active
883
- disp_menu_keys True show keystrokes inline in sub‐
884
- menus
885
- color_menu black on 110 cyan color of menu items in general
886
- color_menu_active 223 yellow on black
887
- color of active menu items
888
- color_menu_spec black on 34 green color of sheet-specific menu
889
- items
890
- color_menu_help black italic on 110 cyan
891
- color of helpbox
892
- disp_menu_boxchars ││──┌┐└┘├┤ box characters to use for menus
893
- disp_menu_more » command submenu indicator
894
- disp_menu_push ⎘ indicator if command pushes sheet
895
- onto sheet stack
896
- disp_menu_input … indicator if input required for
897
- command
898
- disp_menu_fmt Ctrl+H for help menu
899
- right-side menu format string
900
1005
  disp_histogram ■ histogram element character
901
- disp_histolen 50 width of histogram column
1006
+ disp_graph_labels True show axes and legend on graph
902
1007
  disp_canvas_charset
903
1008
  ⠀⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿⡀⡁⡂⡃⡄⡅⡆⡇⡈⡉⡊⡋⡌⡍⡎⡏⡐⡑⡒⡓⡔⡕⡖⡗⡘⡙⡚⡛⡜⡝⡞⡟⡠⡡⡢⡣⡤⡥⡦⡧⡨⡩⡪⡫⡬⡭⡮⡯⡰⡱⡲⡳⡴⡵⡶⡷⡸⡹⡺⡻⡼⡽⡾⡿⢀⢁⢂⢃⢄⢅⢆⢇⢈⢉⢊⢋⢌⢍⢎⢏⢐⢑⢒⢓⢔⢕⢖⢗⢘⢙⢚⢛⢜⢝⢞⢟⢠⢡⢢⢣⢤⢥⢦⢧⢨⢩⢪⢫⢬⢭⢮⢯⢰⢱⢲⢳⢴⢵⢶⢷⢸⢹⢺⢻⢼⢽⢾⢿⣀⣁⣂⣃⣄⣅⣆⣇⣈⣉⣊⣋⣌⣍⣎⣏⣐⣑⣒⣓⣔⣕⣖⣗⣘⣙⣚⣛⣜⣝⣞⣟⣠⣡⣢⣣⣤⣥⣦⣧⣨⣩⣪⣫⣬⣭⣮⣯⣰⣱⣲⣳⣴⣵⣶⣷⣸⣹⣺⣻⣼⣽⣾⣿
904
1009
  charset to render 2x4 blocks on
905
1010
  canvas
906
1011
  disp_pixel_random False randomly choose attr from set of
907
1012
  pixels instead of most common
1013
+ disp_zoom_incr 2.0 amount to multiply current zoom‐
1014
+ level when zooming
908
1015
  color_graph_hidden 238 blue color of legend for hidden attri‐
909
1016
  bute
910
1017
  color_graph_selected bold color of selected graph points
911
1018
  color_graph_axis bold color for graph axis labels
1019
+ disp_graph_tick_x ╵ character for graph x-axis ticks
1020
+ disp_help 2 show help panel during input
912
1021
  color_add_pending green color for rows pending add
913
1022
  color_change_pending reverse yellow color for cells pending modifica‐
914
1023
  tion
915
1024
  color_delete_pending red color for rows pending delete
1025
+ disp_sidebar True whether to display sidebar
1026
+ disp_sidebar_fmt {guide} format string for default sidebar
1027
+ disp_sidebar_width 0 max width for sidebar
1028
+ disp_sidebar_height 0 max height for sidebar
1029
+ color_sidebar black on 114 blue base color of sidebar
1030
+ color_sidebar_title black on yellow color of sidebar title
1031
+ color_match red color for matching chars in pal‐
1032
+ ette chooser
1033
+ color_f5log_mon_up green color of f5log monitor status up
1034
+ color_f5log_mon_down red color of f5log monitor status
1035
+ down
1036
+ color_f5log_mon_unknown blue color of f5log monitor status un‐
1037
+ known
1038
+ color_f5log_mon_checking magenta color of monitor status checking
1039
+ color_f5log_mon_disabled black color of monitor status disabled
1040
+ color_f5log_logid_alarm red color of alarms
1041
+ color_f5log_logid_warn yellow color of warnings
1042
+ color_f5log_logid_notice cyan color of notice
1043
+ color_f5log_logid_info green color of info
916
1044
  color_xword_active green color of active clue
1045
+ color_cmdpalette black on 72 base color of command palette
1046
+ disp_cmdpal_max 10 max number of suggestions for
1047
+ command palette
1048
+ color_shellcmd 21 on 114 green
1049
+ color_colname underline
1050
+ disp_scroll_context 0 minimum number of lines to keep
1051
+ visible above/below cursor when
1052
+ scrolling
1053
+ disp_sparkline ▁▂▃▄▅▆▇ characters to display sparkline
917
1054
 
918
1055
  EXAMPLES
919
1056
  vd
@@ -944,8 +1081,8 @@ EXAMPLES
944
1081
  vd postgres://username:password@hostname:port/database
945
1082
  open a connection to the given postgres database
946
1083
 
947
- vd --play tests/pivot.vd --replay-wait 1 --output tests/pivot.tsv
948
- replay tests/pivot.vd, waiting 1 second between commands, and output the
1084
+ vd --play tests/pivot.vdj --replay-wait 1 --output tests/pivot.tsv
1085
+ replay tests/pivot.vdj, waiting 1 second between commands, and output the
949
1086
  final sheet to test/pivot.tsv
950
1087
 
951
1088
  ls -l | vd -f fixed --skip 1 --header 0
@@ -1020,4 +1157,4 @@ SUPPORTED SOURCES
1020
1157
  AUTHOR
1021
1158
  VisiData was made by Saul Pwanson <vd@saul.pw>.
1022
1159
 
1023
- Linux/MacOS January 11, 2023 Linux/MacOS
1160
+ Linux/MacOS January 7, 2024 Linux/MacOS