visidata 3.2__py3-none-any.whl → 3.3__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 (47) hide show
  1. visidata/__init__.py +1 -1
  2. visidata/_input.py +36 -22
  3. visidata/_open.py +1 -1
  4. visidata/basesheet.py +0 -2
  5. visidata/cliptext.py +4 -1
  6. visidata/column.py +43 -32
  7. visidata/deprecated.py +5 -0
  8. visidata/experimental/liveupdate.py +1 -1
  9. visidata/features/cmdpalette.py +61 -22
  10. visidata/features/expand_cols.py +0 -1
  11. visidata/features/go_col.py +1 -2
  12. visidata/features/layout.py +1 -2
  13. visidata/features/reload_every.py +3 -3
  14. visidata/form.py +6 -5
  15. visidata/freqtbl.py +2 -2
  16. visidata/fuzzymatch.py +6 -5
  17. visidata/guides/CommandsSheet.md +1 -0
  18. visidata/help.py +20 -2
  19. visidata/loaders/archive.py +27 -3
  20. visidata/loaders/csv.py +7 -0
  21. visidata/macros.py +1 -1
  22. visidata/main.py +11 -7
  23. visidata/mainloop.py +1 -1
  24. visidata/man/vd.1 +13 -4
  25. visidata/man/vd.txt +23 -4
  26. visidata/menu.py +1 -1
  27. visidata/mouse.py +2 -0
  28. visidata/movement.py +6 -3
  29. visidata/save.py +5 -1
  30. visidata/settings.py +7 -3
  31. visidata/sheets.py +79 -31
  32. visidata/sidebar.py +7 -6
  33. visidata/tests/test_cliptext.py +13 -0
  34. visidata/tests/test_commands.py +1 -0
  35. visidata/threads.py +22 -0
  36. visidata/undo.py +1 -1
  37. visidata/utils.py +15 -1
  38. {visidata-3.2.data → visidata-3.3.data}/data/share/man/man1/vd.1 +13 -4
  39. {visidata-3.2.data → visidata-3.3.data}/data/share/man/man1/visidata.1 +13 -4
  40. {visidata-3.2.dist-info → visidata-3.3.dist-info}/METADATA +3 -3
  41. {visidata-3.2.dist-info → visidata-3.3.dist-info}/RECORD +47 -47
  42. {visidata-3.2.data → visidata-3.3.data}/data/share/applications/visidata.desktop +0 -0
  43. {visidata-3.2.data → visidata-3.3.data}/scripts/vd2to3.vdx +0 -0
  44. {visidata-3.2.dist-info → visidata-3.3.dist-info}/LICENSE.gpl3 +0 -0
  45. {visidata-3.2.dist-info → visidata-3.3.dist-info}/WHEEL +0 -0
  46. {visidata-3.2.dist-info → visidata-3.3.dist-info}/entry_points.txt +0 -0
  47. {visidata-3.2.dist-info → visidata-3.3.dist-info}/top_level.txt +0 -0
visidata/threads.py CHANGED
@@ -270,6 +270,27 @@ def asyncsingle(func):
270
270
  _execAsync.searchThread = None
271
271
  return _execAsync
272
272
 
273
+ def asyncsingle_queue(func):
274
+ '''Function decorator like `@asyncthread` but as a singleton. When called, `func(...)` spawns a new thread, and waits for the end of any previous thread still running *func*.
275
+ ``vd.sync()`` does wait for unfinished asyncsingle_queue threads, which is an important difference from asyncsingle.
276
+ '''
277
+ @functools.wraps(func)
278
+ def _execAsync(*args, **kwargs):
279
+ def _func(*args, **kwargs):
280
+ func(*args, **kwargs)
281
+ _execAsync.searchThread = None
282
+ # end of thread
283
+
284
+ # cancel previous thread if running
285
+ if _execAsync.searchThread:
286
+ vd.sync(_execAsync.searchThread)
287
+
288
+ _func.__name__ = func.__name__ # otherwise, the the thread's name is '_func'
289
+
290
+ _execAsync.searchThread = vd.execAsync(_func, *args, **kwargs)
291
+ _execAsync.searchThread = None
292
+ return _execAsync
293
+
273
294
  @VisiData.property
274
295
  def unfinishedThreads(self):
275
296
  'A list of unfinished threads (those without a recorded `endTime`).'
@@ -465,6 +486,7 @@ vd.addGlobals({
465
486
  'Progress': Progress,
466
487
  'asynccache': asynccache,
467
488
  'asyncsingle': asyncsingle,
489
+ 'asyncsingle_queue': asyncsingle_queue,
468
490
  'asyncignore': asyncignore,
469
491
  })
470
492
 
visidata/undo.py CHANGED
@@ -51,7 +51,7 @@ def undo(vd, sheet):
51
51
  row_idx = len(sheet.cmdlog_sheet.rows)-1 - i
52
52
  del sheet.cmdlog_sheet.rows[row_idx]
53
53
 
54
- sheet.calcColLayout() # undofunc can invalidate the column layout and/or drawcache
54
+ vd.clearCaches() # undofunc can invalidate the drawcache
55
55
 
56
56
  vd.moveToReplayContext(cmdlogrow, sheet)
57
57
  vd.status("%s undone" % cmdlogrow.longname)
visidata/utils.py CHANGED
@@ -5,7 +5,7 @@ import re
5
5
 
6
6
  'Various helper classes and functions.'
7
7
 
8
- __all__ = ['AlwaysDict', 'AttrDict', 'DefaultAttrDict', 'moveListItem', 'namedlist', 'classproperty', 'MissingAttrFormatter', 'getitem', 'setitem', 'getitemdef', 'getitemdeep', 'setitemdeep', 'getattrdeep', 'setattrdeep', 'ExplodingMock', 'ScopedSetattr']
8
+ __all__ = ['AlwaysDict', 'AttrDict', 'DefaultAttrDict', 'moveListItem', 'namedlist', 'classproperty', 'MissingAttrFormatter', 'getitem', 'setitem', 'getitemdef', 'getitemdeep', 'setitemdeep', 'getattrdeep', 'setattrdeep', 'ExplodingMock', 'ScopedSetattr', 'colname_letters']
9
9
 
10
10
 
11
11
  class AlwaysDict(dict):
@@ -215,3 +215,17 @@ def ScopedSetattr(obj, attrname, val):
215
215
  yield
216
216
  finally:
217
217
  setattr(obj, attrname, oldval)
218
+
219
+ def colname_letters(num):
220
+ '''*num* is a 1-based integer: 1, 2, 3... gives A B C .. Z AA AB .. ZZ AAA .. to infinity; *num* of 0 returns the empty string'''
221
+ # credit to https://stackoverflow.com/questions/48983939/convert-a-number-to-excel-s-base-26/48984697#48984697
222
+ def divmod_excel(n):
223
+ a, b = divmod(n, 26)
224
+ if b == 0:
225
+ return a - 1, b + 26
226
+ return a, b
227
+ chars = []
228
+ while num > 0:
229
+ num, d = divmod_excel(num)
230
+ chars.append('-ABCDEFGHIJKLMNOPQRSTUVWXYZ'[d])
231
+ return ''.join(reversed(chars))
@@ -1029,7 +1029,7 @@ source of randomized startup messages
1029
1029
  folder recursion depth on DirSheet
1030
1030
  .It Sy --dir-hidden No " False"
1031
1031
  load hidden files on DirSheet
1032
- .It Sy --config Ns = Ns Ar "Path " No "/home/saul/.visidatarc"
1032
+ .It Sy --config Ns = Ns Ar "Path " No "/home/anja/.visidatarc"
1033
1033
  config file to exec in Python
1034
1034
  .It Sy --play Ns = Ns Ar "str " No ""
1035
1035
  file.vdj to replay
@@ -1063,7 +1063,7 @@ device ID associated with matrix login
1063
1063
  client_id for reddit api
1064
1064
  .It Sy --reddit-client-secret Ns = Ns Ar "str " No ""
1065
1065
  client_secret for reddit api
1066
- .It Sy --reddit-user-agent Ns = Ns Ar "str " No "3.2"
1066
+ .It Sy --reddit-user-agent Ns = Ns Ar "str " No "3.3"
1067
1067
  user_agent for reddit api
1068
1068
  .It Sy --zulip-batch-size Ns = Ns Ar "int " No "-100"
1069
1069
  number of messages to fetch per call (<0 to fetch before anchor)
@@ -1397,8 +1397,17 @@ charset to render vertical reference lines on graph
1397
1397
  charset to render horizontal reference lines on graph
1398
1398
  .It Sy "disp_graph_multiple_reflines_char" No "\[u2592]"
1399
1399
  char to render multiple parallel reflines
1400
- .It Sy "disp_expert " No "0"
1401
- max level of options and columns to include
1400
+ .It Sy "disp_help_flags " No "cmdpalette guides help hints inputfield inputkeys nometacols sidebar"
1401
+ list of helper features to enable (space-separated):
1402
+ - "cmdpalette": exec-longname suggestions
1403
+ - "guides": guides in sidebar
1404
+ - "help": help sidebar collapsed by default
1405
+ - "hints": context-sensitive hints on menu line
1406
+ - "inputfield": context-sensitive help for each input field
1407
+ - "inputkeys": input quick reference in sidebar
1408
+ - "nometacols": hide expert columns on metasheets
1409
+ - "sidebar": context-sensitive sheet help in sidebar
1410
+ - "all": enable all helper features
1402
1411
  .It Sy "color_add_pending " No "green"
1403
1412
  color for rows pending add
1404
1413
  .It Sy "color_change_pending" No "reverse yellow"
@@ -1029,7 +1029,7 @@ source of randomized startup messages
1029
1029
  folder recursion depth on DirSheet
1030
1030
  .It Sy --dir-hidden No " False"
1031
1031
  load hidden files on DirSheet
1032
- .It Sy --config Ns = Ns Ar "Path " No "/home/saul/.visidatarc"
1032
+ .It Sy --config Ns = Ns Ar "Path " No "/home/anja/.visidatarc"
1033
1033
  config file to exec in Python
1034
1034
  .It Sy --play Ns = Ns Ar "str " No ""
1035
1035
  file.vdj to replay
@@ -1063,7 +1063,7 @@ device ID associated with matrix login
1063
1063
  client_id for reddit api
1064
1064
  .It Sy --reddit-client-secret Ns = Ns Ar "str " No ""
1065
1065
  client_secret for reddit api
1066
- .It Sy --reddit-user-agent Ns = Ns Ar "str " No "3.2"
1066
+ .It Sy --reddit-user-agent Ns = Ns Ar "str " No "3.3"
1067
1067
  user_agent for reddit api
1068
1068
  .It Sy --zulip-batch-size Ns = Ns Ar "int " No "-100"
1069
1069
  number of messages to fetch per call (<0 to fetch before anchor)
@@ -1397,8 +1397,17 @@ charset to render vertical reference lines on graph
1397
1397
  charset to render horizontal reference lines on graph
1398
1398
  .It Sy "disp_graph_multiple_reflines_char" No "\[u2592]"
1399
1399
  char to render multiple parallel reflines
1400
- .It Sy "disp_expert " No "0"
1401
- max level of options and columns to include
1400
+ .It Sy "disp_help_flags " No "cmdpalette guides help hints inputfield inputkeys nometacols sidebar"
1401
+ list of helper features to enable (space-separated):
1402
+ - "cmdpalette": exec-longname suggestions
1403
+ - "guides": guides in sidebar
1404
+ - "help": help sidebar collapsed by default
1405
+ - "hints": context-sensitive hints on menu line
1406
+ - "inputfield": context-sensitive help for each input field
1407
+ - "inputkeys": input quick reference in sidebar
1408
+ - "nometacols": hide expert columns on metasheets
1409
+ - "sidebar": context-sensitive sheet help in sidebar
1410
+ - "all": enable all helper features
1402
1411
  .It Sy "color_add_pending " No "green"
1403
1412
  color for rows pending add
1404
1413
  .It Sy "color_change_pending" No "reverse yellow"
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: visidata
3
- Version: 3.2
3
+ Version: 3.3
4
4
  Summary: terminal interface for exploring and arranging tabular data
5
5
  Home-page: https://visidata.org
6
- Download-URL: https://github.com/saulpw/visidata/tarball/3.2
6
+ Download-URL: https://github.com/saulpw/visidata/tarball/3.3
7
7
  Author: Saul Pwanson
8
8
  Author-email: visidata@saul.pw
9
9
  License: GPLv3
@@ -105,7 +105,7 @@ Requires-Dist: xport (>=3.0) ; extra == 'test'
105
105
  Provides-Extra: windows-curses
106
106
  Requires-Dist: windows-curses (>=2.4.1) ; (platform_system == "Windows") and extra == 'windows-curses'
107
107
 
108
- # VisiData v3.2
108
+ # VisiData v3.3
109
109
 
110
110
  [![Tests](https://github.com/saulpw/visidata/workflows/visidata-ci-build/badge.svg)](https://github.com/saulpw/visidata/actions/workflows/main.yml)
111
111
  [![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/saulpw/visidata)
@@ -1,75 +1,75 @@
1
- visidata/__init__.py,sha256=Nafcqwc8AaAde06ut_0043W5z3FB4uWIEYt5UskWMyc,4571
1
+ visidata/__init__.py,sha256=HkEeCdvA8byZ3jOACDxK8datHWHj1zBXuR8mIATfv60,4571
2
2
  visidata/__main__.py,sha256=0j8M0MpINzX0XXcVj1lSDpDfol1qexKU2xZ6qiRoE_U,35
3
- visidata/_input.py,sha256=y6ufr3i0Hs1Oyvu4yLrMcpCe7xslp4hgx6uwRR3LnJw,25096
4
- visidata/_open.py,sha256=XNebZRC5i5LDAqCBi9A9rXVOmcRv4hgU7q8S79V30nc,6884
3
+ visidata/_input.py,sha256=TeLALVEnDc1lJkI9y3jmFv-CSOw8rbn1tvDVXvjfiIo,26086
4
+ visidata/_open.py,sha256=pUblKMcgm34dtwCRmXuKMIgoh2P7ZMQv2UooODQqRhE,6830
5
5
  visidata/_types.py,sha256=xTfGYIUncYeV1m3Bh2kfthPq42-_dugWOMCpk0DRCiE,4692
6
6
  visidata/_urlcache.py,sha256=J0SRElN9uYgMsVKwJP7HUmqaT89mBg9JUJ5OvYgr11o,1393
7
7
  visidata/aggregators.py,sha256=hsMglDVhwzv8Kd2pn8PuzZAMfpMksKHB6u_Thxlki4g,16659
8
- visidata/basesheet.py,sha256=9vjPqx1CkjabT779qped7-wYNkTrXGG8bnk3rtwJauk,10608
8
+ visidata/basesheet.py,sha256=mG3gIEUWzilWABTzKXOOsM0RaMqbrIoRgG1RjHsNi9M,10606
9
9
  visidata/bezier.py,sha256=_owa8IVyLJ-ok2BAwZf7m_knou6m9ALDH8mk7Ru2BGM,2060
10
10
  visidata/canvas.py,sha256=tsQ27p1Moi8ibf8CtW35_Yj4eHWHaIj3oHd19sgAZlw,38533
11
11
  visidata/canvas_text.py,sha256=-IXLmnk3d2U3dijYtlpZLvUJnDmfF83AVkPkXO3hiAU,7882
12
12
  visidata/choose.py,sha256=zVNIInLfpjLHwFrYjR_-1o3s7QrpPPKjR7mRq98gVZo,2950
13
13
  visidata/clean_names.py,sha256=_cWnjKKa-yoeSJJOYWi2BfqVVoUdNnrm2pywIBXS7Qg,800
14
14
  visidata/clipboard.py,sha256=jZoGkyeN5mWfLSL74lEvKwnj6WcBoaf7uvVxPBlDhUQ,10330
15
- visidata/cliptext.py,sha256=EtBd_I_vjbK7paUyGVcNrSIiE-PHcjL5m-L3N6Bj2Dk,13849
15
+ visidata/cliptext.py,sha256=umuGWJ4tDWmWndko8ibGeJHdXFOH8iUPnRvQs9C70Kk,14002
16
16
  visidata/cmdlog.py,sha256=EztMpJzT981pOoTuFKg52i8sM5Y25AC1sSCHTUKX6A8,17277
17
17
  visidata/color.py,sha256=nR3QD4_RmOd74jgOvHuDXCH6KSJInrqBM8fF3QUbbVo,8393
18
- visidata/column.py,sha256=F9lueEg_IY9dbzoV7fWNDsZjR4XifZs-gZs018tz6Ko,21506
18
+ visidata/column.py,sha256=8Ud7EQpvpczlDok8dS50NR-vCf5z69Py6nov_EGnsx8,22620
19
19
  visidata/ddwplay.py,sha256=6blyTJ1psuUai7hXj1sIDb9liij0k3JPYfGUfRWHDvk,5244
20
- visidata/deprecated.py,sha256=80xJMWgAd_XfLEBYNPcJgX3hJm24qW-M19IxZoyDr5g,10863
20
+ visidata/deprecated.py,sha256=revIjFm8dYXLL1xILE7MqhHQTHVXIfJ29AY6oguFUO0,10973
21
21
  visidata/editor.py,sha256=wsM_3-dp-EJrRGwCtYGam6gpigvd64MkNzcDoxiFdvU,2989
22
22
  visidata/errors.py,sha256=NrAhWq4sPyJc2PuLHhL6nCikCtyd7sRt1Ph3rf89JsE,2758
23
23
  visidata/expr.py,sha256=FoOTvYuGpa1CyBXsjU22zsPGW-WlHmkoF69QzzAElqk,4737
24
24
  visidata/extensible.py,sha256=nb1Ez0KMFozwmZAm4DwF6OYeEfEFF22vPeoYF2Mk9N0,5622
25
- visidata/form.py,sha256=_p-vkmmdikWR4omtvWrgGoJmcIHWvcUTzV0TA14hmW4,4578
26
- visidata/freqtbl.py,sha256=cYON4JXW1Ja_uCmN1WH1YxpTAM0YTCskqQ0dBoIHvqk,9209
27
- visidata/fuzzymatch.py,sha256=w2i9wjl3xSvRg6NGba2Ds6QFzM3m6AD-9JxSXnBIKII,13764
25
+ visidata/form.py,sha256=Qxhm67i_oKVbfMrwvDdhdSXfbIPCzqD3hxASul4Jilo,4732
26
+ visidata/freqtbl.py,sha256=bf4zlx1nDcdu19AWUwNHYiFlyRUqdfTvKbL-eTTdsAI,9237
27
+ visidata/fuzzymatch.py,sha256=1ELjAvPFQy-f1lRwfzEhr6R_1MHIUPBNrXotEUqUPdc,13909
28
28
  visidata/graph.py,sha256=nSH1J5dBAbAo45SA-HgLmT0He3v68QK54vku-Rp5Zn8,19364
29
29
  visidata/guide.py,sha256=ow5Sm2YKHN6hv0fvQlyUxhmkc8hGQLXy5_xVRRtgVvY,8555
30
- visidata/help.py,sha256=1RZb14vU0M0CDsEDRwMqP8eZhUJbcLfkHYuD7lcrl7s,6419
30
+ visidata/help.py,sha256=7ekzWlN2MExNUpDCW_ZVI_7Q0S8IJhZ8TL_AJeh_Va0,7090
31
31
  visidata/hint.py,sha256=HMc0E7aAlXG6um5fZgXK6jS9wXQpjERzQL3h7EdjbwU,1081
32
32
  visidata/indexsheet.py,sha256=jG_7ub-RitBNc-0vGjJ3mvbA19faMUaKqzjbtOmaqkM,4223
33
33
  visidata/input_history.py,sha256=cdERtLKU8aLiDbxYKmFqEz0O40_hpoDOUE08kvAGgQ4,1468
34
34
  visidata/interface.py,sha256=PZRyTmmWFapiJJKiv39Ss0ry1kPPlUMDoMr0okvayg0,4336
35
35
  visidata/keys.py,sha256=u_Z-ApRUvfOXBwpzkpRu4W7Rur2R7rPTeoPJgsop4QU,2620
36
36
  visidata/macos.py,sha256=bqH73E27j8qDRtXsHPcUyQNFTAzD5Ki5QU6LjSUnnOI,3339
37
- visidata/macros.py,sha256=X2mQMS1J6GK2WxUVONpWhO-YRGdPpDIml_oQxkjVfRo,4826
38
- visidata/main.py,sha256=OYjrOGA3ywxCpcRdf7T2Uq2iR3Xpu0v_GBRbVCBxa8E,13757
39
- visidata/mainloop.py,sha256=eR5QzxuveyidVK6SnXZO_lYodaPe79aCAAVxeC_K5Fs,10347
37
+ visidata/macros.py,sha256=s4LusvtXmx4yoxIwqfID_Ia4dNNFnDwBVhW3ib9lJU0,4835
38
+ visidata/main.py,sha256=ZmP_rDZWoAFbasa2k3qh9dW6_Wa-beXthHZ3TVHvvx0,14062
39
+ visidata/mainloop.py,sha256=ntvdVxvru5vEkiG6oOP4IgovYkjV-EJ4vDSOE48YJIY,10344
40
40
  visidata/memory.py,sha256=CXYpZ0eoR_c9LZwhp1B9Jd0C7O3RMi72OBKuodamg28,1378
41
- visidata/menu.py,sha256=Fu58UalbZ-EA6km0OOkeS7ZZOfc823txP3bdVz-nXwY,16839
41
+ visidata/menu.py,sha256=R9WqYQmXfmFvrlpO9VIs5PsHJPmqcSLcgisHq5wLIvE,16833
42
42
  visidata/metasheets.py,sha256=QQfwuQhPAflHaM8SPjp6aHX110HU2m4B0bKT5-pzVAQ,7715
43
43
  visidata/modify.py,sha256=PjhPe4JAmXmfyiL72yl9tezHT2bqWB3acfbUkZPMWvk,11721
44
44
  visidata/motd.py,sha256=NJG47Uh4sMH9bU-b06AgINna1W1C2BuB-WCl6VCLXu4,919
45
- visidata/mouse.py,sha256=K7545tUQpQjMQmWSA3M8-x3QWohHjjYaewbkvrNR8B0,4623
46
- visidata/movement.py,sha256=Mx9o8ntZOlmKqWSDQ0gQ0wzK84jU914uFTFRG9UzNXY,11519
45
+ visidata/mouse.py,sha256=DBIqUHi1iqO9HiIcpn68OK1xmysfjf7TpyFYKml7G44,4683
46
+ visidata/movement.py,sha256=pLXMo8oRIRlQGEnUIIOYSjYdLhl0PVFBo8ReH04j4F4,11654
47
47
  visidata/optionssheet.py,sha256=ujf-G50keRNdxGlrJn0ZvntREwnRxrUf1fIz_V0yS0g,3900
48
48
  visidata/path.py,sha256=yVMO-QsY7DdvGeL0-DRhINVWijTi2iZrAiwXglpZrlI,17041
49
49
  visidata/pivot.py,sha256=QXlvzf4Fn0hNFm2d352gTKdKgij5diPT5Jp3IsmWZdY,12755
50
50
  visidata/plugins.py,sha256=hp7z7_mCi88bN_s30mZTTOXd48vclEsKiU6EfUDArY8,3496
51
51
  visidata/pyobj.py,sha256=UsjOnUIgDBVHjaIslPyPkmBwgjQk79eS38t2JS0oWbo,14003
52
52
  visidata/rename_col.py,sha256=S1vtd4SljhL34dMQLc5XRTB8fQ9PDuKoTWx1MA4F7t0,1896
53
- visidata/save.py,sha256=KIOsuHtyMf174_xj42n3N2tgh4VICQ8yBWxUo3cGo2U,8736
53
+ visidata/save.py,sha256=FYAQbB2A1_Ne8t2ekyeXfYCbWigNUhofzEtIIvsTP1k,8980
54
54
  visidata/search.py,sha256=5s9sJ5j-kOxhbcthdRajBN_WO1SjJypcPhN7cf50Ltk,6201
55
55
  visidata/selection.py,sha256=fV7T_QOQiwMyFKucXk-gEWdA6Mf9WqsHfGcFEp0EFd0,11205
56
- visidata/settings.py,sha256=8mcySMYyawujJuZuA4lTplWNaVXA3Lv1lHrNBtVpY4I,20368
57
- visidata/sheets.py,sha256=CuNEqoLLG4PP0T1HT3Ox89apUnsx73tsph2ApjBAEWk,51201
56
+ visidata/settings.py,sha256=8k8hb_WfNyOAkY9ucKJVolTHO0dw_q50CiPKeJSigBQ,20508
57
+ visidata/sheets.py,sha256=duusnWN-svL8qCcUF76PtG9PHrATWXH4yEf4v23Kxhg,54488
58
58
  visidata/shell.py,sha256=gw55hqrvocrEp2MJ7ysRhWCeIhqDGUTM-wwPMjUtX2g,10979
59
- visidata/sidebar.py,sha256=6k080QvryxXjnxOyQ65C70cGhYV9wY-w0sd-M-4OTxY,7373
59
+ visidata/sidebar.py,sha256=3LiTtFyWMruQre1KfjyvomToCtPGjs4zMCWQACtF2Eg,7470
60
60
  visidata/sort.py,sha256=Mn6C1DxQhP3k_OQ_scuUbH-sWReGOG-0VhXzbK9chtY,7574
61
61
  visidata/statusbar.py,sha256=7INtMF3DDz_V7h9y13SAXgTCfAZASAPPzBjSQs0zvTE,9150
62
62
  visidata/stored_list.py,sha256=HUGixWL77ps_WifIqHxM9XWzoN3JK7QRQI8faWlsiIg,1280
63
63
  visidata/text_source.py,sha256=SkiMmOXuCwCrS5vkedzm6wusFPSKL1jOuGqxMdICix4,1649
64
64
  visidata/textsheet.py,sha256=QJ7FvyKyMziVnA8aJFklnEifjks6NpUEeqV35nRdScI,4829
65
65
  visidata/theme.py,sha256=v9XoPeRQ-NhAKTux2zSxOiWWDL-FGfez7BPVqKitFGY,1152
66
- visidata/threads.py,sha256=CRdka6vt2p9kfBu4n8GzyoZhSFWujFchvdtEizk4uWQ,17132
66
+ visidata/threads.py,sha256=JZgPXpt2wNKvUWp__NaIXGmV1M1dNgpNxsJD2OKGqrA,18061
67
67
  visidata/tuiwin.py,sha256=4tm7tGzR5NzdkOAZwVfqb2Q1gTs3-ijwdsvb5lkjV3M,730
68
68
  visidata/type_currency.py,sha256=U4ySuux73w8W0YCrif5AZg7_tXXIa_x7inbhTu0xQS0,1066
69
69
  visidata/type_date.py,sha256=Dm7C1p956fD-cJ7frbBcT2_aICSsMgJM4PIvhAPtxT8,4981
70
70
  visidata/type_floatsi.py,sha256=bRJt0GoTUwNTvPNqRII-vf_pF3PI7xbeVc7AP1YsmCQ,943
71
- visidata/undo.py,sha256=0fgg36GpYho4mIq-L9diDcyrkFoQUIxO_R25DC7_tsE,4042
72
- visidata/utils.py,sha256=VvmYv-ELC3ZUqvm-ylU7K4WV4Ug_cHgLb-birsj_m1Y,6220
71
+ visidata/undo.py,sha256=Ug75axCW0UKLz8aAiHJ_ypctlaOWZd_m719ohPOS5Us,4016
72
+ visidata/utils.py,sha256=6eIkhA0da6yCg92Oo4Jcvnzo2w5mdxlKzLf-wt9luD0,6801
73
73
  visidata/vdobj.py,sha256=22NiuOgp_MKcr1CuwmMxszweMVjcCNTRFYQ8lulcFIo,6262
74
74
  visidata/windows.py,sha256=t096b2VDbTEZCVoV6L_UszHOhANUUW-uEwHKMcRu2b0,155
75
75
  visidata/wrappers.py,sha256=n2vncibuiDp7f_LkIpRsTREjcz4XkH8gZpemhhLuYHQ,3396
@@ -110,7 +110,7 @@ visidata/experimental/google.py,sha256=DfPalJ_f142UReDqUqfkUtGFbFnT_Nf2QPEYJXEki
110
110
  visidata/experimental/gsheets.py,sha256=acSXoWYUbUQEYlsWedLQwV3cvZhElOwhFzhzqV_3APs,2870
111
111
  visidata/experimental/helloworld.py,sha256=Djjd3bTPXJ8-jKtM6EuEwR8hnV57JTXsabBOcEIEHVo,347
112
112
  visidata/experimental/live_search.py,sha256=W9NF_RIKlZtDpbYuH84F35pB-EFt-rZhxl9r088mPxA,1223
113
- visidata/experimental/liveupdate.py,sha256=kNj8k4RgTjsNAEf1yoVffNjx6hfQVXOW8uky7bRgl9Q,1576
113
+ visidata/experimental/liveupdate.py,sha256=0RVjlfigENUuDngek2SBw9C6SJC67VBI0bzHLTVN9S8,1586
114
114
  visidata/experimental/mark.py,sha256=JKA7VZpTJ-5mlDUsZuo74hhOT6GNUVg70CdxL9-fqYw,4856
115
115
  visidata/experimental/rownum.py,sha256=9CHF80aecm3r4MLvIvet_Qmm7CViwrroXTce7Za9SjE,2057
116
116
  visidata/experimental/slide_cells.py,sha256=s7_RBJtPgKrNMtW5f7P4N7hpkY9-gQoKr3NXij2FzhY,722
@@ -122,7 +122,7 @@ visidata/features/addcol_audiometadata.py,sha256=a8801aTjUKv0VvwfW8TkMkTaXW7f3bn
122
122
  visidata/features/addcol_histogram.py,sha256=vPXpsQXTHRclGYgrSSOsIQTgcpQGNpL1lYMRfO-CoE0,1058
123
123
  visidata/features/canvas_save_svg.py,sha256=azsh4xbewRhqPBRAncyh5amNut2htRg4hGefUC9EPhk,2130
124
124
  visidata/features/change_precision.py,sha256=fFat1AIfyE6jdPrmMU9RdOa-E8a92WWNptbfCWXHS_g,1338
125
- visidata/features/cmdpalette.py,sha256=L5WmAcAP5jPDMJiQRJSHQeQt5NI2fNE37ncuR6BCUuU,7539
125
+ visidata/features/cmdpalette.py,sha256=18soipf-wbSRVNKZ41-6tammw6X6V6nEkMEekalv5_g,9332
126
126
  visidata/features/colorbrewer.py,sha256=FpprltrQwLvpR1BQnbcWUhPwowQmhHaygrUHGziJXZw,10536
127
127
  visidata/features/colorsheet.py,sha256=058ljvFHCZlMzfgRRPRzKGIxSfotHo8PG78qMKX74Ps,1505
128
128
  visidata/features/command_server.py,sha256=Y_jkEqzlYUxsp_ZV6cnPQ_UGNr6xeWH06f5nIw7-ut8,3131
@@ -130,17 +130,17 @@ visidata/features/currency_to_usd.py,sha256=BCmhWN5ZmWlgjVZY5CGRpG_iDDnTYk9twIrV
130
130
  visidata/features/customdate.py,sha256=0VL9JzcphaTY8pToN9GizV3jfAIV1xTllFPGeQPmnr8,1191
131
131
  visidata/features/dedupe.py,sha256=NBigolkiqgq3wqCmeVNuGhCd0FIkICyjsSjZjl1hL9U,3586
132
132
  visidata/features/describe.py,sha256=LnjMVCweWtpttwtGBqM6rtFJ5AgADZT1zIHC5Q-4EnI,5063
133
- visidata/features/expand_cols.py,sha256=CTpHC9cTQfGtqZeVtkbOsKY6ddoPZp8LIu5AmInt_IY,7767
133
+ visidata/features/expand_cols.py,sha256=YOv6O6LTT6K6QFyX5r_pflKjmtKb6BJ7p85JenLO3cE,7737
134
134
  visidata/features/fill.py,sha256=_ZLb-ArfQ6vbcalpuTV8QYHhNEbZsj5cMmukLQ6DW6A,1127
135
135
  visidata/features/freeze.py,sha256=WEil1u8V-ICwbMjgjXFOokQ5c6rI6UTXcv63Gyrkf7Y,2979
136
- visidata/features/go_col.py,sha256=a_wIiXFQCX57P8Lp3rWIy9yGTIX_EMZ_P2JbSUQM2gE,2835
136
+ visidata/features/go_col.py,sha256=ODYnAiyltHpYXCslfNCfFsMPcoJ4ycyImgHur6uWQJk,2784
137
137
  visidata/features/graph_seaborn.py,sha256=8VTyEQU2TqYLuQ1ge0Hpv-KfuFxugehxSh1vgKPSmQI,2708
138
138
  visidata/features/graph_zoom_y.py,sha256=_FM73ek4GT2p0Odfq4Jgopx6QbQ6FUk-3ZPFdRCpVSk,1639
139
139
  visidata/features/hint_types.py,sha256=OUge1X2jUFLCmXPLpi0J5UbAEpsbFcaZI7eVYh4VQyg,589
140
140
  visidata/features/incr.py,sha256=M8n8p7hdCL7LJetYk-ctg3_irY3dzNijxuD1e6R48Xk,1608
141
141
  visidata/features/join.py,sha256=u6SeHa0p85CEVK3f8fzrUA8xw3OlS3oh1JYz6vgjylI,16844
142
142
  visidata/features/known_cols.py,sha256=2MF1fzhe-kMYWL3WQfVl-7oIA2574Zij9wlEKJKtUr8,425
143
- visidata/features/layout.py,sha256=iGrp2CM2YCLm7bX6EcsySJm9ht2nGu1HueutV3zJ_gg,3874
143
+ visidata/features/layout.py,sha256=uo4Qqh1AE9yKxpjZf6Ze4wnVN0wLT_7o_eVk1nGI89s,3903
144
144
  visidata/features/melt.py,sha256=l4ePMmKq1ft70NFk5wDuzjG-ZQ1AAwnkFa3vL6WR7mg,4124
145
145
  visidata/features/normcol.py,sha256=R3cO9E6pTlHPPBI6cdMjSsP2PaDXe7eXOA93H1a38Io,2972
146
146
  visidata/features/open_config.py,sha256=rEgliwfnp0ewdKLuu3YPh6BJVefEAXLi9bF5WVhTy-M,236
@@ -150,7 +150,7 @@ visidata/features/procmgr.py,sha256=3ixPaXQpsiTFZmCZmTeW9jyxnX3rGHxF7wOwek9OPic,
150
150
  visidata/features/random_sample.py,sha256=oSZs4PEkx3_Ik7SI4ieDbhq16wImO9jW_kZERLPRUvg,528
151
151
  visidata/features/rank.py,sha256=_-dDhjJov18JML0qlfmtZkPrbK6nhJxor03sa5sXgkw,4835
152
152
  visidata/features/regex.py,sha256=0wn5L6tcuA-BmrtUGKH8WRZyK3sMxkI0maG4g9FMrU4,5748
153
- visidata/features/reload_every.py,sha256=hrwW_-vfo3J6K0PYWt9sjDN6ip9U-6na6Stz0CRjKJg,1880
153
+ visidata/features/reload_every.py,sha256=xbuYchBN824KdSOKPvzK6FQ4xOFDC3vPZon_eLwVvYM,1966
154
154
  visidata/features/rename_col_cascade.py,sha256=WQgAuZiYZDHPy71muguXNzduReT8xb-A4verF8fkiLU,909
155
155
  visidata/features/repeat.py,sha256=qJIPccmoRIzBxYVW6ye2At2nlUCDFy-p5CqVVFJMiAM,1180
156
156
  visidata/features/scroll_context.py,sha256=XBohcurnkdNK3MPLaWPKXHJ2pfUVrooX6T4PL7DyOQw,2221
@@ -170,7 +170,7 @@ visidata/features/window.py,sha256=qpmlyHe3_ay3WEEOyVPFgGSZ6mED3i7-mfqNCrzx9J8,2
170
170
  visidata/guides/AggregatorsSheet.md,sha256=I4Ih3uFgcAUXcISpFt1iQS2AMROYdaKhqg4bilIwEho,2727
171
171
  visidata/guides/ClipboardGuide.md,sha256=fr30C4ertB2To2dibQI1Vt9W2lJLqzhyyuv1EiqR0LE,1183
172
172
  visidata/guides/ColumnsGuide.md,sha256=sZ3YVIHwtAqWqi2mNrWG6ZGwuZ7M2a1FwIRq4OLFtU8,1430
173
- visidata/guides/CommandsSheet.md,sha256=tGjQaZ_4JTz20Nq3A5dHY7OHc3U3dUdEO4KrmcNjC0E,877
173
+ visidata/guides/CommandsSheet.md,sha256=UOGM3rTKiv0MJVsrZMAcpnn9ggU6n5xcx7cUBUlJpHc,937
174
174
  visidata/guides/DirSheet.md,sha256=Z7EPng61YyQJFudZHVuta3ZDXbBDYToY7RNqA4dvamw,1143
175
175
  visidata/guides/ErrorsSheet.md,sha256=659ZS2a4oF_ckm68Y9vJ_9oxbAbfzw9uRuRtJUt78BA,669
176
176
  visidata/guides/FrequencyTable.md,sha256=fHvEGtU3S-4-CeQI7UfsdyQ-Oze6aEkZMfubPElw2CM,1318
@@ -196,10 +196,10 @@ visidata/loaders/api_airtable.py,sha256=OMNicZ56NbkqjWAvhNOcw1ormu4KEvKyS4-Kv2me
196
196
  visidata/loaders/api_matrix.py,sha256=eGIT6fuk1MDdf56Or3df9TNrVvXAcH1YkpBnkAH3UPw,5205
197
197
  visidata/loaders/api_reddit.py,sha256=B76dKwowV1huDRZ8HZJKkq_n-9fESMSGHMJ-abM0nLw,12569
198
198
  visidata/loaders/api_zulip.py,sha256=VQhc3D44DAZag4JS12n5IQMIoHaxLdFQ1jvuUthD8UY,9411
199
- visidata/loaders/archive.py,sha256=wQwZMO3li1rqE7BAjJySN8IIRAILvYNYED9vaGjWkSQ,6128
199
+ visidata/loaders/archive.py,sha256=bywxTZBPDXBLOFlgR-YKU67uofUQ66G2agU3uD4NCZ8,7152
200
200
  visidata/loaders/arrow.py,sha256=Ha4aKsMt-vLMQH9spWZSG-NCIGN1hEql6FHhnHL66k0,4062
201
201
  visidata/loaders/conll.py,sha256=3EmzwevnL-9NxhEmRFn3T9JoEHcj3KxBpu5n-1DhAPc,1767
202
- visidata/loaders/csv.py,sha256=bvzfq4Gc1PekdI8pB_m3xtbW_pLxobKSmoVUmIo3C-M,3240
202
+ visidata/loaders/csv.py,sha256=gWWG3Val7w_HVFNnl1q4SCucsL88EyHefTVcVX053C8,3499
203
203
  visidata/loaders/eml.py,sha256=0Rs2xlK2xL-m0GNLflD2PHe9op8u_VgkK1hLcSiZAck,2157
204
204
  visidata/loaders/f5log.py,sha256=Lgxe07WK7FMIfN2pmqCc4kko3OcFvRGOT2XzkJQBo9g,46267
205
205
  visidata/loaders/fec.py,sha256=Mdk4F5tMO1JxC_qdOPRiqiCkuih4I8ve8NdwawG_Rro,8485
@@ -254,14 +254,14 @@ visidata/loaders/xml.py,sha256=bKUSh2IKusjmiTA7NeoGiuuD3pCvcQGT0MQ3CFdH-us,3263
254
254
  visidata/loaders/xword.py,sha256=FCoye38YPUmAG7nKA5uDQSxFbUXgqQkEaiflih6A-1U,3521
255
255
  visidata/loaders/yaml.py,sha256=BEbL7b7xF82WnWbtKyMN3mIFf5R3m27aWxFMafkizqQ,1756
256
256
  visidata/man/parse_options.py,sha256=e4uDcCOx87OGUEHtk410Ja5BONbgUuNb2yOn5hgkGI0,3268
257
- visidata/man/vd.1,sha256=2jV3v8XbACYBFPArWN0ToY-_JW4KdMAXLQty9hmjA8w,59586
258
- visidata/man/vd.txt,sha256=jhGYETBVA0XMb591uvVbyRGPsRNX2ZdjRgkDR4AUtCw,69346
257
+ visidata/man/vd.1,sha256=bKMcbb3N6L7aOkVxiov-6xMF-DJUL6QpSU4-tGWvTPw,60109
258
+ visidata/man/vd.txt,sha256=-I5IYD2sho6BnmCvteaa0wMbNHSgxrcH12ZX1Mf6bWM,70718
259
259
  visidata/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
260
260
  visidata/tests/benchmark.csv,sha256=ZX_-M4QitNvBSir-JbsUhX_rqGASZAfH7o3X7v9kejs,4668
261
261
  visidata/tests/conftest.py,sha256=qo5k5WWd0tY-c1k1aOBPNEMP90eghEt0UEk62z06Bto,563
262
262
  visidata/tests/sample.tsv,sha256=PpOOwpDffq6UzYUH0HlVoXwUvXA9q4ADRs64KPf6M4w,2046
263
- visidata/tests/test_cliptext.py,sha256=OTfpLXO7Y-Ex2jDLLNVLa9kYvBbbmIFcskHUJJRWbLo,7108
264
- visidata/tests/test_commands.py,sha256=bHu2YKEh8dTBRQ7jnT8QllhVcTIhQfVF-bLImkQ8ZfM,7096
263
+ visidata/tests/test_cliptext.py,sha256=_daE8M6MPBaKU-nM_p6CGJz3zG9zNfbloobW0L1islg,8260
264
+ visidata/tests/test_commands.py,sha256=7P6vSGXW-Z97pEcOidjtr--012etWh435Pbqu6h19mI,7115
265
265
  visidata/tests/test_completer.py,sha256=bPYdeIQ8-AfnKQK-in0L22WgBSaTTjJk4bubMvriszQ,691
266
266
  visidata/tests/test_date.py,sha256=_goZr5nUoqWB5IZRBp7G9hnfoJtDDIkkajArjHmNazs,253
267
267
  visidata/tests/test_edittext.py,sha256=Y_fyoSUcenU62jvIAA5eI3G0dS0mBPyw_1A-rIRryM0,1950
@@ -274,13 +274,13 @@ visidata/themes/asciimono.py,sha256=V9qbQzsNuEti8_x-lO3Pw1rs0DpQM6Fk4sxAWs-Tm2Q,
274
274
  visidata/themes/light.py,sha256=KfWy6erdbutbz6RKTr9IIAbRc2Lz2SyIgu6Tj0S3m6I,1009
275
275
  visidata/vendor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
276
276
  visidata/vendor/appdirs.py,sha256=bv3lwBYfZNtNPOva2Kg1hB-p2oyp8XXQnOtAGe662ps,24527
277
- visidata-3.2.data/data/share/applications/visidata.desktop,sha256=0AYNevwQhmzguIPskekWPEh94g_blECxdKjtKEwBC04,125
278
- visidata-3.2.data/data/share/man/man1/vd.1,sha256=2jV3v8XbACYBFPArWN0ToY-_JW4KdMAXLQty9hmjA8w,59586
279
- visidata-3.2.data/data/share/man/man1/visidata.1,sha256=2jV3v8XbACYBFPArWN0ToY-_JW4KdMAXLQty9hmjA8w,59586
280
- visidata-3.2.data/scripts/vd2to3.vdx,sha256=NdyyINfa8vvg2LgKfIohMMGcJOCjpx7hqZWv0bUF3EU,183
281
- visidata-3.2.dist-info/LICENSE.gpl3,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
282
- visidata-3.2.dist-info/METADATA,sha256=R-qs_Ty2L1VjX_82MVM7Jl4wktqh-lqW-JKiJFHYiE4,7756
283
- visidata-3.2.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
284
- visidata-3.2.dist-info/entry_points.txt,sha256=8XjHrWP2-vFkygbrx6AHOdiZqt6B491ja6Wiqm0-4xo,76
285
- visidata-3.2.dist-info/top_level.txt,sha256=v2FzJlcgz-eSZeFIviYkZacHZJ8K3fjGbmj2B8QqyNc,9
286
- visidata-3.2.dist-info/RECORD,,
277
+ visidata-3.3.data/data/share/applications/visidata.desktop,sha256=0AYNevwQhmzguIPskekWPEh94g_blECxdKjtKEwBC04,125
278
+ visidata-3.3.data/data/share/man/man1/vd.1,sha256=bKMcbb3N6L7aOkVxiov-6xMF-DJUL6QpSU4-tGWvTPw,60109
279
+ visidata-3.3.data/data/share/man/man1/visidata.1,sha256=bKMcbb3N6L7aOkVxiov-6xMF-DJUL6QpSU4-tGWvTPw,60109
280
+ visidata-3.3.data/scripts/vd2to3.vdx,sha256=NdyyINfa8vvg2LgKfIohMMGcJOCjpx7hqZWv0bUF3EU,183
281
+ visidata-3.3.dist-info/LICENSE.gpl3,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
282
+ visidata-3.3.dist-info/METADATA,sha256=Nbqc_JrqQ2uv7ON68uu-TZCyzKhDuidLfV8WAsJIZfo,7756
283
+ visidata-3.3.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
284
+ visidata-3.3.dist-info/entry_points.txt,sha256=8XjHrWP2-vFkygbrx6AHOdiZqt6B491ja6Wiqm0-4xo,76
285
+ visidata-3.3.dist-info/top_level.txt,sha256=v2FzJlcgz-eSZeFIviYkZacHZJ8K3fjGbmj2B8QqyNc,9
286
+ visidata-3.3.dist-info/RECORD,,
File without changes