Skip to content

Commit c9f76dc

Browse files
authored
Merge pull request #1178 from saulpw/develop
v2.7
2 parents 8f657bd + 0a0474b commit c9f76dc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+1776
-487
lines changed

CHANGELOG.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,49 @@
11
# VisiData version history
22

3+
# 2.7 (2021-11-14)
4+
5+
## Improvements
6+
7+
- [movement] bind Home/End to go-top/go-bottom (thanks @geekscrapy #1161)
8+
- [api] add vd.urlcache as alias for urlcache global (thanks @geekscrapy for PR #1164)
9+
- [plugins] do not continue installation if main package fails pip install (thanks @geekscrapy for PR #1194)
10+
- [plugins] allow for plugin records without SHA256; warn if absent (thanks @geekscrapy for PR #1183)
11+
- [load_lazy] do not load subsheets, if `sheet.options.load_lazy` is True (thanks @geekscrapy for PR #1193)
12+
- [save] confirm when `save_foo` function does not exist and saver fallsback to `options.save_filetype` (reported by @geekscrapy #1180)
13+
- [save] `options.save_filetype` default now 'tsv'
14+
- several cosmetic improvements
15+
16+
## Loaders
17+
18+
- [lsv] add `lsv` filetype for simple awk-like records (requested by @fourjay #1179)
19+
- [ods] add `odf` filetype for Open Document Format spreadsheets
20+
- [xlsx] add extra columns (`cellobject`, `fontcolor`, `fillcolor`) if `options.xlsx_meta_columns` (default False) (thanks @hoclun-rigsep for PR #1098)
21+
- [sqlite] allow query/insert (no modify/delete yet) for `WITHOUT ROWID` tables (requested by @stephancb #1111)
22+
23+
## Bugfixes
24+
25+
- [savers compression formats] fix corruption when saving to compression formats (#1159)
26+
- fix "ModuleNotFoundError: no module named 'plugins'" error on startup (#1131 #1152)
27+
- [windows] fix issue with Enter key on Windows (reported by @hossam-houssien #1154)
28+
- [draw] fix multiline rows by making height fixed for all rows (reported by @geekscrapy #916)
29+
- [DirSheet] fix bug where fix key column sheets (e.g. DirSheet, SqliteIndexSheet) keycols were not being saved in batchmode (reported by @geekscrapy #1181)
30+
- [async] make sure all threads started on sheet are cancelable (reported by @geekscrapy #1136)
31+
- [AttrDict] fix bug with setting value on nested AttrDict
32+
- [dup-X-deep] fix error with async_deepcopy (thanks @pstuifzand for fix)
33+
- [join] fix 'inconsistent-keys' issue when joining between XlsxSheet with typed columns and CsvSheet with untyped columns (reported by @davidwales #1124)
34+
- [sqlite] handle sqlite column names with spaces (thanks @davidskeck for PR #1157)
35+
- [sqlite] use `options.encoding` and `options.encoding_errors` for decoding of sqlite db text (reported by @WesleyAC #1156)
36+
- [xlsx] add handling for EmptyCell instances (thanks @hoclun-rigsep for PR #1121)
37+
- [xlsx] gate sheet name cleaning on `options.clean_names` (reported by @davidwales #1122)
38+
- [macos] fix bindings for `Option`+key
39+
- [random-rows] fix import (reported by @geekscrapy #1162)
40+
- [save-selected] better default save filename (reported by @geekscrapy #1180)
41+
- [save] fix bug where saving multiple sheets to a single non-embeddable format did not result in fail (reported by @geekscrapy #1180)
42+
- [slide] fix Shift slide-down and Shift slide-up with arrow keys (reported by @a-y-u-s-h #1137)
43+
- [replay] fix replay where `join-sheets` operation hangs (reported by @agjohnson #1141)
44+
- [undo] no more KeyError when Undoing modifications (reported by @geekscrapy #1133)
45+
- [unfurl-col] fix unfurl-col on cells containing exceptions (reported by @jsvine #1171)
46+
347
# 2.6.1 (2021-09-28)
448

549
## Bugfixes

MANIFEST.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ include LICENSE.gpl3
33
include visidata/man/vd.1
44
include visidata/man/vd.txt
55
include visidata/man/visidata.1
6+
include visidata/ddw/input.ddw

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
# VisiData v2.6.1 [![twitter @VisiData][1.1]][1] [![CircleCI](https://circleci.com/gh/saulpw/visidata/tree/stable.svg?style=svg)](https://circleci.com/gh/saulpw/visidata/tree/stable) [![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/saulpw/visidata)
2+
# VisiData v2.7 [![twitter @VisiData][1.1]][1] [![CircleCI](https://circleci.com/gh/saulpw/visidata/tree/stable.svg?style=svg)](https://circleci.com/gh/saulpw/visidata/tree/stable) [![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

44
A terminal interface for exploring and arranging tabular data.
55

dev/checklists/manual-tests.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,3 +104,10 @@
104104
- test both panes
105105
17. Anything new in this release (should it have its own automated test?)
106106
18. `edit-cell` and then `Ctrl+O` to launch editor.
107+
19. Save to a non-existent format.
108+
- Saves to tsv by default
109+
- Save to it a second time, asks for confirmation, if confirm_overwrite=True
110+
20. Save multiple sheets to a single non-embeddable format
111+
- save name makes sense
112+
- fails if not offered a directory
113+
- succeeds if offered a directory

dev/checklists/release.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@
22

33
1. Merge `stable` to `develop` (if necessary)
44

5-
2. Verify that VisiData is up-to-date:
6-
* help menu
7-
* plugins.jsonl
8-
95
2. Verify that documentation/docstrings are up-to-date on features and functionality
106

117
a. CHANGELOG;
@@ -14,6 +10,10 @@
1410

1511
c. visidata.org; (formats?)
1612

13+
3. Verify that VisiData is up-to-date:
14+
* help menu
15+
* plugins.jsonl
16+
1717
3. Ensure `develop` automated tests run correctly with dev/test.sh
1818

1919
4. Go through the manual tests checklist

dev/debian/changelog

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
visidata (2.6.1-1) unstable; urgency=low
2+
3+
* Update package to 2.6.1
4+
5+
-- Anja Boskovic <[email protected]> Tue, 28 Sep 2021 23:20:47 -0700
6+
17
visidata (2.4-1) unstable; urgency=low
28

39
* Update package to 2.4

dev/mkman.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,17 @@ soelim -rt -I $BUILD $BUILD/vd.inc > $BUILD/vd-pre.1
2323
preconv -r -e utf8 $BUILD/vd-pre.1 > $MAN/vd.1
2424
preconv -r -e utf8 $BUILD/vd-pre.1 > $MAN/visidata.1
2525
MANWIDTH=80 man $MAN/vd.1 > $MAN/vd.txt
26+
27+
# build docs/man.md
28+
29+
manhtml="$VD"/docs/man.md
30+
echo '---' > "$manhtml"
31+
echo 'eleventyNavigation:' >> "$manhtml"
32+
echo ' key: Quick Reference Guide' >> "$manhtml"
33+
echo ' order: 2' >> "$manhtml"
34+
echo 'permalink: /man/' >> "$manhtml"
35+
echo '---' >> "$manhtml"
36+
echo '<section><pre id="manpage" class="whitespace-pre-wrap text-xs">' >> "$manhtml"
37+
38+
MAN_KEEP_FORMATTING=1 COLUMNS=1000 man "$MAN"/vd.1 | ul | aha --no-header >> "$manhtml"
39+
echo '</pre></section>' >> "$manhtml"

docs/architecture.md

Lines changed: 0 additions & 75 deletions
This file was deleted.

docs/columns.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
eleventyNavigation:
33
key: Columns
44
order: 5
5-
update: 2021-06-16
6-
version: VisiData 2.4
5+
update: 2021-11-01
6+
version: VisiData 2.6
77
---
88

99
## How to manipulate columns
@@ -173,8 +173,8 @@ uses the commands for column splitting and transformation with [xd/puzzles.tsv](
173173

174174
###
175175

176-
- `:` adds new columns derived from splitting the current column at positions defined by a *regex pattern*. The current row will be used to infer the number of columns that will be created.
177-
- `;` adds new columns derived from pulling the contents of the current column which match the *regex within capture groups*. The new columns are named using the capture group index, or if named capture groups are used, the capture group names. This command also requires an example row.
176+
- `:` adds new columns derived from splitting the current column at positions defined by a *regex pattern*. `options.default_sample_size` (default: 100) rows around the cursor will be used to determine the number of columns that will be created.
177+
- `;` adds new columns derived from pulling the contents of the current column which match the *regex within capture groups*. The new columns are named using the capture group index, or if named capture groups are used, the capture group names. This command uses the `options.default_sample_size` (default:100) rows around the cursor as sample rows.
178178
- `*` followed by *regex*`/`*substring* replaces the text which matches the capture groups in *regex* with the contents of *substring*. *substring* may include backreferences (*\1* etc).
179179

180180
## [How do I substitute text in my column]
@@ -221,7 +221,7 @@ The following demo shows `(` commands applied to this data:
221221
<asciinema-player id="player-expand-cols" poster="npt:0:20" rows=13 src="../casts/expand-cols.cast"></asciinema-player>
222222
</div>
223223

224-
Note that by default the expansion logic will look for nested columns in **up to 1,000 rows surrounding the cursor**. This behavior can be controlled by adjusting `expand_col_scanrows` in the **Options Sheet**, or setting `options.expand_col_scanrows` in the `~/.visidatarc` file.
224+
Note that by default the expansion logic will look for nested columns in **up to** `options.default_sample_size` (Default: 100) **rows surrounding the cursor**. This behavior can be controlled by adjusting `default_sample_size` in the **Options Sheet**, or setting `options.default_sample_size` in the `~/.visidatarc` file.
225225

226226
---
227227

docs/formats.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ eleventyNavigation:
4949
|vcf |Virtual Contact File \(vCard\)|2\.0 | | |1995 |Versit Consortium |https://tools\.ietf\.org/html/rfc6350| |
5050
|rec |recutils database file|2\.0 |displayed text | |2010 |Jose E\. Marchesi |https://www\.gnu\.org/software/recutils/| |
5151
|eml |Multipurpose Internet Mail Extensions \(MIME\)|2\.0 | | |1996 |Nathaniel Borenstein and Ned Freed|https://tools\.ietf\.org/html/rfc2045| |
52+
|ods |OpenDocument Spreadsheet|2\.7 | | |2006 |[OASIS](https://en.wikipedia.org/wiki/OASIS_(organization))|https://docs.oasis-open.org/office/v1.1/|odfpy|
53+
|lsv |awk-like key-value line-separated values|2\.7 |v2\.7 | | | | | |
5254

5355

5456
# Extra notes about formats
@@ -97,6 +99,17 @@ eleventyNavigation:
9799
- `postgres_schema` (default: 'public') the desired schema for the Postgres database
98100
- `vd postgres://`*username*`:`*password*`@`*hostname*`:`*port*`/`*database* opens a connection to the given postgres database.
99101

102+
### using VisiData as a pager within psql
103+
104+
In psql:
105+
106+
~~~
107+
\pset format csv
108+
\pset pager always
109+
\setenv PSQL_PAGER 'vd -f csv'
110+
\pset pager_min_lines
111+
~~~
112+
100113
## sqlite {#sqlite}
101114
- supports saving for CREATE/INSERT (not wholesale updates)
102115
- `z Ctrl+S` to commit any `add-row`/`edit-cell`/`delete-row`
@@ -138,6 +151,20 @@ vd -f pandas data.parquet
138151

139152
loads a parquet file. When using the **pandas** loader, the `.fileformat` file extension is mandatory.
140153

154+
To load a hierarchy of parquet files located in folder `data/`, run
155+
156+
~~~
157+
vd -f parquet data/
158+
~~~
159+
160+
or rename the directory to `data.parquet` and run
161+
162+
~~~
163+
vd data.parquet -f pandas
164+
~~~
165+
166+
This should similarly work for any format that has a `pandas.read_format()` function.
167+
141168
## vd {#vd}
142169
- Command history log format for a VisiData session.
143170
- `Ctrl+D` to save the current session's CommandLog.

0 commit comments

Comments
 (0)