visidata 3.0.2__tar.gz → 3.1.1__tar.gz

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 (300) hide show
  1. {visidata-3.0.2 → visidata-3.1.1}/MANIFEST.in +1 -0
  2. {visidata-3.0.2/visidata.egg-info → visidata-3.1.1}/PKG-INFO +11 -4
  3. {visidata-3.0.2 → visidata-3.1.1}/README.md +8 -1
  4. {visidata-3.0.2 → visidata-3.1.1}/setup.py +20 -18
  5. {visidata-3.0.2 → visidata-3.1.1}/visidata/__init__.py +12 -10
  6. {visidata-3.0.2 → visidata-3.1.1}/visidata/_input.py +208 -202
  7. {visidata-3.0.2 → visidata-3.1.1}/visidata/_open.py +4 -1
  8. {visidata-3.0.2 → visidata-3.1.1}/visidata/_types.py +4 -3
  9. {visidata-3.0.2 → visidata-3.1.1}/visidata/aggregators.py +88 -39
  10. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vdsql/_ibis.py +7 -11
  11. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vdsql/clickhouse.py +2 -2
  12. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vdsql/snowflake.py +1 -1
  13. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vgit/status.py +1 -1
  14. {visidata-3.0.2 → visidata-3.1.1}/visidata/basesheet.py +11 -4
  15. {visidata-3.0.2 → visidata-3.1.1}/visidata/canvas.py +54 -20
  16. {visidata-3.0.2 → visidata-3.1.1}/visidata/clipboard.py +13 -6
  17. {visidata-3.0.2 → visidata-3.1.1}/visidata/cliptext.py +7 -6
  18. {visidata-3.0.2 → visidata-3.1.1}/visidata/cmdlog.py +40 -27
  19. {visidata-3.0.2 → visidata-3.1.1}/visidata/column.py +14 -49
  20. {visidata-3.0.2 → visidata-3.1.1}/visidata/ddw/regex.ddw +3 -2
  21. {visidata-3.0.2 → visidata-3.1.1}/visidata/deprecated.py +14 -2
  22. {visidata-3.0.2 → visidata-3.1.1}/visidata/desktop/visidata.desktop +2 -2
  23. {visidata-3.0.2 → visidata-3.1.1}/visidata/editor.py +1 -0
  24. {visidata-3.0.2 → visidata-3.1.1}/visidata/errors.py +1 -1
  25. visidata-3.1.1/visidata/experimental/sort_selected.py +54 -0
  26. visidata-3.1.1/visidata/expr.py +116 -0
  27. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/change_precision.py +1 -3
  28. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/cmdpalette.py +17 -2
  29. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/colorsheet.py +1 -1
  30. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/dedupe.py +3 -3
  31. visidata-3.1.1/visidata/features/go_col.py +71 -0
  32. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/graph_seaborn.py +1 -1
  33. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/join.py +20 -10
  34. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/layout.py +16 -3
  35. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/ping.py +16 -12
  36. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/regex.py +5 -5
  37. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/status_source.py +3 -1
  38. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/sysedit.py +1 -1
  39. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/transpose.py +2 -1
  40. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/type_ipaddr.py +2 -4
  41. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/unfurl.py +1 -0
  42. {visidata-3.0.2 → visidata-3.1.1}/visidata/form.py +2 -2
  43. {visidata-3.0.2 → visidata-3.1.1}/visidata/freqtbl.py +16 -11
  44. {visidata-3.0.2 → visidata-3.1.1}/visidata/fuzzymatch.py +1 -0
  45. {visidata-3.0.2 → visidata-3.1.1}/visidata/graph.py +163 -12
  46. {visidata-3.0.2 → visidata-3.1.1}/visidata/guide.py +57 -24
  47. visidata-3.1.1/visidata/guides/ClipboardGuide.md +48 -0
  48. visidata-3.1.1/visidata/guides/ColumnsGuide.md +52 -0
  49. visidata-3.1.1/visidata/guides/CommandsSheet.md +28 -0
  50. visidata-3.1.1/visidata/guides/DirSheet.md +34 -0
  51. visidata-3.0.2/visidata/features/errors_guide.py → visidata-3.1.1/visidata/guides/ErrorsSheet.md +2 -11
  52. visidata-3.1.1/visidata/guides/FrequencyTable.md +42 -0
  53. visidata-3.1.1/visidata/guides/GrepSheet.md +28 -0
  54. visidata-3.1.1/visidata/guides/JsonSheet.md +38 -0
  55. visidata-3.1.1/visidata/guides/MacrosSheet.md +19 -0
  56. visidata-3.1.1/visidata/guides/MeltGuide.md +52 -0
  57. visidata-3.1.1/visidata/guides/MemorySheet.md +7 -0
  58. visidata-3.1.1/visidata/guides/MenuGuide.md +26 -0
  59. visidata-3.1.1/visidata/guides/ModifyGuide.md +38 -0
  60. visidata-3.1.1/visidata/guides/PivotGuide.md +71 -0
  61. visidata-3.1.1/visidata/guides/RegexGuide.md +107 -0
  62. visidata-3.1.1/visidata/guides/SelectionGuide.md +44 -0
  63. visidata-3.1.1/visidata/guides/SlideGuide.md +26 -0
  64. visidata-3.1.1/visidata/guides/SplitpaneGuide.md +15 -0
  65. visidata-3.1.1/visidata/guides/TypesSheet.md +43 -0
  66. visidata-3.1.1/visidata/guides/XsvGuide.md +36 -0
  67. {visidata-3.0.2 → visidata-3.1.1}/visidata/help.py +6 -6
  68. {visidata-3.0.2 → visidata-3.1.1}/visidata/hint.py +2 -1
  69. {visidata-3.0.2 → visidata-3.1.1}/visidata/indexsheet.py +2 -2
  70. {visidata-3.0.2 → visidata-3.1.1}/visidata/interface.py +13 -14
  71. {visidata-3.0.2 → visidata-3.1.1}/visidata/keys.py +4 -1
  72. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/api_airtable.py +1 -1
  73. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/archive.py +1 -1
  74. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/csv.py +9 -5
  75. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/eml.py +11 -6
  76. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/f5log.py +1 -0
  77. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/fec.py +18 -42
  78. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/fixed_width.py +19 -3
  79. visidata-3.1.1/visidata/loaders/grep.py +121 -0
  80. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/html.py +1 -0
  81. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/http.py +6 -1
  82. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/json.py +22 -4
  83. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/jsonla.py +8 -2
  84. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/mailbox.py +1 -0
  85. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/markdown.py +25 -6
  86. visidata-3.1.1/visidata/loaders/msgpack.py +19 -0
  87. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/npy.py +0 -1
  88. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/odf.py +18 -4
  89. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/orgmode.py +1 -1
  90. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/rec.py +6 -4
  91. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/sas.py +11 -4
  92. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/scrape.py +0 -1
  93. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/texttables.py +2 -0
  94. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/tsv.py +24 -7
  95. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/unzip_http.py +127 -3
  96. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/vds.py +4 -0
  97. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/vdx.py +1 -1
  98. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/xlsx.py +5 -0
  99. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/xml.py +2 -1
  100. {visidata-3.0.2 → visidata-3.1.1}/visidata/macros.py +14 -31
  101. {visidata-3.0.2 → visidata-3.1.1}/visidata/main.py +14 -13
  102. {visidata-3.0.2 → visidata-3.1.1}/visidata/mainloop.py +14 -6
  103. {visidata-3.0.2 → visidata-3.1.1}/visidata/man/vd.1 +72 -39
  104. {visidata-3.0.2 → visidata-3.1.1}/visidata/man/vd.txt +72 -41
  105. {visidata-3.0.2 → visidata-3.1.1}/visidata/man/visidata.1 +72 -39
  106. {visidata-3.0.2 → visidata-3.1.1}/visidata/memory.py +15 -4
  107. {visidata-3.0.2 → visidata-3.1.1}/visidata/menu.py +14 -3
  108. {visidata-3.0.2 → visidata-3.1.1}/visidata/metasheets.py +5 -6
  109. {visidata-3.0.2 → visidata-3.1.1}/visidata/modify.py +4 -4
  110. {visidata-3.0.2 → visidata-3.1.1}/visidata/mouse.py +2 -0
  111. {visidata-3.0.2 → visidata-3.1.1}/visidata/movement.py +14 -28
  112. {visidata-3.0.2 → visidata-3.1.1}/visidata/optionssheet.py +3 -5
  113. {visidata-3.0.2 → visidata-3.1.1}/visidata/path.py +59 -37
  114. {visidata-3.0.2 → visidata-3.1.1}/visidata/pivot.py +8 -5
  115. {visidata-3.0.2 → visidata-3.1.1}/visidata/pyobj.py +63 -9
  116. {visidata-3.0.2 → visidata-3.1.1}/visidata/save.py +16 -9
  117. {visidata-3.0.2 → visidata-3.1.1}/visidata/search.py +4 -4
  118. {visidata-3.0.2 → visidata-3.1.1}/visidata/selection.py +10 -56
  119. {visidata-3.0.2 → visidata-3.1.1}/visidata/settings.py +37 -35
  120. {visidata-3.0.2 → visidata-3.1.1}/visidata/sheets.py +186 -108
  121. {visidata-3.0.2 → visidata-3.1.1}/visidata/shell.py +22 -12
  122. {visidata-3.0.2 → visidata-3.1.1}/visidata/sidebar.py +71 -16
  123. {visidata-3.0.2 → visidata-3.1.1}/visidata/sort.py +21 -6
  124. {visidata-3.0.2 → visidata-3.1.1}/visidata/statusbar.py +42 -5
  125. {visidata-3.0.2 → visidata-3.1.1}/visidata/stored_list.py +5 -2
  126. {visidata-3.0.2 → visidata-3.1.1}/visidata/tests/conftest.py +1 -0
  127. {visidata-3.0.2 → visidata-3.1.1}/visidata/tests/test_commands.py +9 -1
  128. visidata-3.1.1/visidata/tests/test_completer.py +18 -0
  129. {visidata-3.0.2 → visidata-3.1.1}/visidata/tests/test_edittext.py +3 -2
  130. {visidata-3.0.2 → visidata-3.1.1}/visidata/text_source.py +7 -4
  131. {visidata-3.0.2 → visidata-3.1.1}/visidata/textsheet.py +20 -6
  132. {visidata-3.0.2 → visidata-3.1.1}/visidata/themes/ascii8.py +9 -6
  133. {visidata-3.0.2 → visidata-3.1.1}/visidata/themes/asciimono.py +14 -4
  134. {visidata-3.0.2 → visidata-3.1.1}/visidata/threads.py +13 -3
  135. {visidata-3.0.2 → visidata-3.1.1}/visidata/tuiwin.py +5 -1
  136. {visidata-3.0.2 → visidata-3.1.1}/visidata/type_currency.py +1 -2
  137. {visidata-3.0.2 → visidata-3.1.1}/visidata/type_date.py +6 -1
  138. {visidata-3.0.2 → visidata-3.1.1}/visidata/undo.py +10 -5
  139. {visidata-3.0.2 → visidata-3.1.1}/visidata/utils.py +9 -3
  140. {visidata-3.0.2 → visidata-3.1.1}/visidata/vdobj.py +21 -1
  141. {visidata-3.0.2 → visidata-3.1.1}/visidata/wrappers.py +9 -1
  142. {visidata-3.0.2 → visidata-3.1.1/visidata.egg-info}/PKG-INFO +11 -4
  143. {visidata-3.0.2 → visidata-3.1.1}/visidata.egg-info/SOURCES.txt +25 -1
  144. {visidata-3.0.2 → visidata-3.1.1}/visidata.egg-info/requires.txt +13 -2
  145. visidata-3.0.2/visidata/expr.py +0 -65
  146. {visidata-3.0.2 → visidata-3.1.1}/LICENSE.gpl3 +0 -0
  147. {visidata-3.0.2 → visidata-3.1.1}/bin/vd +0 -0
  148. {visidata-3.0.2 → visidata-3.1.1}/bin/vd2to3.vdx +0 -0
  149. {visidata-3.0.2 → visidata-3.1.1}/setup.cfg +0 -0
  150. {visidata-3.0.2 → visidata-3.1.1}/visidata/__main__.py +0 -0
  151. {visidata-3.0.2 → visidata-3.1.1}/visidata/_urlcache.py +0 -0
  152. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/__init__.py +0 -0
  153. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vdsql/__about__.py +0 -0
  154. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vdsql/__init__.py +0 -0
  155. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vdsql/__main__.py +0 -0
  156. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vdsql/bigquery.py +0 -0
  157. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vdsql/setup.py +0 -0
  158. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vgit/__init__.py +0 -0
  159. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vgit/__main__.py +0 -0
  160. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vgit/abort.py +0 -0
  161. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vgit/blame.py +0 -0
  162. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vgit/branch.py +0 -0
  163. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vgit/config.py +0 -0
  164. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vgit/diff.py +0 -0
  165. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vgit/gitsheet.py +0 -0
  166. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vgit/grep.py +0 -0
  167. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vgit/log.py +0 -0
  168. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vgit/main.py +0 -0
  169. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vgit/remote.py +0 -0
  170. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vgit/repos.py +0 -0
  171. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vgit/setup.py +0 -0
  172. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vgit/stash.py +0 -0
  173. {visidata-3.0.2 → visidata-3.1.1}/visidata/apps/vgit/statusbar.py +0 -0
  174. {visidata-3.0.2 → visidata-3.1.1}/visidata/bezier.py +0 -0
  175. {visidata-3.0.2 → visidata-3.1.1}/visidata/canvas_text.py +0 -0
  176. {visidata-3.0.2 → visidata-3.1.1}/visidata/choose.py +0 -0
  177. {visidata-3.0.2 → visidata-3.1.1}/visidata/clean_names.py +0 -0
  178. {visidata-3.0.2 → visidata-3.1.1}/visidata/color.py +0 -0
  179. {visidata-3.0.2 → visidata-3.1.1}/visidata/ddw/input.ddw +0 -0
  180. {visidata-3.0.2 → visidata-3.1.1}/visidata/ddwplay.py +0 -0
  181. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/__init__.py +0 -0
  182. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/diff_sheet.py +0 -0
  183. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/digit_autoedit.py +0 -0
  184. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/gdrive.py +0 -0
  185. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/google.py +0 -0
  186. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/gsheets.py +0 -0
  187. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/live_search.py +0 -0
  188. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/liveupdate.py +0 -0
  189. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/mark.py +0 -0
  190. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/noahs_tapestry/__init__.py +0 -0
  191. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/noahs_tapestry/clues.json +0 -0
  192. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/noahs_tapestry/flame.ddw +0 -0
  193. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/noahs_tapestry/menorah.ddw +0 -0
  194. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/noahs_tapestry/noahs.sqlite +0 -0
  195. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/noahs_tapestry/puzzle0.md +0 -0
  196. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/noahs_tapestry/puzzle1.md +0 -0
  197. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/noahs_tapestry/puzzle2.md +0 -0
  198. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/noahs_tapestry/puzzle3.md +0 -0
  199. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/noahs_tapestry/puzzle4.md +0 -0
  200. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/noahs_tapestry/puzzle5.md +0 -0
  201. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/noahs_tapestry/puzzle6.md +0 -0
  202. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/noahs_tapestry/puzzle7.md +0 -0
  203. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/noahs_tapestry/puzzle8.md +0 -0
  204. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/noahs_tapestry/solutions.json +0 -0
  205. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/noahs_tapestry/tapestry.ddw +0 -0
  206. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/noahs_tapestry/tapestry.py +0 -0
  207. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/rownum.py +0 -0
  208. {visidata-3.0.2 → visidata-3.1.1}/visidata/experimental/slide_cells.py +0 -0
  209. {visidata-3.0.2 → visidata-3.1.1}/visidata/extensible.py +0 -0
  210. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/__init__.py +0 -0
  211. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/addcol_audiometadata.py +0 -0
  212. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/addcol_histogram.py +0 -0
  213. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/canvas_save_svg.py +0 -0
  214. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/colorbrewer.py +0 -0
  215. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/command_server.py +0 -0
  216. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/currency_to_usd.py +0 -0
  217. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/customdate.py +0 -0
  218. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/describe.py +0 -0
  219. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/expand_cols.py +0 -0
  220. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/fill.py +0 -0
  221. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/freeze.py +0 -0
  222. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/helloworld.py +0 -0
  223. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/hint_types.py +0 -0
  224. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/incr.py +0 -0
  225. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/known_cols.py +0 -0
  226. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/melt.py +0 -0
  227. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/normcol.py +0 -0
  228. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/open_config.py +0 -0
  229. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/open_syspaste.py +0 -0
  230. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/procmgr.py +0 -0
  231. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/random_sample.py +0 -0
  232. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/reload_every.py +0 -0
  233. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/rename_col_cascade.py +0 -0
  234. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/repeat.py +0 -0
  235. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/scroll_context.py +0 -0
  236. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/select_equal_selected.py +0 -0
  237. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/setcol_fake.py +0 -0
  238. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/slide.py +0 -0
  239. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/sparkline.py +0 -0
  240. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/sysopen_mailcap.py +0 -0
  241. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/term_extras.py +0 -0
  242. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/type_url.py +0 -0
  243. {visidata-3.0.2 → visidata-3.1.1}/visidata/features/window.py +0 -0
  244. {visidata-3.0.2 → visidata-3.1.1}/visidata/input_history.py +0 -0
  245. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/__init__.py +0 -0
  246. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/_pandas.py +0 -0
  247. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/api_matrix.py +0 -0
  248. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/api_reddit.py +0 -0
  249. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/api_zulip.py +0 -0
  250. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/arrow.py +0 -0
  251. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/conll.py +0 -0
  252. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/frictionless.py +0 -0
  253. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/geojson.py +0 -0
  254. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/google.py +0 -0
  255. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/graphviz.py +0 -0
  256. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/hdf5.py +0 -0
  257. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/imap.py +0 -0
  258. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/jrnl.py +0 -0
  259. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/lsv.py +0 -0
  260. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/mbtiles.py +0 -0
  261. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/mysql.py +0 -0
  262. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/pandas_freqtbl.py +0 -0
  263. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/parquet.py +0 -0
  264. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/pcap.py +0 -0
  265. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/pdf.py +0 -0
  266. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/png.py +0 -0
  267. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/postgres.py +0 -0
  268. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/s3.py +0 -0
  269. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/shp.py +0 -0
  270. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/spss.py +0 -0
  271. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/sqlite.py +0 -0
  272. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/toml.py +0 -0
  273. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/ttf.py +0 -0
  274. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/usv.py +0 -0
  275. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/vcf.py +0 -0
  276. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/xlsb.py +0 -0
  277. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/xword.py +0 -0
  278. {visidata-3.0.2 → visidata-3.1.1}/visidata/loaders/yaml.py +0 -0
  279. {visidata-3.0.2 → visidata-3.1.1}/visidata/macos.py +0 -0
  280. {visidata-3.0.2 → visidata-3.1.1}/visidata/man/parse_options.py +0 -0
  281. {visidata-3.0.2 → visidata-3.1.1}/visidata/motd.py +0 -0
  282. {visidata-3.0.2 → visidata-3.1.1}/visidata/plugins.py +0 -0
  283. {visidata-3.0.2 → visidata-3.1.1}/visidata/rename_col.py +0 -0
  284. {visidata-3.0.2 → visidata-3.1.1}/visidata/tests/__init__.py +0 -0
  285. {visidata-3.0.2 → visidata-3.1.1}/visidata/tests/benchmark.csv +0 -0
  286. {visidata-3.0.2 → visidata-3.1.1}/visidata/tests/sample.tsv +0 -0
  287. {visidata-3.0.2 → visidata-3.1.1}/visidata/tests/test_cliptext.py +0 -0
  288. {visidata-3.0.2 → visidata-3.1.1}/visidata/tests/test_date.py +0 -0
  289. {visidata-3.0.2 → visidata-3.1.1}/visidata/tests/test_features.py +0 -0
  290. {visidata-3.0.2 → visidata-3.1.1}/visidata/tests/test_menu.py +0 -0
  291. {visidata-3.0.2 → visidata-3.1.1}/visidata/tests/test_path.py +0 -0
  292. {visidata-3.0.2 → visidata-3.1.1}/visidata/theme.py +0 -0
  293. {visidata-3.0.2 → visidata-3.1.1}/visidata/themes/__init__.py +0 -0
  294. {visidata-3.0.2 → visidata-3.1.1}/visidata/themes/light.py +0 -0
  295. {visidata-3.0.2 → visidata-3.1.1}/visidata/type_floatsi.py +0 -0
  296. {visidata-3.0.2 → visidata-3.1.1}/visidata/vendor/appdirs.py +0 -0
  297. {visidata-3.0.2 → visidata-3.1.1}/visidata/windows.py +0 -0
  298. {visidata-3.0.2 → visidata-3.1.1}/visidata.egg-info/dependency_links.txt +0 -0
  299. {visidata-3.0.2 → visidata-3.1.1}/visidata.egg-info/entry_points.txt +0 -0
  300. {visidata-3.0.2 → visidata-3.1.1}/visidata.egg-info/top_level.txt +0 -0
@@ -12,3 +12,4 @@ include visidata/experimental/noahs_tapestry/*.json
12
12
  include visidata/experimental/noahs_tapestry/*.md
13
13
  include visidata/experimental/noahs_tapestry/*.ddw
14
14
  include visidata/experimental/noahs_tapestry/*.sqlite
15
+ include visidata/guides/*.md
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: visidata
3
- Version: 3.0.2
3
+ Version: 3.1.1
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.0.2
6
+ Download-URL: https://github.com/saulpw/visidata/tarball/3.1.1
7
7
  Author: Saul Pwanson
8
8
  Author-email: visidata@saul.pw
9
9
  License: GPLv3
@@ -22,12 +22,12 @@ Classifier: Topic :: Scientific/Engineering
22
22
  Classifier: Topic :: Office/Business :: Financial :: Spreadsheet
23
23
  Classifier: Topic :: Scientific/Engineering :: Visualization
24
24
  Classifier: Topic :: Utilities
25
- Requires-Python: >=3.7
25
+ Requires-Python: >=3.8
26
26
  Description-Content-Type: text/markdown
27
27
  Provides-Extra: test
28
28
  License-File: LICENSE.gpl3
29
29
 
30
- # VisiData v3.0.2
30
+ # VisiData v3.1
31
31
 
32
32
  [![Tests](https://github.com/saulpw/visidata/workflows/visidata-ci-build/badge.svg)](https://github.com/saulpw/visidata/actions/workflows/main.yml)
33
33
  [![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/saulpw/visidata)
@@ -62,9 +62,16 @@ See [visidata.org/install](https://visidata.org/install) for detailed instructio
62
62
 
63
63
  ### Usage
64
64
 
65
+ On Linux and OS/X
66
+
65
67
  $ vd <input>
66
68
  $ <command> | vd
67
69
 
70
+ On Windows
71
+
72
+ $ visidata <input>
73
+ $ <command> | visidata
74
+
68
75
  Press `Ctrl+Q` to quit at any time.
69
76
 
70
77
  Hundreds of other commands and options are also available; see the documentation.
@@ -1,4 +1,4 @@
1
- # VisiData v3.0.2
1
+ # VisiData v3.1
2
2
 
3
3
  [![Tests](https://github.com/saulpw/visidata/workflows/visidata-ci-build/badge.svg)](https://github.com/saulpw/visidata/actions/workflows/main.yml)
4
4
  [![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/saulpw/visidata)
@@ -33,9 +33,16 @@ See [visidata.org/install](https://visidata.org/install) for detailed instructio
33
33
 
34
34
  ### Usage
35
35
 
36
+ On Linux and OS/X
37
+
36
38
  $ vd <input>
37
39
  $ <command> | vd
38
40
 
41
+ On Windows
42
+
43
+ $ visidata <input>
44
+ $ <command> | visidata
45
+
39
46
  Press `Ctrl+Q` to quit at any time.
40
47
 
41
48
  Hundreds of other commands and options are also available; see the documentation.
@@ -4,7 +4,7 @@ from setuptools import setup
4
4
 
5
5
  # tox can't actually run python3 setup.py: https://github.com/tox-dev/tox/issues/96
6
6
  # from visidata import __version__
7
- __version__ = "3.0.2"
7
+ __version__ = "3.1.1"
8
8
 
9
9
  setup(
10
10
  name="visidata",
@@ -13,7 +13,7 @@ setup(
13
13
  long_description=open("README.md").read(),
14
14
  long_description_content_type="text/markdown",
15
15
  author="Saul Pwanson",
16
- python_requires=">=3.7",
16
+ python_requires=">=3.8",
17
17
  author_email="visidata@saul.pw",
18
18
  url="https://visidata.org",
19
19
  download_url="https://github.com/saulpw/visidata/tarball/" + __version__,
@@ -33,6 +33,7 @@ setup(
33
33
  "visidata.loaders",
34
34
  "visidata.vendor",
35
35
  "visidata.tests",
36
+ "visidata.guides",
36
37
  "visidata.ddw",
37
38
  "visidata.man",
38
39
  "visidata.themes",
@@ -50,38 +51,39 @@ setup(
50
51
  ],
51
52
  extras_require={
52
53
  "test": [
54
+ "brotli",
55
+ "dnslib",
56
+ "dpkt",
57
+ "fecfile",
53
58
  "Faker",
54
59
  "h5py",
60
+ "lxml",
61
+ "msgpack",
55
62
  "odfpy",
56
63
  "openpyxl",
57
- "pandas",
64
+ "pandas>=1.5.3",
65
+ "pyarrow",
66
+ "pyconll",
67
+ "pypng",
58
68
  "pytest",
59
- "tomli",
69
+ "PyYAML>=5.1",
60
70
  "tabulate",
71
+ "tomli",
61
72
  "wcwidth",
73
+ "xport>=3.0",
62
74
  ]
63
75
  },
64
76
  package_data={
65
77
  "visidata.man": ["vd.1", "vd.txt"],
66
78
  "visidata.ddw": ["input.ddw", "regex.ddw"],
79
+ "visidata": ["guides/*.md"],
67
80
  "visidata.tests": ["sample.tsv", "benchmark.csv"],
68
81
  "visidata.desktop": ["visidata.desktop"],
69
82
  "visidata.experimenta.noahs_tapestry": [
70
- "clues.json",
71
- "flames.ddw",
72
- "menorah.ddw",
83
+ "*.ddw",
84
+ "*.md",
85
+ "*.json",
73
86
  "noahs.sqlite",
74
- "puzzle0.md",
75
- "puzzle1.md",
76
- "puzzle2.md",
77
- "puzzle3.md",
78
- "puzzle4.md",
79
- "puzzle5.md",
80
- "puzzle6.md",
81
- "puzzle7.md",
82
- "puzzle8.md",
83
- "solutions.json",
84
- "tapestry.ddw",
85
87
  ],
86
88
  },
87
89
  license="GPLv3",
@@ -1,6 +1,6 @@
1
1
  'VisiData: a curses interface for exploring and arranging tabular data'
2
2
 
3
- __version__ = '3.0.2'
3
+ __version__ = '3.1.1'
4
4
  __version_info__ = 'VisiData v' + __version__
5
5
  __author__ = 'Saul Pwanson <vd@saul.pw>'
6
6
  __status__ = 'Production/Stable'
@@ -13,8 +13,7 @@ class EscapeException(BaseException):
13
13
 
14
14
 
15
15
  def addGlobals(*args, **kwargs):
16
- '''Update the VisiData globals dict with items from *args* and *kwargs*, which are mappings of names to functions.
17
- Importers can call ``addGlobals(globals())`` to have their globals accessible to execstrings.
16
+ '''Update the VisiData globals dict with items from *args* and *kwargs*; to add symbols available to command execstrings and eval strings like command expr.'
18
17
 
19
18
  Dunder methods are ignored, to prevent accidentally overwriting housekeeping methods.'''
20
19
  drop_dunder = lambda d: {k: v for k, v in d.items() if not k.startswith("__")}
@@ -140,13 +139,16 @@ def importFeatures():
140
139
  vd.importSubmodules('visidata.features')
141
140
  vd.importSubmodules('visidata.themes')
142
141
 
143
- vd.importStar('visidata.deprecated')
142
+ import visidata.deprecated
144
143
 
145
- vd.importStar('builtins')
146
- vd.importStar('copy')
147
- vd.importStar('math')
148
- vd.importStar('random')
149
- vd.importStar('itertools')
144
+ vd.importModule('copy', 'copy deepcopy'.split())
145
+ vd.importModule('builtins', 'abs all any ascii bin bool bytes callable chr complex dict dir divmod enumerate eval filter float format getattr hex int len list map max min next oct ord pow range repr reversed round set sorted str sum tuple type zip'.split())
146
+ vd.importModule('math', 'acos acosh asin asinh atan atan2 atanh ceil copysign cos cosh degrees dist erf erfc exp expm1 fabs factorial floor fmod frexp fsum gamma gcd hypot isclose isfinite isinf isnan isqrt lcm ldexp lgamma log log1p log10 log2 modf radians remainder sin sinh sqrt tan tanh trunc prod perm comb nextafter ulp pi e tau inf nan'.split())
147
+ vd.importModule('random', 'randrange randint choice choices sample uniform gauss lognormvariate'.split())
148
+ vd.importModule('string', 'ascii_letters ascii_lowercase ascii_uppercase digits hexdigits punctuation printable whitespace'.split())
149
+ vd.importModule('json')
150
+ vd.importModule('itertools')
151
+ vd.importModule('curses')
150
152
 
151
153
  import visidata.experimental # import nothing by default but make package accessible
152
154
 
@@ -154,4 +156,4 @@ vd.finalInit() # call all VisiData.init() from modules
154
156
 
155
157
  importFeatures()
156
158
 
157
- vd.addGlobals(globals())
159
+ vd.addGlobals(vd=vd) # globals())