Giter VIP home page Giter VIP logo

saulpw / visidata Goto Github PK

View Code? Open in Web Editor NEW
7.4K 70.0 270.0 44.55 MB

A terminal spreadsheet multitool for discovering and arranging data

Home Page: http://visidata.org

License: GNU General Public License v3.0

Python 85.65% HTML 3.00% Shell 0.45% Roff 8.10% Ruby 0.26% Makefile 0.04% Dockerfile 0.11% C++ 2.38% Scheme 0.02%
python cli csv tsv json hdf5 sqlite datawrangling unix-toolkit datajournalism

visidata's Introduction

VisiData v3.0

Tests Gitpod ready-to-code

discord mastodon @visidata@fosstodon.org twitter @VisiData

A terminal interface for exploring and arranging tabular data.

Frequency table

VisiData supports tsv, csv, sqlite, json, xlsx (Excel), hdf5, and many other formats.

Platform requirements

  • Linux, OS/X, or Windows (with WSL)
  • Python 3.8+
  • additional Python modules are required for certain formats and sources

Install

To install the latest release from PyPi:

pip3 install visidata

To install the cutting edge develop branch (no warranty expressed or implied):

pip3 install git+https://github.com/saulpw/visidata.git@develop

See visidata.org/install for detailed instructions for all available platforms and package managers.

Usage

$ vd <input>
$ <command> | vd

Press Ctrl+Q to quit at any time.

Hundreds of other commands and options are also available; see the documentation.

Documentation

Help and Support

If you have a question, issue, or suggestion regarding VisiData, please create an issue on Github or chat with us at #visidata on irc.libera.chat.

If you use VisiData regularly, please support me on Patreon!

License

Code in the stable branch of this repository, including the main vd application, loaders, and plugins, is available for use and redistribution under GPLv3.

Credits

VisiData is conceived and developed by Saul Pwanson <[email protected]>.

Anja Kefala <[email protected]> maintains the documentation and packages for all platforms.

Many thanks to numerous other contributors, and to those wonderful users who provide feedback, for helping to make VisiData the awesome tool that it is.

visidata's People

Contributors

abitrolly avatar ajkerrigan avatar anjakefala avatar azjps avatar brannerchinese avatar causal-agent avatar chocolateboy avatar cool-rr avatar cpcloud avatar danielcynerio avatar danlaudk avatar daviewales avatar geekscrapy avatar jasonwirth avatar jsvine avatar khughitt avatar lkhrs avatar maxim-uvarov avatar midichef avatar p3k avatar pacien avatar polm avatar saulpw avatar suramon avatar tombh avatar tsibley avatar vbrown608 avatar yarikoptic avatar yphillip avatar zormit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

visidata's Issues

Create packages for brew and apt

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).

Allow tsv/txt delimiter to be changed easily

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.

Consider filesystem support for add-ons

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.

Make a package

Hello,

you should make a package for visidata

Kind regards

Make `-` input file indicate position of stdin sheet

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

Allow field-editing with user's own editor

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.

black screen

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

Map enter to edit

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)

Allow users to transform columns with regex

Visidata currently allows users to search by regular expression. Users should also be able to

  • Edit a column using a sed-like syntax
  • Create a new column based on an existing column using a sed-like syntax

Make option editable in Options sheet after setattr in code

  1. Add options.disp_column_sep = 'foo' to .visidatarc.
  2. Launch and go to 'O'ptions sheet, and change e.g. disp_column_sep to something else.
  3. Note that option value does not change anymore.

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.

help page doesn't appear to work on OSX 10.11.6

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.

Undo functionality

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

no such executable `vd` appears after `pip3 install visidata`

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!

Allow rows to be colorized

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.

Cannot open .txt file

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!

Make visidata importable

It will be nice to make visidata importable. So it could be run in a IPython console

from visidata import vd
vd("filename.csv")

PEP8

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

Resolve duplicate openers in gsheet.py

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?

Consider VD add-on for use as email client

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.

Handle over-large input files gracefully

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.

Save (not save as)

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?

Have A/B/C... refer to unnamed columns when VisiData opens .xlsx files

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 ^.

Problems installing visidata

I ran into two issues when following the install instructions for visidata:

  1. The requirements.txt is not where the readme says it will be
  2. Running 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.

install.txt
run.txt

Show key columns on ColumnSheet

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.

"_curses.error: curs_set() returned ERR" when trying to open (most/any) CSV

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.

Setup

  • OSX
  • Python 3.6
  • VisiData 0.94

Command

vd path/to/my.csv

Traceback

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.