gitextract_wcvjea1d/ ├── .codespellrc ├── .devcontainer/ │ ├── Dockerfile │ ├── devcontainer.json │ ├── launch.json │ ├── post-create.sh │ └── settings.json ├── .gitattributes ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── feature-request.md │ │ ├── loader-request.md │ │ └── question.md │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── main.yml │ ├── vdsql.yml │ └── vgit.yml ├── .gitignore ├── .gitmodules ├── .gitpod.Dockerfile ├── .gitpod.yml ├── .mailmap ├── .theia/ │ └── settings.json ├── AGENTS.md ├── CHANGELOG.md ├── CLAUDE.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile.alpine ├── Dockerfile.darkdraw.alpine ├── LICENSE.gpl3 ├── MANIFEST.in ├── Makefile ├── README.md ├── bin/ │ ├── filter-doc.py │ ├── vd │ ├── vd2to3.vdx │ └── viewtsv.py ├── dev/ │ ├── DOCS.md │ ├── GIT.md │ ├── OPTIONS.md │ ├── PERFORMANCE.md │ ├── README.md │ ├── STYLE.md │ ├── TESTING.md │ ├── build-container │ ├── checklists/ │ │ ├── add-aggregator.md │ │ ├── add-command.md │ │ ├── feature.md │ │ ├── manual-tests.md │ │ └── release.md │ ├── debian/ │ │ ├── changelog │ │ ├── control │ │ ├── copyright │ │ ├── manpages │ │ ├── rules │ │ ├── source/ │ │ │ ├── format │ │ │ └── local-options │ │ ├── upstream/ │ │ │ └── metadata │ │ └── watch │ ├── design/ │ │ ├── 000-notes.md │ │ ├── 160-longnames.md │ │ ├── 169-settings.md │ │ ├── 173-benchmark.md │ │ ├── 174-keycols.md │ │ ├── 175-design-terms.md │ │ ├── 176-miscrules.md │ │ ├── 181-benchmark-data.md │ │ ├── 232-input.md │ │ ├── 260-push.md │ │ ├── README.md │ │ └── path.md │ ├── diff-test.sh │ ├── formats.jsonl │ ├── formats.vd │ ├── hooks/ │ │ └── pre-push │ ├── mkman.sh │ ├── mkpandas-df.py │ ├── quit.vdx │ ├── requirements-dev.txt │ ├── run-tests-individually.sh │ ├── test-all.sh │ ├── test-stdin-replay.vdx │ ├── test.sh │ ├── types.jsonl │ ├── vduplot.vdx │ ├── visidata-brew.rb │ ├── workshop-outline.md │ ├── zsh-completion.in │ └── zsh-completion.py ├── docs/ │ ├── README.md │ ├── api/ │ │ ├── Makefile │ │ ├── _static/ │ │ │ ├── .gitkeep │ │ │ └── css/ │ │ │ └── custom.css │ │ ├── async.rst │ │ ├── canvas.rst │ │ ├── columns.rst │ │ ├── commands.rst │ │ ├── conf.py │ │ ├── data.rst │ │ ├── extensible.rst │ │ ├── guides.rst │ │ ├── index.rst │ │ ├── interface.rst │ │ ├── loaders.rst │ │ ├── make.bat │ │ ├── modify.rst │ │ ├── modules.rst │ │ ├── options.rst │ │ ├── plugins.rst │ │ ├── requirements.txt │ │ ├── runtime.txt │ │ ├── sheets.rst │ │ └── style.rst │ ├── casts/ │ │ ├── expand-cols.cast │ │ ├── pivot-graphs.cast │ │ ├── pivot.cast │ │ ├── save-restore.cast │ │ ├── split-regex.cast │ │ └── types.cast │ ├── colors.md │ ├── columns.md │ ├── contributing.md │ ├── crud.md │ ├── customize.md │ ├── dirsheet.md │ ├── edit.md │ ├── formats.md │ ├── freq.md │ ├── gmail.md │ ├── graph.md │ ├── graphics.md │ ├── group.md │ ├── index.md │ ├── internal_formats.md │ ├── join.md │ ├── loading.md │ ├── macros.md │ ├── menu.md │ ├── mouse.md │ ├── move.md │ ├── navigate.md │ ├── pipes.md │ ├── plugins.md │ ├── rows.md │ ├── save-restore.md │ ├── shell.md │ ├── split.md │ ├── test.md │ ├── usage.md │ └── viewtsv.md ├── platform/ │ ├── windows/ │ │ ├── vdwin-installer.md │ │ ├── vdwin.py │ │ └── vdwin.spec │ └── www/ │ ├── Dockerfile │ ├── Makefile │ └── visidatarc ├── plugins/ │ ├── geocoding.py │ ├── pcap/ │ │ ├── iana-ports.tsv │ │ └── wireshark-oui.tsv │ └── vtask.py ├── pyrightconfig.json ├── requirements.scm ├── requirements.txt ├── ruff.toml ├── sample_data/ │ ├── 1794685.fec │ ├── 2m.tsv │ ├── StatusPR.csv │ ├── UTF-8-demo.txt │ ├── a.tsv │ ├── accidents.sav │ ├── arrays.hdf5 │ ├── arrays.npz │ ├── b.tsv │ ├── benchmark.arrow │ ├── benchmark.csv │ ├── benchmark.fixed │ ├── benchmark.jsonl │ ├── benchmark.lsv │ ├── benchmark.npy │ ├── benchmark.ods │ ├── benchmark.psv │ ├── benchmark.xml │ ├── benchmark.yml │ ├── brakes.xpt │ ├── co3.dta │ ├── co3.stata │ ├── color-merged-cells.xlsx │ ├── countries │ ├── date-error-test.xlsx │ ├── empty-cell.xlsx │ ├── empty-table.html │ ├── errors.csv │ ├── freshwater-mammals.toml │ ├── goog.npy │ ├── gtm.f5log │ ├── hello.mnu │ ├── issue1308.html │ ├── messenger.pcap │ ├── numeric-cols.tsv │ ├── officials.jsonla │ ├── pr2815.jsonl │ ├── sample-sales-reps.xlsx │ ├── sample.arrow │ ├── sample.arrows │ ├── sample.conllu │ ├── sample.geojson │ ├── sample.parquet │ ├── sample.tsv │ ├── sample.vds │ ├── saulpw-008.xd │ ├── sensors.h5 │ ├── shapefile/ │ │ ├── WA_State_Boundary.cpg │ │ ├── WA_State_Boundary.dbf │ │ ├── WA_State_Boundary.prj │ │ ├── WA_State_Boundary.shp │ │ ├── WA_State_Boundary.shx │ │ └── WA_State_Boundary.xml │ ├── smiths-json.grep │ ├── smiths-standard.grep │ ├── states.yml │ ├── sunshinelist.html │ ├── test-fixed-leadingspaces.txt │ ├── test-unicode-display.tsv │ ├── test.fixed │ ├── test.jsonl │ ├── test.msgpack │ ├── test.msgpackz │ └── test.usv ├── setup.py ├── snippets/ │ ├── gender.py │ ├── geolocate.py │ └── rank.py ├── tests/ │ ├── .visidata/ │ │ └── .gitignore │ ├── .visidatarc │ ├── 1410a.vdj │ ├── 1410b.vdj │ ├── 1410c.vdj │ ├── add-col-dup-attrs.vdj │ ├── addcol-iter.vdj │ ├── addcol_window.vd │ ├── aggregators-cols.vdj │ ├── aggregators-errors.vd │ ├── aggregators-set.vd │ ├── append.vd │ ├── avg-nulls.vd │ ├── bulk-rename-cols.vd │ ├── capture-col-named.vd │ ├── column-copy.vd │ ├── column-name-__name__.csv │ ├── column-name-__name__.vd │ ├── column-name-_fields.csv │ ├── column-name-_fields.vd │ ├── column-name-length.csv │ ├── column-name-length.vd │ ├── concat-origin.vdx │ ├── curcol.vd │ ├── data1.tsv │ ├── data2.tsv │ ├── data3.tsv │ ├── date_add.vd │ ├── describe-error.vd │ ├── describe-through.vd │ ├── describe.vd │ ├── diff-join.vdj │ ├── dup-rows-attrs.vd │ ├── edit-fixed.vdx │ ├── edit-joinkey-1.vd │ ├── edit-joinkey-2.vd │ ├── edit-joinregular-1.vd │ ├── edit-joinregular-2.vd │ ├── edit-type.vd │ ├── empty-unfurl-2.vd │ ├── empty-unfurl.vd │ ├── error-passthru.vd │ ├── errors-311.vd │ ├── exp-digits.vdj │ ├── extend.vd │ ├── fill-nested.vdj │ ├── fill-zero.json │ ├── fill-zero.vdj │ ├── fill.vdj │ ├── format-enum-freeze.vd │ ├── format-enum.vd │ ├── freeze-json.vd │ ├── freeze-sheet-attrs.vd │ ├── freq-dive-except.vdx │ ├── freq-error.vd │ ├── freq-fmtstr.vd │ ├── freq-same-int.vd │ ├── freq-summary.vd │ ├── freqtbl-nested-dive-selected.vdx │ ├── freqtbl-openrow.vd │ ├── frozen-attrs.vd │ ├── full-join.vd │ ├── gMelt.vd │ ├── getitem.vd │ ├── golden/ │ │ ├── 1410a.tsv │ │ ├── 1410b.tsv │ │ ├── 1410c.tsv │ │ ├── add-col-dup-attrs.tsv │ │ ├── addcol-iter.tsv │ │ ├── addcol_window.tsv │ │ ├── aggregators-cols.tsv │ │ ├── aggregators-errors.tsv │ │ ├── aggregators-set.tsv │ │ ├── append.tsv │ │ ├── avg-nulls.tsv │ │ ├── bulk-rename-cols.tsv │ │ ├── capture-col-named.tsv │ │ ├── column-copy.tsv │ │ ├── column-name-__name__.csv │ │ ├── column-name-_fields.csv │ │ ├── column-name-length.csv │ │ ├── concat-origin.tsv │ │ ├── curcol.tsv │ │ ├── date_add.tsv │ │ ├── describe-error.tsv │ │ ├── describe-through.tsv │ │ ├── describe.tsv │ │ ├── diff-join.tsv │ │ ├── dup-rows-attrs.tsv │ │ ├── edit-fixed.fixed │ │ ├── edit-joinkey-1.tsv │ │ ├── edit-joinkey-2.tsv │ │ ├── edit-joinregular-1.tsv │ │ ├── edit-joinregular-2.tsv │ │ ├── edit-type.tsv │ │ ├── empty-unfurl-2.tsv │ │ ├── empty-unfurl.tsv │ │ ├── error-passthru.tsv │ │ ├── errors-311.tsv │ │ ├── exp-digits.tsv │ │ ├── extend.tsv │ │ ├── fill-nested.jsonl │ │ ├── fill-zero.json │ │ ├── fill.jsonl │ │ ├── format-enum-freeze.tsv │ │ ├── format-enum.json │ │ ├── format-enum.tsv │ │ ├── freeze-json.tsv │ │ ├── freeze-sheet-attrs.tsv │ │ ├── freq-dive-except.tsv │ │ ├── freq-error.tsv │ │ ├── freq-fmtstr.tsv │ │ ├── freq-same-int.tsv │ │ ├── freq-summary.tsv │ │ ├── freqtbl-nested-dive-selected.tsv │ │ ├── freqtbl-openrow.tsv │ │ ├── frozen-attrs.tsv │ │ ├── full-join.tsv │ │ ├── gMelt.tsv │ │ ├── getitem.tsv │ │ ├── hide-uniform.tsv │ │ ├── histogram.tsv │ │ ├── import-python.tsv │ │ ├── inner-join.tsv │ │ ├── invalid_unicode_sqlite.tsv │ │ ├── issue1308.tsv │ │ ├── issue1346.tsv │ │ ├── issue1377.tsv │ │ ├── issue1377b.tsv │ │ ├── issue2015.tsv │ │ ├── issue2190.tsv │ │ ├── issue2227.tsv │ │ ├── issue2316.tsv │ │ ├── issue2476.csv │ │ ├── issue2524-curcol.tsv │ │ ├── issue350.tsv │ │ ├── issue655.tsv │ │ ├── issue733.tsv │ │ ├── issue964-inner-join.tsv │ │ ├── join-cols-single-sheet.tsv │ │ ├── join-concat.tsv │ │ ├── join-different-types.tsv │ │ ├── join-extend-mult.tsv │ │ ├── join-merge.tsv │ │ ├── join-non-unique-cols.tsv │ │ ├── listofdictobj.tsv │ │ ├── load-2d-matrix.tsv │ │ ├── load-conllu.jsonl │ │ ├── load-csv.tsv │ │ ├── load-dir.tsv │ │ ├── load-fec.tsv │ │ ├── load-fixed-header0.tsv │ │ ├── load-fixed-leadingspaces.tsv │ │ ├── load-fixed.tsv │ │ ├── load-grep-json.grep │ │ ├── load-grep-standard.grep │ │ ├── load-h5.tsv │ │ ├── load-html.tsv │ │ ├── load-http-flaky.tsv │ │ ├── load-json.tsv │ │ ├── load-jsonla.tsv │ │ ├── load-lsv.lsv │ │ ├── load-lsv.tsv │ │ ├── load-msgpack.tsv │ │ ├── load-msgpackz.tsv │ │ ├── load-numpy.tsv │ │ ├── load-ods.tsv │ │ ├── load-pandas-2.csv │ │ ├── load-pandas-3.tsv │ │ ├── load-pandas.tsv │ │ ├── load-parquet.tsv │ │ ├── load-png.tsv │ │ ├── load-sqlite-view.tsv │ │ ├── load-sqlite.tsv │ │ ├── load-stata.tsv │ │ ├── load-toml.tsv │ │ ├── load-usv.tsv │ │ ├── load-xlsx.tsv │ │ ├── load-xml.tsv │ │ ├── load-xpt-n311.tsv │ │ ├── load-yaml.tsv │ │ ├── load-zip.tsv │ │ ├── load_npy.tsv │ │ ├── load_xlsx.tsv │ │ ├── melt-error.tsv │ │ ├── messenger-nosave.dot │ │ ├── monthly-revenue.tsv │ │ ├── numeric-cols.tsv │ │ ├── numeric-names.tsv │ │ ├── numeric_binning.tsv │ │ ├── outer-join-1.tsv │ │ ├── outer-join-2.tsv │ │ ├── pandas_loader_dup_selected.tsv │ │ ├── petsdiet.tsv │ │ ├── pivot-error.tsv │ │ ├── pivot-noaggr.tsv │ │ ├── pivot.tsv │ │ ├── pr2302.tsv │ │ ├── pr2308.json │ │ ├── pr2372.tsv │ │ ├── pr2400.tsv │ │ ├── pr2614.tsv │ │ ├── pr2647.tsv │ │ ├── pr2688a.tsv │ │ ├── pr2688b.tsv │ │ ├── pr2815.json │ │ ├── pr2855.tsv │ │ ├── prefer-visible-col.tsv │ │ ├── pull2140.tsv │ │ ├── rank-sheetrank-sorted-cols.tsv │ │ ├── record-aggr.tsv │ │ ├── remove-errors.tsv │ │ ├── rows-select-expr.tsv │ │ ├── save-benchmarks.csv │ │ ├── save-benchmarks.html │ │ ├── save-benchmarks.json │ │ ├── save-benchmarks.jsonl │ │ ├── save-benchmarks.md │ │ ├── save-benchmarks.npy │ │ ├── save-benchmarks.rst │ │ ├── save-benchmarks.txt │ │ ├── save-geojson.geojson │ │ ├── save-json.csv │ │ ├── save-json.html │ │ ├── save-json.json │ │ ├── save-json.jsonl │ │ ├── save-json.md │ │ ├── save-json.tsv │ │ ├── save-json.txt │ │ ├── save-jsonla.jsonla │ │ ├── save-usv.usv │ │ ├── setcol_fake.tsv │ │ ├── setcol_precision_less.tsv │ │ ├── setcol_precision_more.tsv │ │ ├── sort-levels.tsv │ │ ├── sortorder.tsv │ │ ├── sqlite_withoutrowid.tsv │ │ ├── stdin-replay.tsv │ │ ├── stdin.tsv │ │ ├── sum-freq-table.tsv │ │ ├── test_quartiles.tsv │ │ ├── transform-cols.tsv │ │ ├── type-customdate.tsv │ │ ├── unfurl-dict.tsv │ │ ├── unfurl-empty-false.tsv │ │ ├── unfurl-empty.tsv │ │ ├── unfurl-list.tsv │ │ ├── xlsx-color-cells.tsv │ │ ├── xlsx-empty-cell.tsv │ │ ├── xlsx-header.tsv │ │ └── xlsx-merged-cells.tsv │ ├── graph-cursor-nosave.vd │ ├── graph-sincos-nosave.vdj │ ├── graphpr-nosave.vd │ ├── hide-uniform.vdj │ ├── histogram.vd │ ├── import-python.vd │ ├── inner-join.vd │ ├── invalid_unicode_sqlite.vd │ ├── issue1308.vdx │ ├── issue1346.html │ ├── issue1346.vdx │ ├── issue1377.vdj │ ├── issue1377b.vdj │ ├── issue2015.vdj │ ├── issue2190.vdj │ ├── issue2225-nosave.vdx │ ├── issue2227.html │ ├── issue2227.vdx │ ├── issue2316.vd │ ├── issue2476.vdj │ ├── issue2524-curcol.vdj │ ├── issue2890-parquet-addrow-nosave.vdx │ ├── issue2901-defer-edit-nosave.vdx │ ├── issue3015-nosave.vdx │ ├── issue3022-nosave.vdx │ ├── issue350.json │ ├── issue350.vdj │ ├── issue655.vdx │ ├── issue733.vd │ ├── issue964-inner-join.vd │ ├── issue964a.csv │ ├── issue964b.csv │ ├── join-cols-single-sheet.vd │ ├── join-concat.vdj │ ├── join-different-types.vd │ ├── join-extend-mult.vd │ ├── join-merge-1.jsonl │ ├── join-merge-2.jsonl │ ├── join-merge.vd │ ├── join-non-unique-cols.vd │ ├── joining_error.xlsx │ ├── joining_error_interesting_records.csv │ ├── known-broken.vdx │ ├── listofdictobj.vd │ ├── load-2d-matrix.vdj │ ├── load-conllu.vdj │ ├── load-dir.vd │ ├── load-fec.vdj │ ├── load-fixed-header0.vdx │ ├── load-fixed-leadingspaces.vdx │ ├── load-fixed.vd │ ├── load-grep-json.vd │ ├── load-grep-standard.vd │ ├── load-h5.vd │ ├── load-html.vd │ ├── load-http-flaky.vd │ ├── load-json.vd │ ├── load-jsonla.vdj │ ├── load-lsv.vd │ ├── load-msgpack.vd │ ├── load-msgpackz.vd │ ├── load-numpy.vdj │ ├── load-ods.vd │ ├── load-pandas-2.vd │ ├── load-pandas-3.vd │ ├── load-pandas.vd │ ├── load-parquet.vd │ ├── load-png.vdj │ ├── load-sqlite-view.vd │ ├── load-sqlite.vd │ ├── load-stata.vd │ ├── load-toml.vd │ ├── load-usv.vd │ ├── load-xlsx.vd │ ├── load-xml.vdj │ ├── load-xpt-n311.vdj │ ├── load-yaml.vd │ ├── load-zip.vd │ ├── load_npy.vdj │ ├── long-title-xlsx-nosave.vd │ ├── macros/ │ │ ├── golden/ │ │ │ └── test_macro.tsv │ │ └── test_macro.vd │ ├── melt-error.vd │ ├── messenger-nosave.vd │ ├── monthly-revenue.vd │ ├── numeric-cols.vdj │ ├── numeric-names.vd │ ├── numeric_binning.vd │ ├── outer-join-1.vd │ ├── outer-join-2.vd │ ├── output/ │ │ └── .gitignore │ ├── pandas_loader_dup_selected.vd │ ├── petsdiet.vd │ ├── pivot-error.vd │ ├── pivot-noaggr.vd │ ├── pivot.vdj │ ├── pr2302.vdj │ ├── pr2308.vdj │ ├── pr2372.tsv │ ├── pr2372.vdj │ ├── pr2400.vdj │ ├── pr2614.vdj │ ├── pr2647.vdj │ ├── pr2688a.vdj │ ├── pr2688b.vdj │ ├── pr2815.vdj │ ├── pr2855.vdj │ ├── prefer-visible-col.vd │ ├── pull2140.vdj │ ├── quantum-sum-manual.vdj │ ├── quit-perf.vdj │ ├── rank-sheetrank-sorted-cols.vdj │ ├── record-aggr.vd │ ├── remove-errors.vd │ ├── rows-select-expr.vd │ ├── save-benchmarks.vd │ ├── save-geojson.vd │ ├── save-json.vd │ ├── save-jsonla.vdj │ ├── save-usv.vd │ ├── setcol_fake.vdj │ ├── setcol_precision_less.vdj │ ├── setcol_precision_more.vdj │ ├── small.json │ ├── sort-levels.tsv │ ├── sort-levels.vd │ ├── sortorder.vdj │ ├── sqlite_withoutrowid.vd │ ├── sum-freq-table.vd │ ├── test-delimiter.sh │ ├── test-macros.sh │ ├── test-perf.sh │ ├── test-pytest.sh │ ├── test-roundtrip.sh │ ├── test-smoke.sh │ ├── test-startpos.sh │ ├── test-startup-time.sh │ ├── test-stdin-replay.sh │ ├── test-stdin.sh │ ├── test-vdx.sh │ ├── test-zsh-syntax.sh │ ├── test_quartiles.vd │ ├── testenv.sh │ ├── transform-cols.vd │ ├── type-customdate.vdj │ ├── unfurl-dict.vd │ ├── unfurl-empty-false.vd │ ├── unfurl-empty.jsonl │ ├── unfurl-empty.vd │ ├── unfurl-list.vd │ ├── xdg/ │ │ └── data/ │ │ └── visidata/ │ │ ├── 1.vdj │ │ └── macros.jsonl │ ├── xlsx-color-cells.vd │ ├── xlsx-empty-cell.vd │ ├── xlsx-header.vd │ └── xlsx-merged-cells.vd └── visidata/ ├── __init__.py ├── __main__.py ├── _input.py ├── _open.py ├── _types.py ├── _urlcache.py ├── aggregators.py ├── apps/ │ ├── __init__.py │ ├── galcon/ │ │ ├── Dockerfile.galcon-client │ │ ├── Dockerfile.galcon-server │ │ ├── README.md │ │ ├── galcon-server.py │ │ ├── galcon.py │ │ ├── requirements.txt │ │ └── setup.py │ ├── vdsql/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── MANIFEST.in │ │ ├── README.md │ │ ├── __about__.py │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── _ibis.py │ │ ├── bigquery.py │ │ ├── clickhouse.py │ │ ├── demos/ │ │ │ └── clickhouse-demo.vdx │ │ ├── requirements-extra.txt │ │ ├── requirements.txt │ │ ├── setup.py │ │ ├── snowflake.py │ │ ├── test.sh │ │ ├── tests/ │ │ │ ├── dup-limit.vdj │ │ │ ├── freq-open-selected.vdj │ │ │ ├── freq.vdj │ │ │ ├── golden/ │ │ │ │ ├── dup-limit.jsonl │ │ │ │ ├── freq-open-selected.jsonl │ │ │ │ ├── freq.jsonl │ │ │ │ ├── scoop.jsonl │ │ │ │ ├── select-col-regex.jsonl │ │ │ │ ├── select-expr-cast-type.tsv │ │ │ │ ├── select-expr.jsonl │ │ │ │ ├── select-row-dup.jsonl │ │ │ │ ├── toggle.jsonl │ │ │ │ ├── unselect-regex.tsv │ │ │ │ └── unselect.jsonl │ │ │ ├── scoop.vdj │ │ │ ├── select-col-regex.vdj │ │ │ ├── select-expr-cast-type.vdj │ │ │ ├── select-expr.vdj │ │ │ ├── select-row-dup.vdj │ │ │ ├── toggle.vdj │ │ │ ├── unselect-regex.vdj │ │ │ └── unselect.vdj │ │ └── vdsql │ └── vgit/ │ ├── CHANGELOG.md │ ├── README.md │ ├── USECASES.md │ ├── __init__.py │ ├── __main__.py │ ├── abort.py │ ├── blame.py │ ├── branch.py │ ├── config.py │ ├── diff.py │ ├── gitsheet.py │ ├── grep.py │ ├── log.py │ ├── main.py │ ├── remote.py │ ├── repos.py │ ├── setup.py │ ├── stash.py │ ├── status.py │ ├── statusbar.py │ ├── tests/ │ │ ├── git_branch_test.vdx │ │ └── git_remote_test.vdx │ ├── vgit │ └── vgit-guide.md ├── basesheet.py ├── bezier.py ├── canvas.py ├── canvas_text.py ├── choose.py ├── clean_names.py ├── clipboard.py ├── cliptext.py ├── cmdlog.py ├── color.py ├── column.py ├── ddw/ │ ├── input.ddw │ └── regex.ddw ├── ddwplay.py ├── deprecated.py ├── desktop/ │ ├── org.visidata.VisiData.metainfo.xml │ └── visidata.desktop ├── editor.py ├── errors.py ├── experimental/ │ ├── __init__.py │ ├── daw/ │ │ ├── CLAUDE.md │ │ ├── README.md │ │ ├── TODO.md │ │ ├── __init__.py │ │ ├── merge_transcripts.py │ │ ├── mpv.py │ │ ├── vdaw.py │ │ └── xmd2json.py │ ├── diff_sheet.py │ ├── digit_autoedit.py │ ├── gdrive.py │ ├── google.py │ ├── gsheets.py │ ├── helloworld.py │ ├── live_search.py │ ├── liveupdate.py │ ├── llm.py │ ├── mark.py │ ├── noahs_tapestry/ │ │ ├── __init__.py │ │ ├── clues.json │ │ ├── flame.ddw │ │ ├── menorah.ddw │ │ ├── puzzle0.md │ │ ├── puzzle1.md │ │ ├── puzzle2.md │ │ ├── puzzle3.md │ │ ├── puzzle4.md │ │ ├── puzzle5.md │ │ ├── puzzle6.md │ │ ├── puzzle7.md │ │ ├── puzzle8.md │ │ ├── solutions.json │ │ ├── tapestry.ddw │ │ └── tapestry.py │ ├── rownum.py │ ├── slide_cells.py │ ├── sort_selected.py │ └── vimcompat.py ├── expr.py ├── extensible.py ├── features/ │ ├── __init__.py │ ├── addcol_audiometadata.py │ ├── addcol_histogram.py │ ├── canvas_save_svg.py │ ├── change_precision.py │ ├── cmdpalette.py │ ├── colorbrewer.py │ ├── colorsheet.py │ ├── command_server.py │ ├── currency_to_usd.py │ ├── customdate.py │ ├── dedupe.py │ ├── describe.py │ ├── expand_cols.py │ ├── fill.py │ ├── freeze.py │ ├── go_col.py │ ├── graph_seaborn.py │ ├── graph_zoom_y.py │ ├── hint_types.py │ ├── hlsearch.py │ ├── icon.py │ ├── incr.py │ ├── join.py │ ├── known_cols.py │ ├── layout.py │ ├── melt.py │ ├── normcol.py │ ├── open_config.py │ ├── open_syspaste.py │ ├── ping.py │ ├── procmgr.py │ ├── pypkg.py │ ├── random_sample.py │ ├── rank.py │ ├── regex.py │ ├── reload_every.py │ ├── rename_col_cascade.py │ ├── repeat.py │ ├── repl.py │ ├── replay_bulk.py │ ├── scroll_context.py │ ├── select_equal_selected.py │ ├── setcol_fake.py │ ├── slide.py │ ├── sparkline.py │ ├── status_source.py │ ├── sysedit.py │ ├── sysopen_mailcap.py │ ├── term_extras.py │ ├── transpose.py │ ├── type_ipaddr.py │ ├── type_url.py │ ├── unfurl.py │ └── window.py ├── form.py ├── freqtbl.py ├── fuzzymatch.py ├── graph.py ├── guide.py ├── guides/ │ ├── AggregatorsSheet.md │ ├── ClipboardGuide.md │ ├── ColumnsGuide.md │ ├── CommandsSheet.md │ ├── DirSheet.md │ ├── ErrorsSheet.md │ ├── FrequencyTable.md │ ├── GrepSheet.md │ ├── JsonSheet.md │ ├── MacrosSheet.md │ ├── MeltGuide.md │ ├── MemorySheet.md │ ├── MenuGuide.md │ ├── ModifyGuide.md │ ├── MovementGuide.md │ ├── PivotGuide.md │ ├── RegexGuide.md │ ├── SelectionGuide.md │ ├── SlideGuide.md │ ├── SortGuide.md │ ├── SplitpaneGuide.md │ ├── TypesSheet.md │ ├── WindowFunctionGuide.md │ └── XsvGuide.md ├── help.py ├── hint.py ├── indexsheet.py ├── input_history.py ├── interface.py ├── keys.py ├── loaders/ │ ├── __init__.py │ ├── _pandas.py │ ├── api_airtable.py │ ├── api_matrix.py │ ├── api_reddit.py │ ├── api_zulip.py │ ├── archive.py │ ├── arrow.py │ ├── claude.py │ ├── conll.py │ ├── csv.py │ ├── eml.py │ ├── f5log.py │ ├── fec.py │ ├── fixed_width.py │ ├── frictionless.py │ ├── geojson.py │ ├── google.py │ ├── graphviz.py │ ├── grep.py │ ├── hdf5.py │ ├── html.py │ ├── http.py │ ├── imap.py │ ├── jrnl.py │ ├── json.py │ ├── jsonla.py │ ├── lsv.py │ ├── mailbox.py │ ├── markdown.py │ ├── mbtiles.py │ ├── msgpack.py │ ├── mysql.py │ ├── npy.py │ ├── odf.py │ ├── orgmode.py │ ├── pandas_freqtbl.py │ ├── parquet.py │ ├── pcap.py │ ├── pdf.py │ ├── png.py │ ├── postgres.py │ ├── psv.py │ ├── rec.py │ ├── s3.py │ ├── sas.py │ ├── scrape.py │ ├── shp.py │ ├── spss.py │ ├── sqlite.py │ ├── texttables.py │ ├── toml.py │ ├── tsv.py │ ├── ttf.py │ ├── unzip_http.py │ ├── usv.py │ ├── vcf.py │ ├── vds.py │ ├── vdx.py │ ├── xlsb.py │ ├── xlsx.py │ ├── xml.py │ ├── xword.py │ └── yaml.py ├── macos.py ├── macros.py ├── main.py ├── mainloop.py ├── man/ │ ├── parse_options.py │ └── vd.inc ├── memory.py ├── menu.py ├── metasheets.py ├── modify.py ├── motd.py ├── mouse.py ├── movement.py ├── optionssheet.py ├── path.py ├── pivot.py ├── plugins.py ├── pyobj.py ├── rename_col.py ├── save.py ├── search.py ├── selection.py ├── settings.py ├── sheets.py ├── shell.py ├── sidebar.py ├── sort.py ├── statusbar.py ├── stored_list.py ├── tests/ │ ├── __init__.py │ ├── benchmark.csv │ ├── conftest.py │ ├── sample.tsv │ ├── test_cliptext.py │ ├── test_commands.py │ ├── test_completer.py │ ├── test_date.py │ ├── test_edittext.py │ ├── test_features.py │ ├── test_fixed_width.py │ ├── test_keystrokes.py │ ├── test_menu.py │ ├── test_parsepos.py │ └── test_path.py ├── text_source.py ├── textsheet.py ├── theme.py ├── themes/ │ ├── __init__.py │ ├── adwaita.py │ ├── ascii8.py │ ├── asciimono.py │ └── light.py ├── threads.py ├── tuiwin.py ├── type_currency.py ├── type_date.py ├── type_floatsi.py ├── undo.py ├── utils.py ├── vdobj.py ├── vendor/ │ ├── __init__.py │ └── appdirs.py ├── windows.py └── wrappers.py