saulpw / visidata Goto Github PK
View Code? Open in Web Editor NEWA terminal spreadsheet multitool for discovering and arranging data
Home Page: http://visidata.org
License: GNU General Public License v3.0
A terminal spreadsheet multitool for discovering and arranging data
Home Page: http://visidata.org
License: GNU General Public License v3.0
Typing a Unicode character should insert that character into the edit buffer.
xlrd==1.0.0
visidata==0.91
When I try to open Sheet1
of the test file, I get the following error:
test~Sheet1| TypeError: 'generator' object is not subscriptable | TypeError: 'generator' object is not subscriptable | TypeError: 'generator' object is not subscriptable
Opens fine if I use Python 2.7
I ran into two issues when following the install instructions for visidata:
vd
after install throws an ImportError "No module named 'visidata.addons".I've attached my install and run logs. The run logs show the full stack trace for the import error.
For treatment in the documentation, what sort of README and subdirectory support would be reasonable for add-on modules?
It's convenient having them all together in addons/
, but for those that require special instructions (for instance, what if key-commands overlap with those of other add-ons?) or look-up files, what would the best way be to structure things? I can imagine each module, with appurtenances, in its own subdirectory, and I can also imagine something like
screen-reader.py
screen-reader.md
screen-reader-support/
Any thoughts.
Currently, enter doesn't seem to be mapped to anything. I think the best action for enter would be to make it edit the current cell, since editing is the primary action you want to perform, and enter is a fairly primary key. This would help non-vim users to use visidata because it would be fairly intuitive and allow them to edit a file using only the arrow keys and enter (and whatever they want to type, of course)
Hello,
You might add some unit tests (at least integration tests) and enable continuous integration (Travis for example).
Kind regards
Could vd -h
show the link https://visidata.readthedocs.io/en/stable/user-guide/? After pip3 install visidata
there's not a clear way to figure out keybindings except coming to the github page.
For example, if a cell contains a dollar sign, it should be stripped and conversion to float should succeed.
I'm using Debian sid. I did approximately the following:
$ apt-get install python3-pip
...success...
$ pip3 install visidata
...some error about bdist_wheel...
$ pip3 install wheel
...success...
$ pip3 install visidata
...success...
$ vd ~/data/my.csv
bash: vd: command not found
$ find ~/.pip ~/local/lib/python3.5 -iname vd
...not found...
$ find ~/.pip ~/local/lib/python3.5 -iname visidata
/home/hobbes/.local/lib/python3.5/site-packages/visidata
...(that's a directory)...
How should I be invoking visidata
? Thank you in advance... Sorry I don't know how pip
works!
When a cell contains a substantial amount of text, most users will probably prefer to use their own editor, as set for the system or in VD options. I think it's reasonable for that to be the normal behavior whenever the size of the text is greater than the visible width of the cell.
Some users may prefer never to load their editor, and others may prefer to use their own editor all the time, even for tiny strings. Still others may want to use their own editor whenever the size of the text is something other than what I've described.
I suggest using a single command to begin editing a cell, and having a cut-off string-length set in options โ between editing VD's built-in tools and editing with one's own editor. I think this single command would more naturally be ENTER
than e
, but perhaps they should co-exist, since ge
is not really replaceable by g-ENTER
. ^
for editing column-headers is a different use case and would remain as is.
Hello,
you should make a package for visidata
Kind regards
It should scroll within the bounds of the given width only.
v0.33
options.disp_column_sep = 'foo'
to .visidatarc
.disp_column_sep
to something else.I think this is because it is being put on the OptionsObject as an actual attribute, which is fetched not via getattr
, and thus when changed via setitem
, is set in the 'real' place but not used subsequently anymore.
Workaround: use options['disp_column_sep'] = 'foo'
instead.
When i start vd with vd file.csv
or just vd
all I see is black screen and nothing happens (can't write anything, ctrl+c
, ctrl+z
, ctrl+/
don't work either). Any ideas what could be wrong? I intalled it via pip install visidata
.
visidata 0.91
Python 3.6.1
Linux Mint
On https://visidata.readthedocs.io/en/stable/screen-layout/
There are 2 links to https://visidata.readthedocs.io/en/stable/visidata-interface.png, which I guess should be located at visidata/docs/visidata-interface.png in the github repo.
Thinking aloud here. For interacting with the Maildir and mbox, VD would seem ideal. But I think it will take a lot of work to handle connecting to commercial mail servers and the range of authentication tools that are in use.
Neither Alpine nor Mutt, the two main applications in use nowadays for CLI-based email, are up to snuff. Using Alpine to access the Gmail IMAP servers requires one to downgrade one's permissions to "less-secure app", and encryption requires clunky third-party tools like Topal, plus patches to the Alpine code. Mutt doesn't seem to be able to handle multiple INBOXes on multiple servers, and configuration is daunting.
Once a user converts a column to the date type, it should be easy to extract, for example, the hour.
This should probably inherit from the Python datetime class.
It looks like currently the only way to save is to use Ctrl+S
, except that this always prompts the user for a file name, and there is no way of simply saving over the current file.
Could this feature be added? It seems fairly essential. I think that if the user provides no input in the save prompt, vd
should override the current file. Thoughts?
metasheets.py:ColumnGlobal
is still called twice by SheetColumns.reload
, but I have a note saying that Saul would like to remove or rename it when possible. This is a concrete reminder of that issue.
After upgrading from 0.92
to 0.94
, I can't seem to open files with vd
. I run into the same error on 0.93
.
vd path/to/my.csv
Traceback (most recent call last):
File "[...]/bin/vd", line 39, in <module>
main()
File "[...]/bin/vd", line 36, in main
visidata.run(sources)
File "[...]/lib/python3.6/site-packages/visidata/vd.py", line 2079, in run
ret = wrapper(cursesMain, sheetlist)
File "[...]/lib/python3.6/site-packages/visidata/vd.py", line 1962, in wrapper
return curses.wrapper(setupcolors, f, *args)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/curses/__init__.py", line 94, in wrapper
return func(stdscr, *args, **kwds)
File "[...]/lib/python3.6/site-packages/visidata/vd.py", line 1958, in setupcolors
return f(stdscr, *args)
File "[...]/lib/python3.6/site-packages/visidata/vd.py", line 2097, in cursesMain
return vd().run(_scr)
File "[...]/lib/python3.6/site-packages/visidata/vd.py", line 552, in run
curses.curs_set(0)
_curses.error: curs_set() returned ERR
vd will consume stdin if available and parse it as txt (with tsv autodetect), or with the given --filetype. For consistency with other tools, -
given as a file should indicate the stdin source. When multiple files are specified, the ordering of the -
should indicate where in the initial sheet ordering the stdin sheet should be placed.
Referencing comment from @wavexx in TabViewer/tabview#152
The Dev Guide (docs/dev-guide.md) should probably have second example command.
I think adding undo/redo functionality is pretty important, as without it you have to restart the whole editor to undo your changes. Luckily it shouldn't be too difficult since most actions can be described as either a cell edit, or a row/column add or delete
The analysis/workflow in the introductory GIF is really neat, but a bit hard to follow.
New users might benefit from a step-by-step walkthrough of what's going on.
I am not sure if this is a bug or I am just not using the correct command line parameters.
If I open a file called iris.csv, like so:
vd iris.csv
the file opens up fine.
However, if I open the same exact file with a txt extension, e.g.:
vd iris.txt
I get the following trace:
Traceback (most recent call last):
File "/usr/local/bin/vd", line 39, in <module>
main()
File "/usr/local/bin/vd", line 36, in main
visidata.run(sources)
File "/usr/local/lib/python3.5/site-packages/visidata/vd.py", line 1857, in run
ret = wrapper(curses_main, sheetlist)
File "/usr/local/lib/python3.5/site-packages/visidata/vd.py", line 1772, in wrapper
return curses.wrapper(setupcolors, f, *args)
File "/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/curses/__init__.py", line 94, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/local/lib/python3.5/site-packages/visidata/vd.py", line 1768, in setupcolors
return f(stdscr, *args)
File "/usr/local/lib/python3.5/site-packages/visidata/vd.py", line 1863, in curses_main
vd().push(vs) # first push does a reload
File "/usr/local/lib/python3.5/site-packages/visidata/vd.py", line 550, in push
vs.reload()
File "/usr/local/lib/python3.5/site-packages/visidata/vd.py", line 1504, in reload
self.add_line(L[:-1])
File "/usr/local/lib/python3.5/site-packages/visidata/vd.py", line 1510, in add_line
self.rows.extend(textwrap.wrap(text, width=windowWidth-2))
TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'
p.s. thanks for making VisiData!
Hello,
you might add support for databases such a MySQL, PostgreSQL, SQLite via Blaze.
https://blaze.readthedocs.io/en/latest/uri.html
Kind regards
If a user makes a column into a key column and then goes to the ColumnSheet, there should be an indicator on that sheet that shows which columns are key columns.
Key columns are colorized on the main sheet. One approach could be to colorize the rows that represent key columns on the ColumnSheet.
It is not currently possible to colorize rows, so this issue depends on #24.
We don't know what keys to use for this.
When saving a file, using the 'delete' key to edit the save name results in '.' being inserted into the line of text.
I run f1
and z?
in vd
, and get the following printed to the terminal, which I see after exiting vd
:
man: unrecognized option `--local-file'
man, version 1.6c
usage: man [-adfhktwW] [section] [-M path] [-P pager] [-S list]
[-m system] [-p string] name ...
a : find all matching entries
c : do not use cat file
d : print gobs of debugging information
D : as for -d, but also display the pages
f : same as whatis(1)
h : print this help message
k : same as apropos(1)
K : search for a string in all pages
t : use troff to format pages for printing
w : print location of man page(s) that would be displayed
(if no name given: print directories that would be searched)
W : as for -w, but display filenames only
C file : use `file' as configuration file
M path : set search path for manual pages to `path'
P pager : use program `pager' to display pages
S list : colon separated section list
m system : search for alternate system's man pages
p string : string tells which preprocessors to run
e - [n]eqn(1) p - pic(1) t - tbl(1)
g - grap(1) r - refer(1) v - vgrind(1)
I run it on ubuntu 17.04 with man version 2.7.6.1
and it works fine.
Seems like OSX man
is either outdated or BSD man
doesn't support the relevant flag.
Sometimes a new column is added the name is set to something that isn't a valid identifier. That means the column name has to be changed before it can be used in expressions. This should be avoided.
When opening an xlsx file with visidata, colums are unnamed and instead contain the excel letter headers.
These default headers cannot be used as a reference for keys such as c
or =
.
File "visidata/vdtui.py", line 1511, in _getDisplayValue
cellval = self.getter(row
File "visidata/addons/metasheets.py", line 75 in <lambda>
vc.getter = lambda r,c=vc,s=sheet: LazyMapping(s, r)(c)
File "visidata/addons/metasheets.py", line56, in __call__
return eval(col.expr, getGlobals(), self)
File "<string>", line 1, in <module>
NameError: name 'F' is not defined
Current workaround is to rename headers with ^
.
Right now, only selected rows are colorized. There should be a mechanism to assign a color to generic rows.
Sheets should be able to specify lamda functions that determine which rows receive which colors.
Hello @saulpw ,
I noticed your project thanks to @firecat53
TabViewer/tabview#152
Your project have interesting feature quite comparable
tabview is a curse table viewer
gtabview is a Qt table viewer with support of any databases supported by Blaze, Pandas DataFrames....
gtabview have interesting models that could be used both for a text interface and a GUI.
Have you ever heared of these projects previously?
I noticed that you code need some PEP8 cleanup?
$ flake8 visidata
visidata/data.py:1:1: F401 'random' imported but unused
visidata/data.py:3:1: F403 'from .vdtui import *' used; unable to detect undefined names
visidata/data.py:5:1: F405 'option' may be undefined, or defined from star imports: .vdtui
visidata/data.py:5:80: E501 line too long (89 > 79 characters)
visidata/data.py:6:1: F405 'option' may be undefined, or defined from star imports: .vdtui
visidata/data.py:7:1: F405 'option' may be undefined, or defined from star imports: .vdtui
visidata/data.py:8:1: F405 'option' may be undefined, or defined from star imports: .vdtui
visidata/data.py:11:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:11:80: E501 line too long (155 > 79 characters)
visidata/data.py:12:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:12:80: E501 line too long (136 > 79 characters)
visidata/data.py:13:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:13:80: E501 line too long (128 > 79 characters)
visidata/data.py:14:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:14:80: E501 line too long (168 > 79 characters)
visidata/data.py:15:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:15:80: E501 line too long (124 > 79 characters)
visidata/data.py:16:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:16:80: E501 line too long (108 > 79 characters)
visidata/data.py:17:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:17:80: E501 line too long (113 > 79 characters)
visidata/data.py:18:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:18:80: E501 line too long (125 > 79 characters)
visidata/data.py:20:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:20:80: E501 line too long (151 > 79 characters)
visidata/data.py:21:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:21:80: E501 line too long (157 > 79 characters)
visidata/data.py:22:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:22:80: E501 line too long (117 > 79 characters)
visidata/data.py:23:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:23:80: E501 line too long (104 > 79 characters)
visidata/data.py:25:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:25:80: E501 line too long (213 > 79 characters)
visidata/data.py:27:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:27:80: E501 line too long (98 > 79 characters)
visidata/data.py:28:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:28:80: E501 line too long (135 > 79 characters)
visidata/data.py:30:1: E302 expected 2 blank lines, found 1
visidata/data.py:33:16: F405 'isNullFunc' may be undefined, or defined from star imports: .vdtui
visidata/data.py:44:5: F405 'status' may be undefined, or defined from star imports: .vdtui
visidata/data.py:50:80: E501 line too long (100 > 79 characters)
visidata/data.py:52:1: E305 expected 2 blank lines after class or function definition, found 1
visidata/data.py:52:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:52:80: E501 line too long (111 > 79 characters)
visidata/data.py:53:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:53:80: E501 line too long (116 > 79 characters)
visidata/data.py:54:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:54:80: E501 line too long (209 > 79 characters)
visidata/data.py:57:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:57:80: E501 line too long (96 > 79 characters)
visidata/data.py:58:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:58:80: E501 line too long (214 > 79 characters)
visidata/data.py:60:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:60:80: E501 line too long (155 > 79 characters)
visidata/data.py:62:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:62:80: E501 line too long (126 > 79 characters)
visidata/data.py:64:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:65:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:68:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:69:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/data.py:71:1: E302 expected 2 blank lines, found 1
visidata/data.py:72:5: F401 'subprocess' imported but unused
visidata/data.py:74:10: F405 'SuspendCurses' may be undefined, or defined from star imports: .vdtui
visidata/data.py:75:9: F405 'os' may be undefined, or defined from star imports: .vdtui
visidata/data.py:77:1: E302 expected 2 blank lines, found 1
visidata/data.py:78:12: F405 'Sheet' may be undefined, or defined from star imports: .vdtui
visidata/data.py:78:38: F405 'ColumnItem' may be undefined, or defined from star imports: .vdtui
visidata/data.py:78:80: E501 line too long (87 > 79 characters)
visidata/data.py:80:1: E302 expected 2 blank lines, found 1
visidata/data.py:81:80: E501 line too long (104 > 79 characters)
visidata/data.py:82:17: F405 'options' may be undefined, or defined from star imports: .vdtui
visidata/data.py:88:1: E302 expected 2 blank lines, found 1
visidata/data.py:89:33: F405 'Path' may be undefined, or defined from star imports: .vdtui
visidata/data.py:94:1: E302 expected 2 blank lines, found 1
visidata/data.py:96:8: F405 'Path' may be undefined, or defined from star imports: .vdtui
visidata/data.py:97:12: F405 'options' may be undefined, or defined from star imports: .vdtui
visidata/data.py:98:13: F405 'confirm' may be undefined, or defined from star imports: .vdtui
visidata/data.py:100:21: F405 'os' may be undefined, or defined from star imports: .vdtui
visidata/data.py:102:24: F405 'getGlobals' may be undefined, or defined from star imports: .vdtui
visidata/data.py:104:5: F405 'getGlobals' may be undefined, or defined from star imports: .vdtui
visidata/data.py:105:5: F405 'status' may be undefined, or defined from star imports: .vdtui
visidata/data.py:108:16: F405 'Sheet' may be undefined, or defined from star imports: .vdtui
visidata/data.py:111:9: F405 'Command' may be undefined, or defined from star imports: .vdtui
visidata/data.py:111:17: F405 'ENTER' may be undefined, or defined from star imports: .vdtui
visidata/data.py:111:80: E501 line too long (90 > 79 characters)
visidata/data.py:114:9: F405 'Column' may be undefined, or defined from star imports: .vdtui
visidata/data.py:115:9: F405 'Column' may be undefined, or defined from star imports: .vdtui
visidata/data.py:116:9: F405 'Column' may be undefined, or defined from star imports: .vdtui
visidata/data.py:117:9: F405 'Column' may be undefined, or defined from star imports: .vdtui
visidata/data.py:117:30: F405 'date' may be undefined, or defined from star imports: .vdtui
visidata/data.py:121:69: E262 inline comment should start with '# '
visidata/data.py:121:80: E501 line too long (101 > 79 characters)
visidata/data.py:128:17: F405 'UrlPath' may be undefined, or defined from star imports: .vdtui
visidata/data.py:131:18: F405 'getGlobals' may be undefined, or defined from star imports: .vdtui
visidata/data.py:133:31: F405 'Path' may be undefined, or defined from star imports: .vdtui
visidata/data.py:134:24: F405 'Path' may be undefined, or defined from star imports: .vdtui
visidata/data.py:136:24: F405 'options' may be undefined, or defined from star imports: .vdtui
visidata/data.py:138:12: F405 'os' may be undefined, or defined from star imports: .vdtui
visidata/data.py:143:32: F405 'getGlobals' may be undefined, or defined from star imports: .vdtui
visidata/data.py:144:17: F405 'status' may be undefined, or defined from star imports: .vdtui
visidata/data.py:147:18: F405 'getGlobals' may be undefined, or defined from star imports: .vdtui
visidata/data.py:149:9: F405 'status' may be undefined, or defined from star imports: .vdtui
visidata/data.py:153:9: F405 'status' may be undefined, or defined from star imports: .vdtui
visidata/data.py:157:1: E266 too many leading '#' for block comment
visidata/data.py:158:1: E302 expected 2 blank lines, found 1
visidata/data.py:164:1: E302 expected 2 blank lines, found 1
visidata/data.py:167:20: F405 'getGlobals' may be undefined, or defined from star imports: .vdtui
visidata/data.py:168:5: F405 'status' may be undefined, or defined from star imports: .vdtui
visidata/data.py:170:1: E302 expected 2 blank lines, found 1
visidata/data.py:175:16: F405 'TextSheet' may be undefined, or defined from star imports: .vdtui
visidata/data.py:177:1: E302 expected 2 blank lines, found 1
visidata/data.py:189:1: E302 expected 2 blank lines, found 1
visidata/data.py:193:14: F405 'Sheet' may be undefined, or defined from star imports: .vdtui
visidata/data.py:196:24: F405 'options' may be undefined, or defined from star imports: .vdtui
visidata/data.py:199:80: E501 line too long (90 > 79 characters)
visidata/data.py:202:26: F405 'ArrayColumns' may be undefined, or defined from star imports: .vdtui
visidata/data.py:206:26: F405 'ArrayNamedColumns' may be undefined, or defined from star imports: .vdtui
visidata/data.py:206:80: E501 line too long (95 > 79 characters)
visidata/data.py:211:1: E302 expected 2 blank lines, found 1
visidata/data.py:211:2: F405 'async' may be undefined, or defined from star imports: .vdtui
visidata/data.py:216:1: E302 expected 2 blank lines, found 1
visidata/data.py:218:24: F405 'options' may be undefined, or defined from star imports: .vdtui
visidata/data.py:224:14: F405 'Progress' may be undefined, or defined from star imports: .vdtui
visidata/data.py:235:5: F405 'status' may be undefined, or defined from star imports: .vdtui
visidata/data.py:238:2: F405 'async' may be undefined, or defined from star imports: .vdtui
visidata/data.py:243:14: F405 'options' may be undefined, or defined from star imports: .vdtui
visidata/data.py:246:33: F405 'options' may be undefined, or defined from star imports: .vdtui
visidata/data.py:246:58: F405 'options' may be undefined, or defined from star imports: .vdtui
visidata/data.py:246:80: E501 line too long (88 > 79 characters)
visidata/data.py:247:80: E501 line too long (87 > 79 characters)
visidata/data.py:251:80: E501 line too long (106 > 79 characters)
visidata/data.py:252:5: F405 'status' may be undefined, or defined from star imports: .vdtui
visidata/data.py:253:1: W391 blank line at end of file
visidata/tidydata.py:1:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/tidydata.py:3:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/tidydata.py:3:80: E501 line too long (80 > 79 characters)
visidata/tidydata.py:5:30: E261 at least two spaces before inline comment
visidata/tidydata.py:8:1: E302 expected 2 blank lines, found 1
visidata/tidydata.py:8:19: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/tidydata.py:13:6: F405 'async' may be undefined, or defined from star imports: visidata
visidata/tidydata.py:16:25: F405 'SubrowColumn' may be undefined, or defined from star imports: visidata
visidata/tidydata.py:18:30: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/tidydata.py:18:80: E501 line too long (82 > 79 characters)
visidata/tidydata.py:19:30: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/tidydata.py:19:80: E501 line too long (95 > 79 characters)
visidata/tidydata.py:21:23: F405 'copy' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:1:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/pyobj.py:3:1: F405 'option' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:5:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:5:80: E501 line too long (165 > 79 characters)
visidata/pyobj.py:6:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:6:80: E501 line too long (128 > 79 characters)
visidata/pyobj.py:8:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:8:80: E501 line too long (160 > 79 characters)
visidata/pyobj.py:9:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:9:80: E501 line too long (185 > 79 characters)
visidata/pyobj.py:12:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:12:80: E501 line too long (154 > 79 characters)
visidata/pyobj.py:15:1: E266 too many leading '#' for block comment
visidata/pyobj.py:19:16: F405 'vd' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:21:9: F405 'status' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:23:1: E302 expected 2 blank lines, found 1
visidata/pyobj.py:36:9: F405 'status' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:38:1: E302 expected 2 blank lines, found 1
visidata/pyobj.py:42:1: E302 expected 2 blank lines, found 1
visidata/pyobj.py:44:80: E501 line too long (91 > 79 characters)
visidata/pyobj.py:46:1: E302 expected 2 blank lines, found 1
visidata/pyobj.py:48:13: F405 'ColumnAttr' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:50:1: E302 expected 2 blank lines, found 1
visidata/pyobj.py:52:13: F405 'ColumnAttr' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:54:1: E302 expected 2 blank lines, found 1
visidata/pyobj.py:56:13: F405 'ColumnItem' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:58:1: E302 expected 2 blank lines, found 1
visidata/pyobj.py:62:9: F405 'error' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:73:1: E302 expected 2 blank lines, found 1
visidata/pyobj.py:73:24: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:74:17: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:74:25: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:75:5: E301 expected 1 blank line, found 0
visidata/pyobj.py:77:25: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:78:47: E231 missing whitespace after ','
visidata/pyobj.py:79:47: E231 missing whitespace after ','
visidata/pyobj.py:79:49: E231 missing whitespace after ','
visidata/pyobj.py:79:51: E231 missing whitespace after ','
visidata/pyobj.py:79:55: F405 'setitem' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:82:1: E302 expected 2 blank lines, found 1
visidata/pyobj.py:82:23: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:83:17: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:83:25: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:84:5: E301 expected 1 blank line, found 0
visidata/pyobj.py:89:1: E302 expected 2 blank lines, found 1
visidata/pyobj.py:89:29: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:90:17: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:90:25: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:91:5: E301 expected 1 blank line, found 0
visidata/pyobj.py:92:25: F405 'ColumnItem' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:92:80: E501 line too long (87 > 79 characters)
visidata/pyobj.py:97:23: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:99:17: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:99:25: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:100:16: F405 'ColumnItem' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:100:39: F405 'ColumnItem' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:106:20: F405 'joinSheetnames' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:106:80: E501 line too long (83 > 79 characters)
visidata/pyobj.py:109:17: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:111:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:112:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:112:17: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:114:5: E301 expected 1 blank line, found 0
visidata/pyobj.py:118:25: F405 'ColumnItem' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:120:29: F405 'ColumnItem' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:128:20: F405 'joinSheetnames' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:128:80: E501 line too long (83 > 79 characters)
visidata/pyobj.py:130:1: E302 expected 2 blank lines, found 1
visidata/pyobj.py:130:24: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:134:5: E301 expected 1 blank line, found 0
visidata/pyobj.py:138:1: E302 expected 2 blank lines, found 1
visidata/pyobj.py:138:19: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:140:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:140:17: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:140:80: E501 line too long (164 > 79 characters)
visidata/pyobj.py:141:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:141:80: E501 line too long (134 > 79 characters)
visidata/pyobj.py:142:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:142:80: E501 line too long (149 > 79 characters)
visidata/pyobj.py:148:20: F405 'options' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:154:13: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:156:13: F405 'ColumnExpr' may be undefined, or defined from star imports: visidata
visidata/pyobj.py:169:1: E302 expected 2 blank lines, found 1
visidata/pyobj.py:172:80: E501 line too long (86 > 79 characters)
visidata/pyobj.py:173:1: W391 blank line at end of file
visidata/__init__.py:4:1: F401 '.vdtui.__version__' imported but unused
visidata/__init__.py:5:1: F403 'from .vdtui import *' used; unable to detect undefined names
visidata/__init__.py:6:1: F403 'from .async import *' used; unable to detect undefined names
visidata/__init__.py:7:1: F403 'from .zscroll import *' used; unable to detect undefined names
visidata/__init__.py:8:1: F403 'from .aggregators import *' used; unable to detect undefined names
visidata/__init__.py:9:1: F403 'from .data import *' used; unable to detect undefined names
visidata/__init__.py:10:1: F403 'from .clipboard import *' used; unable to detect undefined names
visidata/__init__.py:12:1: F403 'from .freqtbl import *' used; unable to detect undefined names
visidata/__init__.py:13:1: F403 'from .describe import *' used; unable to detect undefined names
visidata/__init__.py:14:1: F403 'from .pyobj import *' used; unable to detect undefined names
visidata/__init__.py:15:1: F403 'from .metasheets import *' used; unable to detect undefined names
visidata/__init__.py:16:1: F403 'from .pivot import *' used; unable to detect undefined names
visidata/__init__.py:17:1: F403 'from .tidydata import *' used; unable to detect undefined names
visidata/__init__.py:18:1: F403 'from .cmdlog import *' used; unable to detect undefined names
visidata/__init__.py:19:1: F403 'from .freeze import *' used; unable to detect undefined names
visidata/__init__.py:20:1: F403 'from .regex import *' used; unable to detect undefined names
visidata/__init__.py:22:1: F403 'from .loaders.csv import *' used; unable to detect undefined names
visidata/__init__.py:23:1: F403 'from .loaders.zip import *' used; unable to detect undefined names
visidata/__init__.py:24:1: F403 'from .loaders.xlsx import *' used; unable to detect undefined names
visidata/__init__.py:25:1: F403 'from .loaders.hdf5 import *' used; unable to detect undefined names
visidata/__init__.py:26:1: F403 'from .loaders.sqlite import *' used; unable to detect undefined names
visidata/__init__.py:27:1: F403 'from .loaders.fixed_width import *' used; unable to detect undefined names
visidata/__init__.py:28:1: F403 'from .loaders.postgres import *' used; unable to detect undefined names
visidata/__init__.py:30:1: F405 'addGlobals' may be undefined, or defined from star imports: .aggregators, .async, .clipboard, .cmdlog, .data, .describe, .freeze, .freqtbl, .loaders.csv, .loaders.fixed_width, .loaders.hdf5, .loaders.postgres, .loaders.sqlite, .loaders.xlsx, .loaders.zip, .metasheets, .pivot, .pyobj, .regex, .tidydata, .vdtui, .zscroll
visidata/freeze.py:1:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/freeze.py:4:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/freeze.py:4:80: E501 line too long (150 > 79 characters)
visidata/freeze.py:5:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/freeze.py:5:80: E501 line too long (163 > 79 characters)
visidata/freeze.py:6:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/freeze.py:6:80: E501 line too long (153 > 79 characters)
visidata/freeze.py:7:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/freeze.py:7:80: E501 line too long (132 > 79 characters)
visidata/freeze.py:8:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/freeze.py:13:24: E231 missing whitespace after ':'
visidata/freeze.py:14:16: E225 missing whitespace around operator
visidata/freeze.py:14:25: E231 missing whitespace after ','
visidata/freeze.py:15:13: E225 missing whitespace around operator
visidata/freeze.py:15:22: E231 missing whitespace after ','
visidata/freeze.py:15:24: E231 missing whitespace after ','
visidata/freeze.py:15:26: E231 missing whitespace after ','
visidata/freeze.py:15:28: E231 missing whitespace after ','
visidata/freeze.py:15:43: F405 'setitem' may be undefined, or defined from star imports: visidata
visidata/freeze.py:20:19: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/freeze.py:25:25: F405 'ColumnItem' may be undefined, or defined from star imports: visidata
visidata/freeze.py:25:80: E501 line too long (124 > 79 characters)
visidata/freeze.py:25:86: E231 missing whitespace after ','
visidata/freeze.py:28:6: F405 'async' may be undefined, or defined from star imports: visidata
visidata/regex.py:1:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/regex.py:3:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/regex.py:3:80: E501 line too long (222 > 79 characters)
visidata/regex.py:4:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/regex.py:4:80: E501 line too long (212 > 79 characters)
visidata/regex.py:5:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/regex.py:5:80: E501 line too long (214 > 79 characters)
visidata/regex.py:7:1: F405 'option' may be undefined, or defined from star imports: visidata
visidata/regex.py:9:1: E302 expected 2 blank lines, found 1
visidata/regex.py:10:63: F405 'options' may be undefined, or defined from star imports: visidata
visidata/regex.py:10:80: E501 line too long (146 > 79 characters)
visidata/regex.py:12:1: E302 expected 2 blank lines, found 1
visidata/regex.py:13:80: E501 line too long (104 > 79 characters)
visidata/regex.py:15:1: E302 expected 2 blank lines, found 1
visidata/regex.py:16:13: F405 're' may be undefined, or defined from star imports: visidata
visidata/regex.py:16:34: F405 'regex_flags' may be undefined, or defined from star imports: visidata
visidata/regex.py:22:13: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/regex.py:22:62: E231 missing whitespace after ','
visidata/regex.py:22:66: E231 missing whitespace after ','
visidata/regex.py:22:80: E501 line too long (88 > 79 characters)
visidata/regex.py:34:14: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/regex.py:35:77: F405 're' may be undefined, or defined from star imports: visidata
visidata/regex.py:35:80: E501 line too long (145 > 79 characters)
visidata/regex.py:35:131: F405 'regex_flags' may be undefined, or defined from star imports: visidata
visidata/regex.py:38:1: E302 expected 2 blank lines, found 1
visidata/regex.py:39:6: E225 missing whitespace around operator
visidata/cmdlog.py:1:1: F401 'time' imported but unused
visidata/cmdlog.py:5:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/cmdlog.py:7:1: F405 'option' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:8:1: F405 'option' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:9:1: F405 'option' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:10:1: F405 'option' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:12:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:13:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:13:80: E501 line too long (158 > 79 characters)
visidata/cmdlog.py:14:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:15:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:15:80: E501 line too long (95 > 79 characters)
visidata/cmdlog.py:16:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:16:80: E501 line too long (81 > 79 characters)
visidata/cmdlog.py:18:1: E265 block comment should start with '# '
visidata/cmdlog.py:18:80: E501 line too long (98 > 79 characters)
visidata/cmdlog.py:21:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:21:80: E501 line too long (96 > 79 characters)
visidata/cmdlog.py:24:80: E501 line too long (108 > 79 characters)
visidata/cmdlog.py:26:80: E501 line too long (108 > 79 characters)
visidata/cmdlog.py:35:1: E302 expected 2 blank lines, found 1
visidata/cmdlog.py:39:9: E306 expected 1 blank line before a nested definition, found 0
visidata/cmdlog.py:46:80: E501 line too long (93 > 79 characters)
visidata/cmdlog.py:50:1: E305 expected 2 blank lines after class or function definition, found 1
visidata/cmdlog.py:50:80: E501 line too long (92 > 79 characters)
visidata/cmdlog.py:52:1: E302 expected 2 blank lines, found 1
visidata/cmdlog.py:55:16: F405 'Path' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:58:1: E302 expected 2 blank lines, found 1
visidata/cmdlog.py:63:1: E302 expected 2 blank lines, found 1
visidata/cmdlog.py:68:1: E302 expected 2 blank lines, found 1
visidata/cmdlog.py:72:1: E302 expected 2 blank lines, found 1
visidata/cmdlog.py:72:18: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:75:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:75:80: E501 line too long (112 > 79 characters)
visidata/cmdlog.py:76:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:76:80: E501 line too long (80 > 79 characters)
visidata/cmdlog.py:77:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:79:16: F405 'ColumnAttr' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:96:9: F405 'reload_tsv_sync' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:102:13: F405 'error' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:105:80: E501 line too long (87 > 79 characters)
visidata/cmdlog.py:107:9: F405 'vd' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:113:9: F405 'status' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:124:80: E501 line too long (86 > 79 characters)
visidata/cmdlog.py:126:80: E501 line too long (126 > 79 characters)
visidata/cmdlog.py:138:80: E501 line too long (82 > 79 characters)
visidata/cmdlog.py:149:42: F405 'vd' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:151:17: F405 'status' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:151:49: F405 'vd' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:159:13: F405 'status' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:164:13: F405 'status' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:177:1: E115 expected an indented block (comment)
visidata/cmdlog.py:180:44: F405 'error' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:180:80: E501 line too long (80 > 79 characters)
visidata/cmdlog.py:189:17: F405 'error' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:191:16: F405 'options' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:193:80: E501 line too long (86 > 79 characters)
visidata/cmdlog.py:206:17: F405 'error' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:208:16: F405 'options' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:210:80: E501 line too long (101 > 79 characters)
visidata/cmdlog.py:221:57: F405 'options' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:221:80: E501 line too long (106 > 79 characters)
visidata/cmdlog.py:230:9: F405 'vd' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:236:13: F405 'status' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:244:14: F405 'Progress' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:247:21: F405 'status' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:250:17: F405 'vd' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:258:17: F405 'sync' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:258:80: E501 line too long (81 > 79 characters)
visidata/cmdlog.py:262:9: F405 'status' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:265:6: F405 'async' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:285:13: F405 'options' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:285:59: F405 'options' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:285:80: E501 line too long (82 > 79 characters)
visidata/cmdlog.py:288:1: E305 expected 2 blank lines after class or function definition, found 1
visidata/cmdlog.py:288:1: F405 'vd' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:289:1: F405 'vd' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:291:1: F405 'vd' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:291:25: F405 'vd' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:292:1: F405 'vd' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:292:26: F405 'vd' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:293:1: F405 'vd' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:293:25: F405 'vd' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:294:1: F405 'vd' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:294:26: F405 'vd' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:296:1: F405 'vd' may be undefined, or defined from star imports: visidata
visidata/cmdlog.py:296:80: E501 line too long (116 > 79 characters)
visidata/vdtui.py:34:1: F403 'from builtins import *' used; unable to detect undefined names
visidata/vdtui.py:53:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:56:1: E305 expected 2 blank lines after class or function definition, found 1
visidata/vdtui.py:59:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:62:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:69:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:72:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:85:1: E305 expected 2 blank lines after class or function definition, found 1
visidata/vdtui.py:87:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:93:1: E305 expected 2 blank lines after class or function definition, found 1
visidata/vdtui.py:95:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:112:1: E305 expected 2 blank lines after class or function definition, found 1
visidata/vdtui.py:122:80: E501 line too long (83 > 79 characters)
visidata/vdtui.py:123:80: E501 line too long (95 > 79 characters)
visidata/vdtui.py:124:80: E501 line too long (90 > 79 characters)
visidata/vdtui.py:129:23: E261 at least two spaces before inline comment
visidata/vdtui.py:131:80: E501 line too long (86 > 79 characters)
visidata/vdtui.py:135:80: E501 line too long (80 > 79 characters)
visidata/vdtui.py:140:80: E501 line too long (81 > 79 characters)
visidata/vdtui.py:148:80: E501 line too long (92 > 79 characters)
visidata/vdtui.py:158:80: E501 line too long (96 > 79 characters)
visidata/vdtui.py:162:80: E501 line too long (87 > 79 characters)
visidata/vdtui.py:163:80: E501 line too long (81 > 79 characters)
visidata/vdtui.py:166:6: E225 missing whitespace around operator
visidata/vdtui.py:167:4: E225 missing whitespace around operator
visidata/vdtui.py:174:80: E501 line too long (133 > 79 characters)
visidata/vdtui.py:175:80: E501 line too long (133 > 79 characters)
visidata/vdtui.py:179:80: E501 line too long (114 > 79 characters)
visidata/vdtui.py:180:80: E501 line too long (98 > 79 characters)
visidata/vdtui.py:181:80: E501 line too long (138 > 79 characters)
visidata/vdtui.py:182:80: E501 line too long (164 > 79 characters)
visidata/vdtui.py:190:80: E501 line too long (108 > 79 characters)
visidata/vdtui.py:191:80: E501 line too long (85 > 79 characters)
visidata/vdtui.py:192:80: E501 line too long (105 > 79 characters)
visidata/vdtui.py:194:80: E501 line too long (224 > 79 characters)
visidata/vdtui.py:195:80: E501 line too long (214 > 79 characters)
visidata/vdtui.py:196:80: E501 line too long (189 > 79 characters)
visidata/vdtui.py:197:80: E501 line too long (173 > 79 characters)
visidata/vdtui.py:199:80: E501 line too long (113 > 79 characters)
visidata/vdtui.py:200:80: E501 line too long (115 > 79 characters)
visidata/vdtui.py:201:80: E501 line too long (120 > 79 characters)
visidata/vdtui.py:203:80: E501 line too long (93 > 79 characters)
visidata/vdtui.py:205:80: E501 line too long (89 > 79 characters)
visidata/vdtui.py:206:80: E501 line too long (83 > 79 characters)
visidata/vdtui.py:207:80: E501 line too long (105 > 79 characters)
visidata/vdtui.py:209:80: E501 line too long (120 > 79 characters)
visidata/vdtui.py:211:80: E501 line too long (117 > 79 characters)
visidata/vdtui.py:212:80: E501 line too long (132 > 79 characters)
visidata/vdtui.py:213:80: E501 line too long (137 > 79 characters)
visidata/vdtui.py:214:80: E501 line too long (152 > 79 characters)
visidata/vdtui.py:216:80: E501 line too long (154 > 79 characters)
visidata/vdtui.py:217:80: E501 line too long (161 > 79 characters)
visidata/vdtui.py:220:80: E501 line too long (131 > 79 characters)
visidata/vdtui.py:222:80: E501 line too long (129 > 79 characters)
visidata/vdtui.py:224:80: E501 line too long (85 > 79 characters)
visidata/vdtui.py:225:80: E501 line too long (89 > 79 characters)
visidata/vdtui.py:227:80: E501 line too long (147 > 79 characters)
visidata/vdtui.py:228:80: E501 line too long (147 > 79 characters)
visidata/vdtui.py:229:80: E501 line too long (85 > 79 characters)
visidata/vdtui.py:230:80: E501 line too long (88 > 79 characters)
visidata/vdtui.py:232:80: E501 line too long (158 > 79 characters)
visidata/vdtui.py:233:80: E501 line too long (158 > 79 characters)
visidata/vdtui.py:235:80: E501 line too long (167 > 79 characters)
visidata/vdtui.py:236:80: E501 line too long (172 > 79 characters)
visidata/vdtui.py:237:80: E501 line too long (101 > 79 characters)
visidata/vdtui.py:238:80: E501 line too long (132 > 79 characters)
visidata/vdtui.py:242:80: E501 line too long (91 > 79 characters)
visidata/vdtui.py:244:80: E501 line too long (82 > 79 characters)
visidata/vdtui.py:246:80: E501 line too long (147 > 79 characters)
visidata/vdtui.py:247:80: E501 line too long (155 > 79 characters)
visidata/vdtui.py:253:80: E501 line too long (155 > 79 characters)
visidata/vdtui.py:254:80: E501 line too long (163 > 79 characters)
visidata/vdtui.py:256:80: E501 line too long (165 > 79 characters)
visidata/vdtui.py:257:80: E501 line too long (145 > 79 characters)
visidata/vdtui.py:259:80: E501 line too long (184 > 79 characters)
visidata/vdtui.py:260:80: E501 line too long (157 > 79 characters)
visidata/vdtui.py:261:80: E501 line too long (231 > 79 characters)
visidata/vdtui.py:263:80: E501 line too long (178 > 79 characters)
visidata/vdtui.py:264:80: E501 line too long (175 > 79 characters)
visidata/vdtui.py:266:80: E501 line too long (157 > 79 characters)
visidata/vdtui.py:268:80: E501 line too long (108 > 79 characters)
visidata/vdtui.py:270:80: E501 line too long (95 > 79 characters)
visidata/vdtui.py:272:80: E501 line too long (105 > 79 characters)
visidata/vdtui.py:276:80: E501 line too long (91 > 79 characters)
visidata/vdtui.py:283:80: E501 line too long (114 > 79 characters)
visidata/vdtui.py:285:1: E266 too many leading '#' for block comment
visidata/vdtui.py:288:1: E305 expected 2 blank lines after class or function definition, found 0
visidata/vdtui.py:290:11: E225 missing whitespace around operator
visidata/vdtui.py:291:1: E302 expected 2 blank lines, found 0
visidata/vdtui.py:300:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:301:80: E501 line too long (82 > 79 characters)
visidata/vdtui.py:345:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:349:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:353:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:357:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:363:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:373:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:385:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:388:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:392:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:396:22: E228 missing whitespace around modulo operator
visidata/vdtui.py:399:80: E501 line too long (89 > 79 characters)
visidata/vdtui.py:401:80: E501 line too long (89 > 79 characters)
visidata/vdtui.py:403:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:407:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:412:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:413:80: E501 line too long (89 > 79 characters)
visidata/vdtui.py:418:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:435:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:440:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:455:80: E501 line too long (104 > 79 characters)
visidata/vdtui.py:462:45: E231 missing whitespace after ','
visidata/vdtui.py:462:80: E501 line too long (83 > 79 characters)
visidata/vdtui.py:490:13: E722 do not use bare except'
visidata/vdtui.py:501:80: E501 line too long (109 > 79 characters)
visidata/vdtui.py:509:80: E501 line too long (80 > 79 characters)
visidata/vdtui.py:522:80: E501 line too long (95 > 79 characters)
visidata/vdtui.py:561:60: E261 at least two spaces before inline comment
visidata/vdtui.py:561:80: E501 line too long (92 > 79 characters)
visidata/vdtui.py:572:5: E303 too many blank lines (2)
visidata/vdtui.py:576:80: E501 line too long (80 > 79 characters)
visidata/vdtui.py:585:80: E501 line too long (112 > 79 characters)
visidata/vdtui.py:616:80: E501 line too long (83 > 79 characters)
visidata/vdtui.py:620:80: E501 line too long (80 > 79 characters)
visidata/vdtui.py:644:80: E501 line too long (83 > 79 characters)
visidata/vdtui.py:658:80: E501 line too long (92 > 79 characters)
visidata/vdtui.py:714:80: E501 line too long (80 > 79 characters)
visidata/vdtui.py:717:80: E501 line too long (96 > 79 characters)
visidata/vdtui.py:724:80: E501 line too long (88 > 79 characters)
visidata/vdtui.py:742:80: E501 line too long (112 > 79 characters)
visidata/vdtui.py:752:13: E722 do not use bare except'
visidata/vdtui.py:783:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:784:80: E501 line too long (103 > 79 characters)
visidata/vdtui.py:799:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:805:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:808:19: E261 at least two spaces before inline comment
visidata/vdtui.py:809:37: E231 missing whitespace after ','
visidata/vdtui.py:809:39: E231 missing whitespace after ','
visidata/vdtui.py:809:41: E231 missing whitespace after ','
visidata/vdtui.py:810:37: E231 missing whitespace after ','
visidata/vdtui.py:810:39: E231 missing whitespace after ','
visidata/vdtui.py:810:41: E231 missing whitespace after ','
visidata/vdtui.py:810:80: E501 line too long (101 > 79 characters)
visidata/vdtui.py:811:37: E231 missing whitespace after ','
visidata/vdtui.py:811:39: E231 missing whitespace after ','
visidata/vdtui.py:811:41: E231 missing whitespace after ','
visidata/vdtui.py:811:80: E501 line too long (95 > 79 characters)
visidata/vdtui.py:812:37: E231 missing whitespace after ','
visidata/vdtui.py:812:39: E231 missing whitespace after ','
visidata/vdtui.py:812:41: E231 missing whitespace after ','
visidata/vdtui.py:812:80: E501 line too long (101 > 79 characters)
visidata/vdtui.py:813:37: E231 missing whitespace after ','
visidata/vdtui.py:813:39: E231 missing whitespace after ','
visidata/vdtui.py:813:41: E231 missing whitespace after ','
visidata/vdtui.py:813:80: E501 line too long (95 > 79 characters)
visidata/vdtui.py:814:38: E231 missing whitespace after ','
visidata/vdtui.py:814:40: E231 missing whitespace after ','
visidata/vdtui.py:814:42: E231 missing whitespace after ','
visidata/vdtui.py:815:37: E231 missing whitespace after ','
visidata/vdtui.py:815:39: E231 missing whitespace after ','
visidata/vdtui.py:815:41: E231 missing whitespace after ','
visidata/vdtui.py:815:80: E501 line too long (101 > 79 characters)
visidata/vdtui.py:817:80: E501 line too long (84 > 79 characters)
visidata/vdtui.py:823:80: E501 line too long (88 > 79 characters)
visidata/vdtui.py:828:80: E501 line too long (82 > 79 characters)
visidata/vdtui.py:837:80: E501 line too long (105 > 79 characters)
visidata/vdtui.py:885:80: E501 line too long (97 > 79 characters)
visidata/vdtui.py:888:80: E501 line too long (93 > 79 characters)
visidata/vdtui.py:942:80: E501 line too long (127 > 79 characters)
visidata/vdtui.py:947:80: E501 line too long (87 > 79 characters)
visidata/vdtui.py:948:45: E261 at least two spaces before inline comment
visidata/vdtui.py:948:80: E501 line too long (94 > 79 characters)
visidata/vdtui.py:1002:80: E501 line too long (88 > 79 characters)
visidata/vdtui.py:1005:80: E501 line too long (100 > 79 characters)
visidata/vdtui.py:1009:80: E501 line too long (129 > 79 characters)
visidata/vdtui.py:1029:80: E501 line too long (101 > 79 characters)
visidata/vdtui.py:1051:1: E115 expected an indented block (comment)
visidata/vdtui.py:1135:80: E501 line too long (104 > 79 characters)
visidata/vdtui.py:1136:80: E501 line too long (101 > 79 characters)
visidata/vdtui.py:1154:1: E266 too many leading '#' for block comment
visidata/vdtui.py:1185:80: E501 line too long (114 > 79 characters)
visidata/vdtui.py:1194:80: E501 line too long (94 > 79 characters)
visidata/vdtui.py:1215:1: E266 too many leading '#' for block comment
visidata/vdtui.py:1247:80: E501 line too long (86 > 79 characters)
visidata/vdtui.py:1248:80: E501 line too long (111 > 79 characters)
visidata/vdtui.py:1253:80: E501 line too long (102 > 79 characters)
visidata/vdtui.py:1258:80: E501 line too long (88 > 79 characters)
visidata/vdtui.py:1275:80: E501 line too long (86 > 79 characters)
visidata/vdtui.py:1280:33: E261 at least two spaces before inline comment
visidata/vdtui.py:1290:80: E501 line too long (125 > 79 characters)
visidata/vdtui.py:1291:80: E501 line too long (107 > 79 characters)
visidata/vdtui.py:1332:80: E501 line too long (101 > 79 characters)
visidata/vdtui.py:1335:80: E501 line too long (82 > 79 characters)
visidata/vdtui.py:1338:80: E501 line too long (84 > 79 characters)
visidata/vdtui.py:1342:80: E501 line too long (80 > 79 characters)
visidata/vdtui.py:1343:80: E501 line too long (95 > 79 characters)
visidata/vdtui.py:1359:80: E501 line too long (132 > 79 characters)
visidata/vdtui.py:1360:80: E501 line too long (93 > 79 characters)
visidata/vdtui.py:1378:80: E501 line too long (94 > 79 characters)
visidata/vdtui.py:1385:80: E501 line too long (91 > 79 characters)
visidata/vdtui.py:1387:80: E501 line too long (81 > 79 characters)
visidata/vdtui.py:1391:80: E501 line too long (117 > 79 characters)
visidata/vdtui.py:1438:80: E501 line too long (100 > 79 characters)
visidata/vdtui.py:1440:80: E501 line too long (93 > 79 characters)
visidata/vdtui.py:1441:80: E501 line too long (93 > 79 characters)
visidata/vdtui.py:1445:80: E501 line too long (90 > 79 characters)
visidata/vdtui.py:1450:80: E501 line too long (88 > 79 characters)
visidata/vdtui.py:1451:80: E501 line too long (90 > 79 characters)
visidata/vdtui.py:1454:80: E501 line too long (106 > 79 characters)
visidata/vdtui.py:1458:24: E111 indentation is not a multiple of four
visidata/vdtui.py:1463:80: E501 line too long (115 > 79 characters)
visidata/vdtui.py:1466:5: E303 too many blank lines (2)
visidata/vdtui.py:1467:80: E501 line too long (92 > 79 characters)
visidata/vdtui.py:1483:80: E501 line too long (124 > 79 characters)
visidata/vdtui.py:1489:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:1496:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:1499:80: E501 line too long (81 > 79 characters)
visidata/vdtui.py:1500:80: E501 line too long (101 > 79 characters)
visidata/vdtui.py:1509:80: E501 line too long (96 > 79 characters)
visidata/vdtui.py:1533:80: E501 line too long (89 > 79 characters)
visidata/vdtui.py:1541:20: E701 multiple statements on one line (colon)
visidata/vdtui.py:1541:21: E272 multiple spaces before keyword
visidata/vdtui.py:1542:24: E701 multiple statements on one line (colon)
visidata/vdtui.py:1542:25: E272 multiple spaces before keyword
visidata/vdtui.py:1543:27: E701 multiple statements on one line (colon)
visidata/vdtui.py:1550:80: E501 line too long (99 > 79 characters)
visidata/vdtui.py:1560:21: E701 multiple statements on one line (colon)
visidata/vdtui.py:1560:22: E272 multiple spaces before keyword
visidata/vdtui.py:1561:25: E701 multiple statements on one line (colon)
visidata/vdtui.py:1561:26: E272 multiple spaces before keyword
visidata/vdtui.py:1562:13: E701 multiple statements on one line (colon)
visidata/vdtui.py:1562:14: E272 multiple spaces before keyword
visidata/vdtui.py:1570:80: E501 line too long (94 > 79 characters)
visidata/vdtui.py:1580:13: E722 do not use bare except'
visidata/vdtui.py:1592:80: E501 line too long (97 > 79 characters)
visidata/vdtui.py:1626:33: E128 continuation line under-indented for visual indent
visidata/vdtui.py:1627:33: E128 continuation line under-indented for visual indent
visidata/vdtui.py:1628:33: E128 continuation line under-indented for visual indent
visidata/vdtui.py:1632:33: E128 continuation line under-indented for visual indent
visidata/vdtui.py:1633:33: E128 continuation line under-indented for visual indent
visidata/vdtui.py:1634:33: E128 continuation line under-indented for visual indent
visidata/vdtui.py:1689:80: E501 line too long (86 > 79 characters)
visidata/vdtui.py:1705:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:1710:13: E128 continuation line under-indented for visual indent
visidata/vdtui.py:1710:28: E231 missing whitespace after ','
visidata/vdtui.py:1710:46: E231 missing whitespace after ','
visidata/vdtui.py:1710:48: E231 missing whitespace after ','
visidata/vdtui.py:1711:13: E128 continuation line under-indented for visual indent
visidata/vdtui.py:1711:28: E231 missing whitespace after ','
visidata/vdtui.py:1711:30: E231 missing whitespace after ','
visidata/vdtui.py:1711:32: E231 missing whitespace after ','
visidata/vdtui.py:1711:34: E231 missing whitespace after ','
visidata/vdtui.py:1711:52: E231 missing whitespace after ','
visidata/vdtui.py:1711:54: E231 missing whitespace after ','
visidata/vdtui.py:1712:13: E128 continuation line under-indented for visual indent
visidata/vdtui.py:1714:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:1719:13: E128 continuation line under-indented for visual indent
visidata/vdtui.py:1719:28: E231 missing whitespace after ','
visidata/vdtui.py:1720:13: E128 continuation line under-indented for visual indent
visidata/vdtui.py:1720:28: E231 missing whitespace after ','
visidata/vdtui.py:1720:30: E231 missing whitespace after ','
visidata/vdtui.py:1720:32: E231 missing whitespace after ','
visidata/vdtui.py:1720:34: E231 missing whitespace after ','
visidata/vdtui.py:1720:40: E231 missing whitespace after ','
visidata/vdtui.py:1720:55: E231 missing whitespace after ','
visidata/vdtui.py:1720:57: E231 missing whitespace after ','
visidata/vdtui.py:1721:13: E128 continuation line under-indented for visual indent
visidata/vdtui.py:1723:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:1726:80: E501 line too long (81 > 79 characters)
visidata/vdtui.py:1729:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:1736:80: E501 line too long (88 > 79 characters)
visidata/vdtui.py:1748:12: E111 indentation is not a multiple of four
visidata/vdtui.py:1764:80: E501 line too long (139 > 79 characters)
visidata/vdtui.py:1775:80: E501 line too long (88 > 79 characters)
visidata/vdtui.py:1821:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:1824:80: E501 line too long (86 > 79 characters)
visidata/vdtui.py:1830:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:1836:80: E501 line too long (179 > 79 characters)
visidata/vdtui.py:1840:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:1845:1: E305 expected 2 blank lines after class or function definition, found 1
visidata/vdtui.py:1845:1: E402 module level import not at top of file
visidata/vdtui.py:1846:1: E302 expected 2 blank lines, found 0
visidata/vdtui.py:1855:80: E501 line too long (103 > 79 characters)
visidata/vdtui.py:1863:30: E261 at least two spaces before inline comment
visidata/vdtui.py:1869:80: E501 line too long (87 > 79 characters)
visidata/vdtui.py:1876:1: E266 too many leading '#' for block comment
visidata/vdtui.py:1880:80: E501 line too long (175 > 79 characters)
visidata/vdtui.py:1889:80: E501 line too long (101 > 79 characters)
visidata/vdtui.py:1895:22: F405 'readlines' may be undefined, or defined from star imports: builtins
visidata/vdtui.py:1900:30: F405 'readlines' may be undefined, or defined from star imports: builtins
visidata/vdtui.py:1910:80: E501 line too long (89 > 79 characters)
visidata/vdtui.py:1915:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:1919:9: E301 expected 1 blank line, found 0
visidata/vdtui.py:1923:1: E122 continuation line missing indentation or outdented
visidata/vdtui.py:1933:44: E231 missing whitespace after ','
visidata/vdtui.py:1933:46: E231 missing whitespace after ','
visidata/vdtui.py:1933:48: E231 missing whitespace after ','
visidata/vdtui.py:1933:80: E501 line too long (112 > 79 characters)
visidata/vdtui.py:1934:44: E231 missing whitespace after ','
visidata/vdtui.py:1934:46: E231 missing whitespace after ','
visidata/vdtui.py:1934:48: E231 missing whitespace after ','
visidata/vdtui.py:1934:80: E501 line too long (131 > 79 characters)
visidata/vdtui.py:1944:80: E501 line too long (100 > 79 characters)
visidata/vdtui.py:1977:5: E124 closing bracket does not match visual indentation
visidata/vdtui.py:1979:5: E301 expected 1 blank line, found 0
visidata/vdtui.py:1991:69: E231 missing whitespace after ','
visidata/vdtui.py:1991:71: E231 missing whitespace after ','
visidata/vdtui.py:1991:73: E231 missing whitespace after ','
visidata/vdtui.py:1991:80: E501 line too long (103 > 79 characters)
visidata/vdtui.py:2000:1: E305 expected 2 blank lines after class or function definition, found 1
visidata/vdtui.py:2003:80: E501 line too long (126 > 79 characters)
visidata/vdtui.py:2005:1: E266 too many leading '#' for block comment
visidata/vdtui.py:2007:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:2025:1: E115 expected an indented block (comment)
visidata/vdtui.py:2025:80: E501 line too long (85 > 79 characters)
visidata/vdtui.py:2026:1: E115 expected an indented block (comment)
visidata/vdtui.py:2030:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:2040:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:2049:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:2049:80: E501 line too long (168 > 79 characters)
visidata/vdtui.py:2049:131: E231 missing whitespace after ','
visidata/vdtui.py:2069:80: E501 line too long (85 > 79 characters)
visidata/vdtui.py:2113:80: E501 line too long (81 > 79 characters)
visidata/vdtui.py:2126:23: E228 missing whitespace around modulo operator
visidata/vdtui.py:2126:25: E225 missing whitespace around operator
visidata/vdtui.py:2127:80: E501 line too long (83 > 79 characters)
visidata/vdtui.py:2132:20: E701 multiple statements on one line (colon)
visidata/vdtui.py:2132:21: E272 multiple spaces before keyword
visidata/vdtui.py:2133:28: E701 multiple statements on one line (colon)
visidata/vdtui.py:2133:80: E501 line too long (80 > 79 characters)
visidata/vdtui.py:2134:44: E701 multiple statements on one line (colon)
visidata/vdtui.py:2135:44: E701 multiple statements on one line (colon)
visidata/vdtui.py:2136:37: E701 multiple statements on one line (colon)
visidata/vdtui.py:2136:38: E272 multiple spaces before keyword
visidata/vdtui.py:2137:42: E701 multiple statements on one line (colon)
visidata/vdtui.py:2138:43: E701 multiple statements on one line (colon)
visidata/vdtui.py:2139:45: E701 multiple statements on one line (colon)
visidata/vdtui.py:2140:49: E701 multiple statements on one line (colon)
visidata/vdtui.py:2140:58: E702 multiple statements on one line (semicolon)
visidata/vdtui.py:2141:24: E701 multiple statements on one line (colon)
visidata/vdtui.py:2141:66: E702 multiple statements on one line (semicolon)
visidata/vdtui.py:2141:80: E501 line too long (103 > 79 characters)
visidata/vdtui.py:2142:30: E701 multiple statements on one line (colon)
visidata/vdtui.py:2142:66: E702 multiple statements on one line (semicolon)
visidata/vdtui.py:2142:80: E501 line too long (103 > 79 characters)
visidata/vdtui.py:2143:25: E701 multiple statements on one line (colon)
visidata/vdtui.py:2143:26: E272 multiple spaces before keyword
visidata/vdtui.py:2144:24: E701 multiple statements on one line (colon)
visidata/vdtui.py:2144:80: E501 line too long (84 > 79 characters)
visidata/vdtui.py:2145:24: E701 multiple statements on one line (colon)
visidata/vdtui.py:2145:80: E501 line too long (90 > 79 characters)
visidata/vdtui.py:2146:24: E701 multiple statements on one line (colon)
visidata/vdtui.py:2146:80: E501 line too long (103 > 79 characters)
visidata/vdtui.py:2147:24: E701 multiple statements on one line (colon)
visidata/vdtui.py:2147:61: E702 multiple statements on one line (semicolon)
visidata/vdtui.py:2147:80: E501 line too long (89 > 79 characters)
visidata/vdtui.py:2148:24: E701 multiple statements on one line (colon)
visidata/vdtui.py:2148:80: E501 line too long (113 > 79 characters)
visidata/vdtui.py:2148:85: E702 multiple statements on one line (semicolon)
visidata/vdtui.py:2149:24: E701 multiple statements on one line (colon)
visidata/vdtui.py:2150:40: E701 multiple statements on one line (colon)
visidata/vdtui.py:2150:65: E702 multiple statements on one line (semicolon)
visidata/vdtui.py:2150:80: E501 line too long (102 > 79 characters)
visidata/vdtui.py:2151:42: E701 multiple statements on one line (colon)
visidata/vdtui.py:2151:65: E702 multiple statements on one line (semicolon)
visidata/vdtui.py:2151:80: E501 line too long (102 > 79 characters)
visidata/vdtui.py:2152:35: E701 multiple statements on one line (colon)
visidata/vdtui.py:2152:36: E272 multiple spaces before keyword
visidata/vdtui.py:2163:17: E701 multiple statements on one line (colon)
visidata/vdtui.py:2164:22: E701 multiple statements on one line (colon)
visidata/vdtui.py:2212:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:2219:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:2222:1: E266 too many leading '#' for block comment
visidata/vdtui.py:2224:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:2242:80: E501 line too long (114 > 79 characters)
visidata/vdtui.py:2244:80: E501 line too long (109 > 79 characters)
visidata/vdtui.py:2267:80: E501 line too long (101 > 79 characters)
visidata/vdtui.py:2272:9: E722 do not use bare except'
visidata/vdtui.py:2294:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:2336:25: E231 missing whitespace after ','
visidata/vdtui.py:2336:27: E231 missing whitespace after ','
visidata/vdtui.py:2349:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:2369:80: E501 line too long (97 > 79 characters)
visidata/vdtui.py:2378:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:2389:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:2390:80: E501 line too long (96 > 79 characters)
visidata/vdtui.py:2393:1: E302 expected 2 blank lines, found 1
visidata/vdtui.py:2396:1: E305 expected 2 blank lines after class or function definition, found 1
visidata/metasheets.py:1:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/metasheets.py:3:1: F405 'OptionsSheet' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:4:9: F405 'Colorizer' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:4:38: E231 missing whitespace after ','
visidata/metasheets.py:4:40: E231 missing whitespace after ','
visidata/metasheets.py:4:42: E231 missing whitespace after ','
visidata/metasheets.py:4:80: E501 line too long (121 > 79 characters)
visidata/metasheets.py:7:1: E302 expected 2 blank lines, found 1
visidata/metasheets.py:9:12: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:10:34: E231 missing whitespace after ','
visidata/metasheets.py:10:44: E231 missing whitespace after ','
visidata/metasheets.py:10:80: E501 line too long (96 > 79 characters)
visidata/metasheets.py:12:1: E302 expected 2 blank lines, found 1
visidata/metasheets.py:16:80: E501 line too long (88 > 79 characters)
visidata/metasheets.py:18:1: E305 expected 2 blank lines after class or function definition, found 1
visidata/metasheets.py:20:1: F405 'SheetsSheet' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:21:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:21:80: E501 line too long (194 > 79 characters)
visidata/metasheets.py:24:1: F405 'SheetsSheet' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:24:31: F405 'ColumnAttr' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:27:1: F405 'ColumnsSheet' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:28:80: E501 line too long (83 > 79 characters)
visidata/metasheets.py:29:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:29:80: E501 line too long (139 > 79 characters)
visidata/metasheets.py:30:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:30:80: E501 line too long (162 > 79 characters)
visidata/metasheets.py:31:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:31:80: E501 line too long (129 > 79 characters)
visidata/metasheets.py:32:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:32:80: E501 line too long (160 > 79 characters)
visidata/metasheets.py:33:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:33:80: E501 line too long (132 > 79 characters)
visidata/metasheets.py:34:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:34:80: E501 line too long (128 > 79 characters)
visidata/metasheets.py:35:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:35:80: E501 line too long (130 > 79 characters)
visidata/metasheets.py:36:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:36:80: E501 line too long (138 > 79 characters)
visidata/metasheets.py:37:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:37:80: E501 line too long (128 > 79 characters)
visidata/metasheets.py:40:1: F405 'ColumnsSheet' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:41:9: F405 'ColumnAttr' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:44:1: E266 too many leading '#' for block comment
visidata/metasheets.py:45:1: E302 expected 2 blank lines, found 1
visidata/metasheets.py:45:17: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:46:80: E501 line too long (84 > 79 characters)
visidata/metasheets.py:48:6: F405 'async' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:53:80: E501 line too long (83 > 79 characters)
visidata/metasheets.py:56:28: F405 'SubrowColumn' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:56:41: F405 'ColumnItem' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:62:14: F405 'Progress' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:62:80: E501 line too long (80 > 79 characters)
visidata/metasheets.py:71:80: E501 line too long (98 > 79 characters)
visidata/metasheets.py:73:36: F405 'SubrowColumn' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:78:80: E501 line too long (112 > 79 characters)
visidata/metasheets.py:82:14: F405 'Progress' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:89:80: E501 line too long (91 > 79 characters)
visidata/metasheets.py:97:80: E501 line too long (93 > 79 characters)
visidata/metasheets.py:101:1: E302 expected 2 blank lines, found 1
visidata/metasheets.py:101:20: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:118:13: F405 'error' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:121:1: E302 expected 2 blank lines, found 1
visidata/metasheets.py:121:19: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:137:43: F405 'ColumnExpr' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:138:39: F405 'copy' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:140:80: E501 line too long (94 > 79 characters)
visidata/metasheets.py:144:21: F405 'status' may be undefined, or defined from star imports: visidata
visidata/metasheets.py:144:80: E501 line too long (95 > 79 characters)
visidata/metasheets.py:148:80: E501 line too long (86 > 79 characters)
visidata/zscroll.py:1:1: F403 'from .vdtui import *' used; unable to detect undefined names
visidata/zscroll.py:4:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/zscroll.py:5:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/zscroll.py:6:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/zscroll.py:6:80: E501 line too long (96 > 79 characters)
visidata/zscroll.py:7:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/zscroll.py:7:80: E501 line too long (119 > 79 characters)
visidata/zscroll.py:8:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/zscroll.py:8:80: E501 line too long (114 > 79 characters)
visidata/zscroll.py:9:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/zscroll.py:9:80: E501 line too long (142 > 79 characters)
visidata/zscroll.py:10:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/zscroll.py:11:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/zscroll.py:11:80: E501 line too long (94 > 79 characters)
visidata/zscroll.py:12:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/zscroll.py:12:80: E501 line too long (96 > 79 characters)
visidata/zscroll.py:13:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/zscroll.py:13:80: E501 line too long (107 > 79 characters)
visidata/zscroll.py:14:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/zscroll.py:14:80: E501 line too long (133 > 79 characters)
visidata/zscroll.py:16:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/zscroll.py:16:80: E501 line too long (148 > 79 characters)
visidata/zscroll.py:17:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/zscroll.py:17:80: E501 line too long (167 > 79 characters)
visidata/zscroll.py:19:1: E265 block comment should start with '# '
visidata/async.py:6:1: F403 'from .vdtui import *' used; unable to detect undefined names
visidata/async.py:8:23: E261 at least two spaces before inline comment
visidata/async.py:8:80: E501 line too long (85 > 79 characters)
visidata/async.py:10:1: F405 'option' may be undefined, or defined from star imports: .vdtui
visidata/async.py:11:1: F405 'option' may be undefined, or defined from star imports: .vdtui
visidata/async.py:11:80: E501 line too long (85 > 79 characters)
visidata/async.py:12:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/async.py:12:80: E501 line too long (185 > 79 characters)
visidata/async.py:13:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/async.py:14:1: F405 'globalCommand' may be undefined, or defined from star imports: .vdtui
visidata/async.py:14:80: E501 line too long (80 > 79 characters)
visidata/async.py:16:1: E302 expected 2 blank lines, found 1
visidata/async.py:16:20: F405 'TextSheet' may be undefined, or defined from star imports: .vdtui
visidata/async.py:17:16: F405 'TextSheet' may be undefined, or defined from star imports: .vdtui
visidata/async.py:18:9: F405 'Command' may be undefined, or defined from star imports: .vdtui
visidata/async.py:18:80: E501 line too long (109 > 79 characters)
visidata/async.py:20:5: E301 expected 1 blank line, found 0
visidata/async.py:24:1: E305 expected 2 blank lines after class or function definition, found 1
visidata/async.py:24:1: F405 'vd' may be undefined, or defined from star imports: .vdtui
visidata/async.py:25:1: E302 expected 2 blank lines, found 0
visidata/async.py:42:2: F405 'functools' may be undefined, or defined from star imports: .vdtui
visidata/async.py:42:18: F405 'vd' may be undefined, or defined from star imports: .vdtui
visidata/async.py:46:8: F405 'options' may be undefined, or defined from star imports: .vdtui
visidata/async.py:57:9: F405 'vd' may be undefined, or defined from star imports: .vdtui
visidata/async.py:61:1: E302 expected 2 blank lines, found 1
visidata/async.py:62:9: F405 'io' may be undefined, or defined from star imports: .vdtui
visidata/async.py:69:1: E302 expected 2 blank lines, found 1
visidata/async.py:81:80: E501 line too long (102 > 79 characters)
visidata/async.py:82:9: F405 'status' may be undefined, or defined from star imports: .vdtui
visidata/async.py:84:9: F405 'status' may be undefined, or defined from star imports: .vdtui
visidata/async.py:88:18: F405 'Sheet' may be undefined, or defined from star imports: .vdtui
visidata/async.py:90:9: F405 'Command' may be undefined, or defined from star imports: .vdtui
visidata/async.py:90:80: E501 line too long (91 > 79 characters)
visidata/async.py:91:9: F405 'Command' may be undefined, or defined from star imports: .vdtui
visidata/async.py:91:17: F405 'ENTER' may be undefined, or defined from star imports: .vdtui
visidata/async.py:91:80: E501 line too long (132 > 79 characters)
visidata/async.py:94:9: F405 'ColumnAttr' may be undefined, or defined from star imports: .vdtui
visidata/async.py:95:9: F405 'Column' may be undefined, or defined from star imports: .vdtui
visidata/async.py:96:9: F405 'Column' may be undefined, or defined from star imports: .vdtui
visidata/async.py:98:5: E301 expected 1 blank line, found 0
visidata/async.py:99:21: F405 'vd' may be undefined, or defined from star imports: .vdtui
visidata/async.py:101:1: E302 expected 2 blank lines, found 1
visidata/async.py:102:26: F405 'time' may be undefined, or defined from star imports: .vdtui
visidata/async.py:104:1: E302 expected 2 blank lines, found 1
visidata/async.py:105:15: F405 'options' may be undefined, or defined from star imports: .vdtui
visidata/async.py:106:20: F405 'vd' may be undefined, or defined from star imports: .vdtui
visidata/async.py:107:42: F405 'os' may be undefined, or defined from star imports: .vdtui
visidata/async.py:107:80: E501 line too long (101 > 79 characters)
visidata/async.py:111:13: F405 'status' may be undefined, or defined from star imports: .vdtui
visidata/async.py:111:80: E501 line too long (84 > 79 characters)
visidata/async.py:112:22: F405 'vd' may be undefined, or defined from star imports: .vdtui
visidata/async.py:114:40: F405 'EscapeException' may be undefined, or defined from star imports: .vdtui
visidata/async.py:119:1: E305 expected 2 blank lines after class or function definition, found 1
visidata/async.py:119:1: F405 'vd' may be undefined, or defined from star imports: .vdtui
visidata/async.py:120:1: F405 'vd' may be undefined, or defined from star imports: .vdtui
visidata/async.py:121:1: F405 'vd' may be undefined, or defined from star imports: .vdtui
visidata/async.py:122:1: W391 blank line at end of file
visidata/describe.py:3:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/describe.py:5:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/describe.py:5:80: E501 line too long (98 > 79 characters)
visidata/describe.py:7:1: E302 expected 2 blank lines, found 1
visidata/describe.py:8:28: E231 missing whitespace after ','
visidata/describe.py:8:34: E231 missing whitespace after ','
visidata/describe.py:8:35: F405 'currency' may be undefined, or defined from star imports: visidata
visidata/describe.py:8:43: E231 missing whitespace after ','
visidata/describe.py:8:44: F405 'date' may be undefined, or defined from star imports: visidata
visidata/describe.py:10:1: E302 expected 2 blank lines, found 1
visidata/describe.py:13:1: E302 expected 2 blank lines, found 1
visidata/describe.py:14:12: F405 'isNullFunc' may be undefined, or defined from star imports: visidata
visidata/describe.py:17:20: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/describe.py:24:1: E302 expected 2 blank lines, found 1
visidata/describe.py:27:1: E302 expected 2 blank lines, found 1
visidata/describe.py:27:21: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/describe.py:29:13: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/describe.py:30:66: E231 missing whitespace after ','
visidata/describe.py:30:80: E501 line too long (119 > 79 characters)
visidata/describe.py:31:65: E231 missing whitespace after ','
visidata/describe.py:31:80: E501 line too long (126 > 79 characters)
visidata/describe.py:32:36: E231 missing whitespace after ','
visidata/describe.py:32:66: E231 missing whitespace after ','
visidata/describe.py:32:80: E501 line too long (85 > 79 characters)
visidata/describe.py:33:41: F405 'anytype' may be undefined, or defined from star imports: visidata
visidata/describe.py:33:69: E231 missing whitespace after ','
visidata/describe.py:33:80: E501 line too long (100 > 79 characters)
visidata/describe.py:34:41: F405 'anytype' may be undefined, or defined from star imports: visidata
visidata/describe.py:34:69: E231 missing whitespace after ','
visidata/describe.py:34:80: E501 line too long (114 > 79 characters)
visidata/describe.py:35:41: F405 'anytype' may be undefined, or defined from star imports: visidata
visidata/describe.py:35:69: E231 missing whitespace after ','
visidata/describe.py:35:80: E501 line too long (128 > 79 characters)
visidata/describe.py:36:67: E231 missing whitespace after ','
visidata/describe.py:36:80: E501 line too long (124 > 79 characters)
visidata/describe.py:37:41: F405 'anytype' may be undefined, or defined from star imports: visidata
visidata/describe.py:37:69: E231 missing whitespace after ','
visidata/describe.py:37:80: E501 line too long (114 > 79 characters)
visidata/describe.py:38:67: E231 missing whitespace after ','
visidata/describe.py:38:80: E501 line too long (125 > 79 characters)
visidata/describe.py:41:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/describe.py:41:80: E501 line too long (124 > 79 characters)
visidata/describe.py:42:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/describe.py:42:80: E501 line too long (128 > 79 characters)
visidata/describe.py:43:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/describe.py:43:21: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/describe.py:43:80: E501 line too long (196 > 79 characters)
visidata/describe.py:44:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/describe.py:44:17: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/describe.py:44:80: E501 line too long (144 > 79 characters)
visidata/describe.py:47:6: F405 'async' may be undefined, or defined from star imports: visidata
visidata/clipboard.py:2:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/clipboard.py:7:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/clipboard.py:7:80: E501 line too long (105 > 79 characters)
visidata/clipboard.py:8:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/clipboard.py:8:80: E501 line too long (134 > 79 characters)
visidata/clipboard.py:9:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/clipboard.py:9:80: E501 line too long (148 > 79 characters)
visidata/clipboard.py:11:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/clipboard.py:11:80: E501 line too long (165 > 79 characters)
visidata/clipboard.py:12:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/clipboard.py:12:80: E501 line too long (131 > 79 characters)
visidata/clipboard.py:14:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/clipboard.py:14:80: E501 line too long (82 > 79 characters)
visidata/clipboard.py:15:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/clipboard.py:15:80: E501 line too long (155 > 79 characters)
visidata/clipboard.py:16:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/clipboard.py:16:80: E501 line too long (140 > 79 characters)
visidata/clipboard.py:17:1: W391 blank line at end of file
visidata/pivot.py:1:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/pivot.py:3:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/pivot.py:3:80: E501 line too long (106 > 79 characters)
visidata/pivot.py:6:1: E302 expected 2 blank lines, found 1
visidata/pivot.py:6:18: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/pivot.py:9:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/pivot.py:9:21: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/pivot.py:9:80: E501 line too long (143 > 79 characters)
visidata/pivot.py:10:23: E127 continuation line over-indented for visual indent
visidata/pivot.py:11:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/pivot.py:11:17: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/pivot.py:11:80: E501 line too long (133 > 79 characters)
visidata/pivot.py:12:23: E127 continuation line over-indented for visual indent
visidata/pivot.py:14:5: E301 expected 1 blank line, found 0
visidata/pivot.py:15:80: E501 line too long (97 > 79 characters)
visidata/pivot.py:21:26: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/pivot.py:21:80: E501 line too long (87 > 79 characters)
visidata/pivot.py:26:5: E303 too many blank lines (2)
visidata/pivot.py:31:6: F405 'async' may be undefined, or defined from star imports: visidata
visidata/pivot.py:33:24: F405 'copy' may be undefined, or defined from star imports: visidata
visidata/pivot.py:35:80: E501 line too long (112 > 79 characters)
visidata/pivot.py:38:28: F405 'aggregators' may be undefined, or defined from star imports: visidata
visidata/pivot.py:44:25: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/pivot.py:45:33: E127 continuation line over-indented for visual indent
visidata/pivot.py:46:33: E127 continuation line over-indented for visual indent
visidata/pivot.py:46:48: E231 missing whitespace after ','
visidata/pivot.py:46:80: E501 line too long (106 > 79 characters)
visidata/pivot.py:50:80: E501 line too long (108 > 79 characters)
visidata/pivot.py:53:29: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/pivot.py:54:33: E128 continuation line under-indented for visual indent
visidata/pivot.py:55:33: E128 continuation line under-indented for visual indent
visidata/pivot.py:55:48: E231 missing whitespace after ','
visidata/pivot.py:55:62: E231 missing whitespace after ','
visidata/pivot.py:55:80: E501 line too long (121 > 79 characters)
visidata/pivot.py:59:17: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/pivot.py:60:25: E127 continuation line over-indented for visual indent
visidata/pivot.py:61:25: E127 continuation line over-indented for visual indent
visidata/pivot.py:65:5: E303 too many blank lines (2)
visidata/pivot.py:65:6: F405 'async' may be undefined, or defined from star imports: visidata
visidata/pivot.py:70:80: E501 line too long (91 > 79 characters)
visidata/freqtbl.py:3:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/freqtbl.py:4:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:4:80: E501 line too long (113 > 79 characters)
visidata/freqtbl.py:5:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:5:80: E501 line too long (134 > 79 characters)
visidata/freqtbl.py:6:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:6:80: E501 line too long (145 > 79 characters)
visidata/freqtbl.py:8:1: F405 'theme' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:9:1: F405 'option' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:10:1: E265 block comment should start with '# '
visidata/freqtbl.py:11:1: E265 block comment should start with '# '
visidata/freqtbl.py:11:80: E501 line too long (100 > 79 characters)
visidata/freqtbl.py:13:1: F405 'ColumnsSheet' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:14:5: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:14:13: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:14:80: E501 line too long (134 > 79 characters)
visidata/freqtbl.py:17:1: E302 expected 2 blank lines, found 1
visidata/freqtbl.py:20:12: F405 'EscapeException' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:30:1: E302 expected 2 blank lines, found 1
visidata/freqtbl.py:30:22: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:34:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:34:80: E501 line too long (99 > 79 characters)
visidata/freqtbl.py:35:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:35:80: E501 line too long (99 > 79 characters)
visidata/freqtbl.py:36:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:36:80: E501 line too long (103 > 79 characters)
visidata/freqtbl.py:38:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:38:17: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:38:80: E501 line too long (181 > 79 characters)
visidata/freqtbl.py:39:1: E122 continuation line missing indentation or outdented
visidata/freqtbl.py:39:80: E501 line too long (145 > 79 characters)
visidata/freqtbl.py:43:80: E501 line too long (86 > 79 characters)
visidata/freqtbl.py:51:13: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:51:77: E231 missing whitespace after ','
visidata/freqtbl.py:51:80: E501 line too long (129 > 79 characters)
visidata/freqtbl.py:55:13: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:56:13: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:56:80: E501 line too long (92 > 79 characters)
visidata/freqtbl.py:57:13: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:57:58: E231 missing whitespace after ','
visidata/freqtbl.py:57:67: F405 'options' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:57:80: E501 line too long (147 > 79 characters)
visidata/freqtbl.py:57:91: F405 'options' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:60:27: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:62:49: E231 missing whitespace after ','
visidata/freqtbl.py:62:53: E231 missing whitespace after ','
visidata/freqtbl.py:62:80: E501 line too long (84 > 79 characters)
visidata/freqtbl.py:63:30: E127 continuation line over-indented for visual indent
visidata/freqtbl.py:64:33: E127 continuation line over-indented for visual indent
visidata/freqtbl.py:65:26: E124 closing bracket does not match visual indentation
visidata/freqtbl.py:73:5: E303 too many blank lines (2)
visidata/freqtbl.py:74:80: E501 line too long (90 > 79 characters)
visidata/freqtbl.py:75:80: E501 line too long (81 > 79 characters)
visidata/freqtbl.py:82:17: F405 'options' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:101:12: F405 'options' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:144:80: E501 line too long (83 > 79 characters)
visidata/freqtbl.py:158:80: E501 line too long (84 > 79 characters)
visidata/freqtbl.py:161:5: E303 too many blank lines (2)
visidata/freqtbl.py:161:6: F405 'async' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:166:80: E501 line too long (88 > 79 characters)
visidata/freqtbl.py:173:31: F405 'collections' may be undefined, or defined from star imports: visidata
visidata/freqtbl.py:175:1: W391 blank line at end of file
visidata/aggregators.py:2:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/aggregators.py:3:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/aggregators.py:3:80: E501 line too long (112 > 79 characters)
visidata/aggregators.py:4:1: F405 'globalCommand' may be undefined, or defined from star imports: visidata
visidata/aggregators.py:4:80: E501 line too long (166 > 79 characters)
visidata/aggregators.py:8:1: E302 expected 2 blank lines, found 1
visidata/aggregators.py:16:1: E302 expected 2 blank lines, found 1
visidata/aggregators.py:18:14: E225 missing whitespace around operator
visidata/aggregators.py:22:1: E302 expected 2 blank lines, found 1
visidata/aggregators.py:36:1: E302 expected 2 blank lines, found 1
visidata/aggregators.py:40:1: E305 expected 2 blank lines after class or function definition, found 1
visidata/aggregators.py:40:26: F405 'anytype' may be undefined, or defined from star imports: visidata
visidata/aggregators.py:40:80: E501 line too long (103 > 79 characters)
visidata/aggregators.py:42:1: F405 'ColumnsSheet' may be undefined, or defined from star imports: visidata
visidata/aggregators.py:43:5: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/aggregators.py:43:80: E501 line too long (146 > 79 characters)
visidata/aggregators.py:45:1: F405 'ColumnsSheet' may be undefined, or defined from star imports: visidata
visidata/aggregators.py:46:9: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/aggregators.py:47:80: E501 line too long (92 > 79 characters)
visidata/aggregators.py:48:31: E231 missing whitespace after ','
visidata/aggregators.py:48:33: E231 missing whitespace after ','
visidata/aggregators.py:48:35: E231 missing whitespace after ','
visidata/aggregators.py:48:80: E501 line too long (113 > 79 characters)
visidata/aggregators.py:51:1: E302 expected 2 blank lines, found 1
visidata/aggregators.py:58:1: E305 expected 2 blank lines after class or function definition, found 1
visidata/aggregators.py:58:1: F405 'addGlobals' may be undefined, or defined from star imports: visidata
visidata/man/parse_options.py:6:1: F401 'vdtui' imported but unused
visidata/man/parse_options.py:27:80: E501 line too long (116 > 79 characters)
visidata/man/parse_options.py:30:80: E501 line too long (103 > 79 characters)
visidata/man/parse_options.py:36:72: E231 missing whitespace after ','
visidata/man/parse_options.py:36:80: E501 line too long (141 > 79 characters)
visidata/man/parse_options.py:36:98: E231 missing whitespace after ','
visidata/man/parse_options.py:36:106: E251 unexpected spaces around keyword / parameter equals
visidata/man/parse_options.py:36:108: E251 unexpected spaces around keyword / parameter equals
visidata/man/parse_options.py:36:134: E251 unexpected spaces around keyword / parameter equals
visidata/man/parse_options.py:36:136: E251 unexpected spaces around keyword / parameter equals
visidata/man/parse_options.py:39:28: E225 missing whitespace around operator
visidata/man/parse_options.py:40:25: E225 missing whitespace around operator
visidata/man/parse_options.py:43:49: E128 continuation line under-indented for visual indent
visidata/man/parse_options.py:43:56: E251 unexpected spaces around keyword / parameter equals
visidata/man/parse_options.py:43:58: E251 unexpected spaces around keyword / parameter equals
visidata/man/parse_options.py:44:49: E128 continuation line under-indented for visual indent
visidata/man/parse_options.py:44:80: E501 line too long (83 > 79 characters)
visidata/man/parse_options.py:45:50: E128 continuation line under-indented for visual indent
visidata/man/parse_options.py:46:50: E128 continuation line under-indented for visual indent
visidata/loaders/xlsx.py:2:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/loaders/xlsx.py:4:1: E302 expected 2 blank lines, found 1
visidata/loaders/xlsx.py:4:17: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:7:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:7:17: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:7:80: E501 line too long (97 > 79 characters)
visidata/loaders/xlsx.py:9:5: E301 expected 1 blank line, found 0
visidata/loaders/xlsx.py:13:6: F405 'async' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:16:25: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:17:80: E501 line too long (101 > 79 characters)
visidata/loaders/xlsx.py:22:26: F405 'joinSheetnames' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:24:1: E302 expected 2 blank lines, found 1
visidata/loaders/xlsx.py:24:17: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:25:6: F405 'async' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:30:28: F405 'ColumnItem' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:32:14: F405 'Progress' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:37:1: E302 expected 2 blank lines, found 1
visidata/loaders/xlsx.py:37:16: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:40:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:40:17: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:40:80: E501 line too long (97 > 79 characters)
visidata/loaders/xlsx.py:42:5: E301 expected 1 blank line, found 0
visidata/loaders/xlsx.py:46:6: F405 'async' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:49:25: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:55:25: F405 'joinSheetnames' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:58:16: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:59:6: F405 'async' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:64:28: F405 'ColumnItem' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:66:14: F405 'Progress' may be undefined, or defined from star imports: visidata
visidata/loaders/xlsx.py:68:80: E501 line too long (108 > 79 characters)
visidata/loaders/hdf5.py:1:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/loaders/hdf5.py:3:1: E302 expected 2 blank lines, found 1
visidata/loaders/hdf5.py:3:18: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/loaders/hdf5.py:6:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/loaders/hdf5.py:6:17: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/loaders/hdf5.py:6:80: E501 line too long (124 > 79 characters)
visidata/loaders/hdf5.py:7:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/loaders/hdf5.py:7:80: E501 line too long (125 > 79 characters)
visidata/loaders/hdf5.py:14:17: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/loaders/hdf5.py:15:17: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/loaders/hdf5.py:16:17: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/loaders/hdf5.py:18:26: E201 whitespace after '['
visidata/loaders/hdf5.py:18:80: E501 line too long (82 > 79 characters)
visidata/loaders/hdf5.py:18:81: E202 whitespace before ']'
visidata/loaders/hdf5.py:21:33: F405 'ColumnItem' may be undefined, or defined from star imports: visidata
visidata/loaders/hdf5.py:21:80: E501 line too long (107 > 79 characters)
visidata/loaders/hdf5.py:24:32: F405 'ArrayColumns' may be undefined, or defined from star imports: visidata
visidata/loaders/hdf5.py:27:17: F405 'status' may be undefined, or defined from star imports: visidata
visidata/loaders/hdf5.py:27:80: E501 line too long (82 > 79 characters)
visidata/loaders/hdf5.py:29:13: F405 'status' may be undefined, or defined from star imports: visidata
visidata/loaders/hdf5.py:31:1: E302 expected 2 blank lines, found 1
visidata/loaders/hdf5.py:36:1: E305 expected 2 blank lines after class or function definition, found 1
visidata/loaders/fixed_width.py:2:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/loaders/fixed_width.py:4:1: F405 'option' may be undefined, or defined from star imports: visidata
visidata/loaders/fixed_width.py:6:1: E302 expected 2 blank lines, found 1
visidata/loaders/fixed_width.py:9:1: E302 expected 2 blank lines, found 1
visidata/loaders/fixed_width.py:9:24: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/loaders/fixed_width.py:20:1: E302 expected 2 blank lines, found 1
visidata/loaders/fixed_width.py:23:5: E266 too many leading '#' for block comment
visidata/loaders/fixed_width.py:41:1: E302 expected 2 blank lines, found 1
visidata/loaders/fixed_width.py:41:30: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/loaders/fixed_width.py:44:39: F405 'readlines' may be undefined, or defined from star imports: visidata
visidata/loaders/fixed_width.py:47:61: F405 'options' may be undefined, or defined from star imports: visidata
visidata/loaders/fixed_width.py:47:80: E501 line too long (82 > 79 characters)
visidata/loaders/fixed_width.py:49:65: F405 'options' may be undefined, or defined from star imports: visidata
visidata/loaders/fixed_width.py:49:80: E501 line too long (85 > 79 characters)
visidata/loaders/fixed_width.py:53:31: F405 'options' may be undefined, or defined from star imports: visidata
visidata/loaders/zip.py:2:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/loaders/zip.py:4:1: E302 expected 2 blank lines, found 1
visidata/loaders/zip.py:4:16: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/loaders/zip.py:7:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/loaders/zip.py:7:17: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/loaders/zip.py:7:80: E501 line too long (81 > 79 characters)
visidata/loaders/zip.py:8:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/loaders/zip.py:8:21: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/loaders/zip.py:8:80: E501 line too long (116 > 79 characters)
visidata/loaders/zip.py:11:9: F405 'ColumnAttr' may be undefined, or defined from star imports: visidata
visidata/loaders/zip.py:12:9: F405 'ColumnAttr' may be undefined, or defined from star imports: visidata
visidata/loaders/zip.py:13:9: F405 'ColumnAttr' may be undefined, or defined from star imports: visidata
visidata/loaders/zip.py:14:9: F405 'ColumnAttr' may be undefined, or defined from star imports: visidata
visidata/loaders/zip.py:28:62: F405 'options' may be undefined, or defined from star imports: visidata
visidata/loaders/zip.py:28:80: E501 line too long (110 > 79 characters)
visidata/loaders/zip.py:28:87: F405 'options' may be undefined, or defined from star imports: visidata
visidata/loaders/zip.py:29:16: F405 'openSource' may be undefined, or defined from star imports: visidata
visidata/loaders/zip.py:29:27: F405 'PathFd' may be undefined, or defined from star imports: visidata
visidata/loaders/zip.py:29:80: E501 line too long (80 > 79 characters)
visidata/loaders/csv.py:2:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/loaders/csv.py:5:1: F405 'option' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:6:1: F405 'option' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:7:1: F405 'option' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:8:1: F405 'option' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:12:10: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:16:1: E302 expected 2 blank lines, found 1
visidata/loaders/csv.py:22:1: E302 expected 2 blank lines, found 1
visidata/loaders/csv.py:22:2: F405 'async' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:30:34: F405 'options' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:31:36: F405 'options' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:32:36: F405 'options' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:33:43: F405 'options' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:38:56: F405 'options' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:42:26: F405 'ArrayNamedColumns' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:42:80: E501 line too long (80 > 79 characters)
visidata/loaders/csv.py:44:13: F841 local variable 'r' is assigned to but never used
visidata/loaders/csv.py:46:26: F405 'ArrayColumns' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:49:14: F405 'Progress' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:63:45: F405 'options' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:63:70: F405 'options' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:63:80: E501 line too long (100 > 79 characters)
visidata/loaders/csv.py:64:37: F405 'options' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:64:68: F405 'options' may be undefined, or defined from star imports: visidata
visidata/loaders/csv.py:64:80: E501 line too long (122 > 79 characters)
visidata/loaders/csv.py:64:101: F405 'options' may be undefined, or defined from star imports: visidata
visidata/loaders/postgres.py:1:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/loaders/postgres.py:3:1: E302 expected 2 blank lines, found 1
visidata/loaders/postgres.py:12:9: F405 'status' may be undefined, or defined from star imports: visidata
visidata/loaders/postgres.py:13:12: F405 'anytype' may be undefined, or defined from star imports: visidata
visidata/loaders/postgres.py:35:30: F405 'random' may be undefined, or defined from star imports: visidata
visidata/loaders/postgres.py:35:44: F405 'string' may be undefined, or defined from star imports: visidata
visidata/loaders/postgres.py:35:80: E501 line too long (85 > 79 characters)
visidata/loaders/postgres.py:40:6: F405 'async' may be undefined, or defined from star imports: visidata
visidata/loaders/postgres.py:50:13: F405 'ColumnItem' may be undefined, or defined from star imports: visidata
visidata/loaders/postgres.py:50:80: E501 line too long (89 > 79 characters)
visidata/loaders/postgres.py:56:21: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/loaders/postgres.py:59:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/loaders/postgres.py:59:17: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/loaders/postgres.py:59:80: E501 line too long (108 > 79 characters)
visidata/loaders/postgres.py:63:80: E501 line too long (145 > 79 characters)
visidata/loaders/postgres.py:74:28: F405 'Column' may be undefined, or defined from star imports: visidata
visidata/loaders/postgres.py:74:69: E231 missing whitespace after ','
visidata/loaders/postgres.py:74:80: E501 line too long (104 > 79 characters)
visidata/loaders/postgres.py:86:80: E501 line too long (126 > 79 characters)
visidata/loaders/postgres.py:93:15: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/loaders/postgres.py:94:6: F405 'async' may be undefined, or defined from star imports: visidata
visidata/loaders/postgres.py:106:1: F405 'addGlobals' may be undefined, or defined from star imports: visidata
visidata/loaders/sqlite.py:1:1: F403 'from visidata import *' used; unable to detect undefined names
visidata/loaders/sqlite.py:3:1: E302 expected 2 blank lines, found 1
visidata/loaders/sqlite.py:8:1: E302 expected 2 blank lines, found 1
visidata/loaders/sqlite.py:8:19: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/loaders/sqlite.py:11:9: F405 'Command' may be undefined, or defined from star imports: visidata
visidata/loaders/sqlite.py:11:17: F405 'ENTER' may be undefined, or defined from star imports: visidata
visidata/loaders/sqlite.py:11:80: E501 line too long (147 > 79 characters)
visidata/loaders/sqlite.py:13:5: E301 expected 1 blank line, found 0
visidata/loaders/sqlite.py:15:36: F405 'Sheet' may be undefined, or defined from star imports: visidata
visidata/loaders/sqlite.py:17:38: F405 'Path' may be undefined, or defined from star imports: visidata
visidata/loaders/sqlite.py:26:80: E501 line too long (94 > 79 characters)
visidata/loaders/sqlite.py:31:80: E501 line too long (86 > 79 characters)
visidata/loaders/sqlite.py:32:17: F405 'ColumnItem' may be undefined, or defined from star imports: visidata
visidata/loaders/sqlite.py:45:17: F405 'status' may be undefined, or defined from star imports: visidata
visidata/tests/test_commands.py:3:1: F401 'unittest.skip' imported but unused
visidata/tests/test_commands.py:6:1: F401 'itertools' imported but unused
visidata/tests/test_commands.py:10:19: E201 whitespace after '['
visidata/tests/test_commands.py:10:80: E501 line too long (86 > 79 characters)
visidata/tests/test_commands.py:12:15: E201 whitespace after '{'
visidata/tests/test_commands.py:13:18: E127 continuation line over-indented for visual indent
visidata/tests/test_commands.py:13:80: E501 line too long (117 > 79 characters)
visidata/tests/test_commands.py:14:17: E127 continuation line over-indented for visual indent
visidata/tests/test_commands.py:19:1: E128 continuation line under-indented for visual indent
visidata/tests/test_commands.py:25:40: E261 at least two spaces before inline comment
visidata/tests/test_commands.py:31:15: E124 closing bracket does not match visual indentation
visidata/tests/test_commands.py:33:1: E302 expected 2 blank lines, found 1
visidata/tests/test_commands.py:56:80: E501 line too long (96 > 79 characters)
visidata/tests/test_commands.py:72:80: E501 line too long (99 > 79 characters)
visidata/tests/test_edittext.py:2:1: F401 'unittest.skip' imported but unused
visidata/tests/test_edittext.py:3:1: F401 'unittest.mock.patch' imported but unused
visidata/tests/test_edittext.py:6:1: E265 block comment should start with '# '
visidata/tests/test_edittext.py:34:80: E501 line too long (97 > 79 characters)
visidata/tests/test_edittext.py:34:80: E261 at least two spaces before inline comment
visidata/tests/test_edittext.py:55:9: E265 block comment should start with '# '
visidata/tests/test_edittext.py:63:9: E265 block comment should start with '# '
Kind regards
In order to use visidata as a pager with psql
or mysql
, you need to be able to pipe in data in addition to specifying a file. I had a similar app, here is the snippet that did this:
https://github.com/nfultz/ffss/blob/master/ffss/__init__.py#L60
For users of the VisiData app, PyPi is a non-ideal distribution mechanism, as it requires an extra step if python3-pip is not already installed, and also does not allow installation into system directories for e.g. manpages.
We should create packages for at least brew (MacOS) and apt (Debian/Ubuntu), and submit them for inclusion in the standard repositories.
(PyPi should remain as an installation source, for devs who want to take advantage of the visidata package in their own code. Also for better integration with things like pipenv, and for platforms without brew or apt).
Visidata currently allows users to search by regular expression. Users should also be able to
Similar to Pandas describe(), which provides the count, mean, std dev, min, max, quartiles and type for each column
When VisiData tries loading a file containing a NULL byte, it seems to get stuck mid-progress. For example, when you load this file, you get only this:
... and the sheets
view says this:
It will be nice to make visidata importable. So it could be run in a IPython console
from visidata import vd
vd("filename.csv")
Although I've used it before, I could not remember that <F1>
was the key for help. A hint to it somewhere would be help-ful.
addons/gsheet.py
has two functions that appear to be competing:
def open_gspreadsheet(p):
"""Open Google Sheets spreadsheet, given its name."""
sheets = google_sheets()
sheet_md = sheets.get(spreadsheetId=p.name).execute()
vs = Sheet(sheet_md['properties']['title'], p)
vs.columns = [Column('title', lambda_eval('properties.title')),
Column('rowCount', lambda_eval('properties.gridProperties.rowCount')),
Column('columnCount', lambda_eval('properties.gridProperties.columnCount'))]
vs.rows = sheet_md['sheets']
vs.command(Key.ENTER, 'cursorRow')
return vs
and
def open_gsheet(p):
"""Open Google Sheets spreadsheet, given its name."""
sheets = google_sheets()
sheet = sheets.values().get(spreadsheetId=p.name).execute()
push_pyobj(p.name, sheet, p)
# vs = Sheet(sheet_md['properties']['title'], p)
# vs.columns = [Column('title', lambda_eval('properties.title')),
# Column('rowCount', lambda_eval('properties.gridProperties.rowCount')),
# Column('columnCount', lambda_eval('properties.gridProperties.columnCount'))]
# vs.rows = sheet_md['sheets']
# vs.command(Key.ENTER, 'cursorRow')
# return vs
Are they intended to do different things? Is there a way to prune or combine them?
From comment by @wavexx on TabViewer/tabview#152:
Opening text files with a simple delimiter which is not "tab" is perhaps
more annoying than it should. Having to change the delimiter is
incredibly common. It seems the shortest way is:vd -f csv --csv-delimiter '|'
except that I would also need to change/disable quotechar (these are
dumb text files, not csv with a different delimiter).Having "vd --delimiter '|'" influence the "tsv" format would be nice. In
fact, tsv would probably be a specific case of a generic "txt" file with
tab as a delimiter.Also, --delimiter as an alias/replacement to --csv-delimiter to make it
shorter would be cool. It's the most common flag you need to use. We
used '-d' to copy unix tools, but I see you used that for delay already.
I had been thinking that using --csv-delimiter with csv filetype was an adequate way to change the tsv delimiter, but @wavexx is right, that while it may be possible by specifying enough csv parameters, it is tricky and annoying for such a common use case.
We can also implement the same "recursive lookup" mechanism (used by commands) for options, and provide a --delimiter alias that way. -d
is a reasonable argument alias too, given its compatibility with existing unix tools; we'd have to find another shorthand/mnemonic for --delay.
Attempting to open the NYC Open Data 311 dump (9.5Gb) this morning left my computer hanging after 34 minutes (13555788 records, or 88%, loaded).
It would be a good idea for the application to monitor changes in loading speed and warn User when there is likely to be trouble.
I suggest User then be offered the option to abort cleanly, recording the details in the configuration file. It may be useful to know in future what size files are too large to be loaded, something the application could then look up in the config file and give User earlier warning of.
Handing over-large files the way database programs do, with fast data structures that maximize efficient disk-lookups, would be nice but I think perhaps overkill for this application at this time.
curses.COLOR_BLUE
(for column-separators) seems to me harder to make out on a black background than other colors.
I think other (though perhaps not named) colors can be added using stdscr.addstr()
, and that would be useful to optimize.
Once I use -
to hide a column I can't (or can't figure out how to) unhide that column again.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.