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.
- visidata/__init__.py +72 -91
- visidata/_input.py +259 -42
- visidata/_open.py +84 -29
- visidata/_types.py +21 -3
- visidata/_urlcache.py +17 -4
- visidata/aggregators.py +78 -25
- visidata/apps/__init__.py +0 -0
- visidata/apps/vdsql/__about__.py +8 -0
- visidata/apps/vdsql/__init__.py +5 -0
- visidata/apps/vdsql/__main__.py +27 -0
- visidata/apps/vdsql/_ibis.py +748 -0
- visidata/apps/vdsql/bigquery.py +61 -0
- visidata/apps/vdsql/clickhouse.py +53 -0
- visidata/apps/vdsql/setup.py +40 -0
- visidata/apps/vdsql/snowflake.py +67 -0
- visidata/apps/vgit/__init__.py +13 -0
- {vgit → visidata/apps/vgit}/blame.py +5 -2
- {vgit → visidata/apps/vgit}/branch.py +31 -16
- {vgit → visidata/apps/vgit}/config.py +3 -3
- visidata/apps/vgit/diff.py +169 -0
- visidata/apps/vgit/gitsheet.py +161 -0
- {vgit → visidata/apps/vgit}/grep.py +6 -5
- visidata/apps/vgit/log.py +81 -0
- {vgit → visidata/apps/vgit}/main.py +18 -5
- {vgit → visidata/apps/vgit}/remote.py +8 -4
- visidata/apps/vgit/repos.py +71 -0
- {vgit → visidata/apps/vgit}/setup.py +6 -4
- visidata/apps/vgit/stash.py +69 -0
- visidata/apps/vgit/status.py +204 -0
- {vgit → visidata/apps/vgit}/statusbar.py +2 -0
- visidata/basesheet.py +63 -51
- visidata/canvas.py +208 -93
- visidata/choose.py +6 -6
- visidata/clean_names.py +29 -0
- visidata/clipboard.py +73 -17
- visidata/cliptext.py +220 -46
- visidata/cmdlog.py +88 -114
- visidata/color.py +142 -56
- visidata/column.py +121 -129
- visidata/ddw/input.ddw +74 -79
- visidata/ddw/regex.ddw +57 -0
- visidata/ddwplay.py +33 -14
- visidata/deprecated.py +77 -3
- visidata/desktop/visidata.desktop +7 -0
- visidata/editor.py +12 -6
- visidata/errors.py +6 -2
- visidata/experimental/__init__.py +0 -0
- visidata/experimental/diff_sheet.py +29 -0
- visidata/experimental/digit_autoedit.py +6 -0
- visidata/experimental/gdrive.py +89 -0
- visidata/experimental/google.py +37 -0
- visidata/experimental/gsheets.py +79 -0
- visidata/experimental/live_search.py +37 -0
- visidata/experimental/liveupdate.py +45 -0
- visidata/experimental/mark.py +133 -0
- visidata/experimental/noahs_tapestry/__init__.py +1 -0
- visidata/experimental/noahs_tapestry/tapestry.py +147 -0
- visidata/experimental/rownum.py +73 -0
- visidata/experimental/slide_cells.py +26 -0
- visidata/expr.py +8 -4
- visidata/extensible.py +22 -4
- visidata/features/__init__.py +0 -0
- visidata/features/addcol_audiometadata.py +42 -0
- visidata/features/addcol_histogram.py +34 -0
- visidata/features/canvas_save_svg.py +69 -0
- visidata/features/change_precision.py +46 -0
- visidata/features/cmdpalette.py +197 -0
- visidata/features/colorbrewer.py +363 -0
- visidata/{colorsheet.py → features/colorsheet.py} +17 -16
- visidata/features/command_server.py +105 -0
- visidata/features/currency_to_usd.py +70 -0
- visidata/{customdate.py → features/customdate.py} +2 -0
- visidata/features/dedupe.py +132 -0
- visidata/{describe.py → features/describe.py} +17 -15
- visidata/features/errors_guide.py +26 -0
- visidata/features/expand_cols.py +202 -0
- visidata/{fill.py → features/fill.py} +3 -1
- visidata/{freeze.py → features/freeze.py} +11 -6
- visidata/features/graph_seaborn.py +79 -0
- visidata/features/helloworld.py +10 -0
- visidata/features/hint_types.py +17 -0
- visidata/{incr.py → features/incr.py} +5 -0
- visidata/{join.py → features/join.py} +107 -53
- visidata/features/known_cols.py +21 -0
- visidata/features/layout.py +62 -0
- visidata/{melt.py → features/melt.py} +32 -21
- visidata/features/normcol.py +118 -0
- visidata/features/open_config.py +7 -0
- visidata/features/open_syspaste.py +18 -0
- visidata/features/ping.py +157 -0
- visidata/features/procmgr.py +208 -0
- visidata/features/random_sample.py +6 -0
- visidata/{regex.py → features/regex.py} +47 -31
- visidata/features/reload_every.py +55 -0
- visidata/features/rename_col_cascade.py +30 -0
- visidata/features/scroll_context.py +60 -0
- visidata/features/select_equal_selected.py +11 -0
- visidata/features/setcol_fake.py +65 -0
- visidata/{slide.py → features/slide.py} +77 -21
- visidata/features/sparkline.py +48 -0
- visidata/features/status_source.py +20 -0
- visidata/{sysedit.py → features/sysedit.py} +2 -1
- visidata/features/sysopen_mailcap.py +46 -0
- visidata/features/term_extras.py +13 -0
- visidata/{transpose.py → features/transpose.py} +5 -4
- visidata/features/type_ipaddr.py +73 -0
- visidata/features/type_url.py +11 -0
- visidata/{unfurl.py → features/unfurl.py} +9 -9
- visidata/{window.py → features/window.py} +2 -2
- visidata/form.py +50 -21
- visidata/freqtbl.py +81 -33
- visidata/fuzzymatch.py +414 -0
- visidata/graph.py +105 -33
- visidata/guide.py +200 -0
- visidata/help.py +75 -44
- visidata/hint.py +39 -0
- visidata/indexsheet.py +109 -0
- visidata/input_history.py +55 -0
- visidata/interface.py +58 -0
- visidata/keys.py +20 -16
- visidata/loaders/__init__.py +9 -0
- visidata/loaders/_pandas.py +61 -21
- visidata/loaders/api_airtable.py +70 -0
- visidata/loaders/api_bitio.py +102 -0
- visidata/loaders/api_matrix.py +148 -0
- visidata/loaders/api_reddit.py +306 -0
- visidata/loaders/api_zulip.py +249 -0
- visidata/loaders/archive.py +41 -7
- visidata/loaders/arrow.py +7 -7
- visidata/loaders/conll.py +49 -0
- visidata/loaders/csv.py +25 -7
- visidata/loaders/eml.py +3 -4
- visidata/loaders/f5log.py +1204 -0
- visidata/loaders/fec.py +325 -0
- visidata/loaders/fixed_width.py +2 -4
- visidata/loaders/frictionless.py +3 -3
- visidata/loaders/geojson.py +8 -5
- visidata/loaders/google.py +48 -0
- visidata/loaders/graphviz.py +4 -4
- visidata/loaders/hdf5.py +4 -4
- visidata/loaders/html.py +54 -12
- visidata/loaders/http.py +84 -30
- visidata/loaders/imap.py +20 -10
- visidata/loaders/jrnl.py +52 -0
- visidata/loaders/json.py +83 -29
- visidata/loaders/jsonla.py +74 -0
- visidata/loaders/lsv.py +15 -11
- visidata/loaders/mailbox.py +40 -0
- visidata/loaders/markdown.py +1 -3
- visidata/loaders/mbtiles.py +4 -5
- visidata/loaders/mysql.py +11 -13
- visidata/loaders/npy.py +7 -7
- visidata/loaders/odf.py +4 -1
- visidata/loaders/orgmode.py +428 -0
- visidata/loaders/pandas_freqtbl.py +14 -20
- visidata/loaders/parquet.py +62 -6
- visidata/loaders/pcap.py +3 -3
- visidata/loaders/pdf.py +4 -3
- visidata/loaders/png.py +19 -13
- visidata/loaders/postgres.py +9 -8
- visidata/loaders/rec.py +7 -3
- visidata/loaders/s3.py +342 -0
- visidata/loaders/sas.py +5 -5
- visidata/loaders/scrape.py +186 -0
- visidata/loaders/shp.py +6 -5
- visidata/loaders/spss.py +5 -6
- visidata/loaders/sqlite.py +68 -28
- visidata/loaders/texttables.py +1 -1
- visidata/loaders/toml.py +60 -0
- visidata/loaders/tsv.py +61 -19
- visidata/loaders/ttf.py +19 -7
- visidata/loaders/unzip_http.py +6 -5
- visidata/loaders/usv.py +1 -1
- visidata/loaders/vcf.py +16 -16
- visidata/loaders/vds.py +10 -7
- visidata/loaders/vdx.py +30 -5
- visidata/loaders/xlsb.py +8 -1
- visidata/loaders/xlsx.py +145 -25
- visidata/loaders/xml.py +6 -3
- visidata/loaders/xword.py +4 -4
- visidata/loaders/yaml.py +15 -5
- visidata/macros.py +129 -42
- visidata/main.py +119 -94
- visidata/mainloop.py +101 -155
- visidata/man/parse_options.py +2 -2
- visidata/man/vd.1 +302 -149
- visidata/man/vd.txt +291 -154
- visidata/memory.py +3 -3
- visidata/menu.py +104 -423
- visidata/metasheets.py +59 -141
- visidata/modify.py +78 -23
- visidata/motd.py +3 -3
- visidata/mouse.py +137 -0
- visidata/movement.py +43 -35
- visidata/optionssheet.py +99 -0
- visidata/path.py +113 -32
- visidata/pivot.py +73 -47
- visidata/plugins.py +65 -192
- visidata/pyobj.py +55 -205
- visidata/rename_col.py +20 -0
- visidata/save.py +37 -20
- visidata/search.py +54 -10
- visidata/selection.py +84 -5
- visidata/settings.py +162 -25
- visidata/sheets.py +239 -260
- visidata/shell.py +51 -21
- visidata/sidebar.py +162 -0
- visidata/sort.py +11 -4
- visidata/statusbar.py +114 -104
- visidata/stored_list.py +43 -0
- visidata/stored_prop.py +38 -0
- visidata/tests/benchmark.csv +52 -0
- visidata/tests/conftest.py +3 -3
- visidata/tests/test_cliptext.py +39 -0
- visidata/tests/test_commands.py +65 -7
- visidata/tests/test_edittext.py +2 -2
- visidata/tests/test_features.py +28 -0
- visidata/tests/test_menu.py +14 -0
- visidata/tests/test_path.py +13 -4
- visidata/text_source.py +53 -0
- visidata/textsheet.py +10 -3
- visidata/theme.py +44 -0
- visidata/themes/__init__.py +0 -0
- visidata/themes/ascii8.py +84 -0
- visidata/themes/asciimono.py +84 -0
- visidata/themes/light.py +17 -0
- visidata/threads.py +89 -40
- visidata/tuiwin.py +22 -0
- visidata/type_currency.py +22 -3
- visidata/type_date.py +31 -9
- visidata/type_floatsi.py +5 -1
- visidata/undo.py +17 -5
- visidata/utils.py +106 -23
- visidata/vdobj.py +28 -17
- visidata/windows.py +10 -0
- visidata/wrappers.py +9 -3
- visidata-3.0.1.data/data/share/applications/visidata.desktop +7 -0
- {visidata-2.11.1.data → visidata-3.0.1.data}/data/share/man/man1/vd.1 +302 -149
- {visidata-2.11.1.data → visidata-3.0.1.data}/data/share/man/man1/visidata.1 +302 -149
- visidata-3.0.1.data/scripts/vd2to3.vdx +9 -0
- {visidata-2.11.1.dist-info → visidata-3.0.1.dist-info}/METADATA +12 -8
- visidata-3.0.1.dist-info/RECORD +258 -0
- {visidata-2.11.1.dist-info → visidata-3.0.1.dist-info}/WHEEL +1 -1
- vgit/__init__.py +0 -1
- vgit/gitsheet.py +0 -164
- visidata/layout.py +0 -44
- visidata/misc.py +0 -5
- visidata-2.11.1.data/scripts/vgit +0 -9
- visidata-2.11.1.dist-info/RECORD +0 -155
- {vgit → visidata/apps/vgit}/__main__.py +0 -0
- {vgit → visidata/apps/vgit}/abort.py +0 -0
- /visidata/{repeat.py → features/repeat.py} +0 -0
- {visidata-2.11.1.data → visidata-3.0.1.data}/scripts/vd +0 -0
- {visidata-2.11.1.dist-info → visidata-3.0.1.dist-info}/LICENSE.gpl3 +0 -0
- {visidata-2.11.1.dist-info → visidata-3.0.1.dist-info}/entry_points.txt +0 -0
- {visidata-2.11.1.dist-info → visidata-3.0.1.dist-info}/top_level.txt +0 -0
visidata/__init__.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
'VisiData: a curses interface for exploring and arranging tabular data'
|
2
2
|
|
3
|
-
__version__ = '
|
3
|
+
__version__ = '3.0.1'
|
4
4
|
__version_info__ = 'VisiData v' + __version__
|
5
5
|
__author__ = 'Saul Pwanson <vd@saul.pw>'
|
6
6
|
__status__ = 'Production/Stable'
|
@@ -14,19 +14,19 @@ class EscapeException(BaseException):
|
|
14
14
|
|
15
15
|
def addGlobals(*args, **kwargs):
|
16
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.
|
17
|
+
Importers can call ``addGlobals(globals())`` to have their globals accessible to execstrings.
|
18
|
+
|
19
|
+
Dunder methods are ignored, to prevent accidentally overwriting housekeeping methods.'''
|
20
|
+
drop_dunder = lambda d: {k: v for k, v in d.items() if not k.startswith("__")}
|
18
21
|
for g in args:
|
19
|
-
globals().update(g)
|
20
|
-
globals().update(kwargs)
|
22
|
+
globals().update(drop_dunder(g))
|
23
|
+
globals().update(drop_dunder(kwargs))
|
21
24
|
|
22
25
|
|
23
26
|
def getGlobals():
|
24
27
|
'Return the VisiData globals dict.'
|
25
28
|
return globals()
|
26
29
|
|
27
|
-
from builtins import *
|
28
|
-
from copy import copy, deepcopy
|
29
|
-
|
30
30
|
from .utils import *
|
31
31
|
|
32
32
|
from .extensible import *
|
@@ -41,136 +41,117 @@ vd.getGlobals = getGlobals
|
|
41
41
|
import visidata.keys
|
42
42
|
|
43
43
|
from .basesheet import *
|
44
|
+
|
44
45
|
import visidata.settings
|
45
|
-
from .errors import *
|
46
|
-
from .editor import *
|
47
|
-
from .cliptext import *
|
48
|
-
from .color import *
|
49
|
-
from .mainloop import *
|
50
|
-
from .wrappers import *
|
51
|
-
from .undo import *
|
52
46
|
|
53
|
-
from .
|
54
|
-
|
47
|
+
# importModule tracks where commands/options/etc are coming from (via vd.importingModule)
|
48
|
+
core_imports = '''
|
49
|
+
import visidata.errors
|
50
|
+
import visidata.editor
|
51
|
+
import visidata.color
|
52
|
+
import visidata.cliptext
|
53
|
+
import visidata.mainloop
|
55
54
|
|
56
|
-
|
55
|
+
import visidata.menu
|
56
|
+
import visidata.wrappers
|
57
|
+
import visidata.undo
|
58
|
+
import visidata._types
|
59
|
+
import visidata.column
|
60
|
+
|
61
|
+
import visidata.interface
|
62
|
+
import visidata.sheets
|
63
|
+
import visidata.rename_col
|
64
|
+
import visidata.indexsheet
|
57
65
|
|
58
66
|
import visidata.statusbar
|
59
67
|
|
60
68
|
import visidata.textsheet
|
61
69
|
import visidata.threads
|
62
|
-
|
70
|
+
import visidata.path
|
71
|
+
import visidata.guide
|
72
|
+
|
73
|
+
import visidata.stored_list
|
63
74
|
import visidata._input
|
75
|
+
import visidata.tuiwin
|
76
|
+
import visidata.mouse
|
64
77
|
import visidata.movement
|
65
78
|
|
66
|
-
import visidata.type_currency
|
67
79
|
import visidata.type_date
|
68
|
-
import visidata.type_floatsi
|
69
80
|
|
70
81
|
import visidata._urlcache
|
71
82
|
import visidata.selection
|
83
|
+
import visidata.text_source
|
84
|
+
import visidata.loaders
|
72
85
|
import visidata.loaders.tsv
|
73
86
|
import visidata.pyobj
|
74
87
|
import visidata.loaders.json
|
75
88
|
import visidata._open
|
76
|
-
import visidata.metasheets
|
77
|
-
import visidata.cmdlog
|
78
89
|
import visidata.save
|
79
|
-
import visidata.clipboard
|
80
|
-
import visidata.sysedit
|
81
|
-
import visidata.slide
|
82
90
|
import visidata.search
|
83
|
-
import visidata.expr
|
84
91
|
|
85
|
-
import visidata.
|
92
|
+
import visidata.expr
|
93
|
+
import visidata.metasheets
|
94
|
+
import visidata.input_history
|
95
|
+
import visidata.optionssheet
|
96
|
+
import visidata.type_currency
|
97
|
+
import visidata.type_floatsi
|
98
|
+
import visidata.clean_names
|
99
|
+
import visidata.cmdlog
|
100
|
+
import visidata.clipboard
|
86
101
|
import visidata.choose
|
87
|
-
import visidata.join
|
88
102
|
import visidata.aggregators
|
89
|
-
import visidata.describe
|
90
103
|
import visidata.pivot
|
91
104
|
import visidata.freqtbl
|
92
|
-
import visidata.melt
|
93
|
-
import visidata.freeze
|
94
|
-
import visidata.regex
|
95
105
|
import visidata.canvas
|
96
106
|
import visidata.canvas_text
|
97
107
|
import visidata.graph
|
98
108
|
import visidata.motd
|
99
|
-
import visidata.transpose
|
100
109
|
import visidata.shell
|
101
|
-
import visidata.layout
|
102
110
|
import visidata.main
|
103
111
|
import visidata.help
|
104
112
|
import visidata.modify
|
105
113
|
import visidata.sort
|
106
|
-
import visidata.unfurl
|
107
|
-
import visidata.fill
|
108
|
-
import visidata.incr
|
109
|
-
import visidata.window
|
110
|
-
import visidata.customdate
|
111
|
-
import visidata.misc
|
112
114
|
import visidata.memory
|
113
115
|
import visidata.macros
|
116
|
+
|
114
117
|
import visidata.macos
|
115
|
-
import visidata.
|
116
|
-
|
117
|
-
import visidata.loaders.csv
|
118
|
-
import visidata.loaders.archive
|
119
|
-
import visidata.loaders.xlsx
|
120
|
-
import visidata.loaders.xlsb
|
121
|
-
import visidata.loaders.hdf5
|
122
|
-
import visidata.loaders.sqlite
|
123
|
-
import visidata.loaders.fixed_width
|
124
|
-
import visidata.loaders.postgres
|
125
|
-
import visidata.loaders.mysql
|
126
|
-
import visidata.loaders.shp
|
127
|
-
import visidata.loaders.geojson
|
128
|
-
import visidata.loaders.mbtiles
|
129
|
-
import visidata.loaders.http
|
130
|
-
import visidata.loaders.html
|
131
|
-
import visidata.loaders.markdown
|
132
|
-
import visidata.loaders.pcap
|
133
|
-
import visidata.loaders.png
|
134
|
-
import visidata.loaders.ttf
|
135
|
-
import visidata.loaders.sas
|
136
|
-
import visidata.loaders.spss
|
137
|
-
import visidata.loaders.xml
|
138
|
-
import visidata.loaders.yaml
|
139
|
-
import visidata.loaders._pandas
|
140
|
-
import visidata.loaders.graphviz
|
141
|
-
import visidata.loaders.npy
|
142
|
-
import visidata.loaders.usv
|
143
|
-
import visidata.loaders.frictionless
|
144
|
-
import visidata.loaders.imap
|
145
|
-
|
146
|
-
import visidata.loaders.pdf
|
147
|
-
import visidata.loaders.pandas_freqtbl
|
148
|
-
import visidata.loaders.xword
|
149
|
-
import visidata.loaders.vcf
|
150
|
-
import visidata.loaders.texttables
|
151
|
-
import visidata.loaders.rec
|
152
|
-
import visidata.loaders.eml
|
153
|
-
import visidata.loaders.vds
|
154
|
-
import visidata.loaders.odf
|
155
|
-
import visidata.loaders.lsv
|
156
|
-
import visidata.loaders.arrow
|
157
|
-
import visidata.loaders.parquet
|
158
|
-
|
159
|
-
import visidata.loaders.vdx
|
118
|
+
import visidata.windows
|
160
119
|
|
161
120
|
import visidata.form
|
121
|
+
import visidata.sidebar
|
162
122
|
|
163
123
|
import visidata.ddwplay
|
164
124
|
import visidata.plugins
|
165
125
|
|
166
|
-
import visidata.
|
126
|
+
import visidata.theme
|
127
|
+
import visidata.apps
|
128
|
+
import visidata.fuzzymatch
|
129
|
+
import visidata.hint
|
130
|
+
'''
|
131
|
+
|
132
|
+
for line in core_imports.splitlines():
|
133
|
+
if not line: continue
|
134
|
+
module = line[len('import '):]
|
135
|
+
vd.importModule(module)
|
136
|
+
|
137
|
+
vd.importSubmodules('visidata.loaders')
|
138
|
+
|
139
|
+
def importFeatures():
|
140
|
+
vd.importSubmodules('visidata.features')
|
141
|
+
vd.importSubmodules('visidata.themes')
|
142
|
+
|
143
|
+
vd.importStar('visidata.deprecated')
|
144
|
+
|
145
|
+
vd.importStar('builtins')
|
146
|
+
vd.importStar('copy')
|
147
|
+
vd.importStar('math')
|
148
|
+
vd.importStar('random')
|
149
|
+
vd.importStar('itertools')
|
167
150
|
|
168
|
-
|
151
|
+
import visidata.experimental # import nothing by default but make package accessible
|
169
152
|
|
170
|
-
|
171
|
-
import random
|
172
|
-
from math import *
|
153
|
+
vd.finalInit() # call all VisiData.init() from modules
|
173
154
|
|
174
|
-
|
155
|
+
importFeatures()
|
175
156
|
|
176
157
|
vd.addGlobals(globals())
|