-
-
Notifications
You must be signed in to change notification settings - Fork 286
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #827 from saulpw/develop
Prepare for v2.1 release
- Loading branch information
Showing
112 changed files
with
2,403 additions
and
750 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
don't be a dick |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
include README.md | ||
include LICENSE.gpl3 | ||
include visidata/man/vd.1 | ||
include visidata/man/vd.txt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,82 +1,55 @@ | ||
[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/saulpw/visidata) | ||
|
||
# VisiData v2.0.1 [![CircleCI](https://circleci.com/gh/saulpw/visidata/tree/stable.svg?style=svg)](https://circleci.com/gh/saulpw/visidata/tree/stable) | ||
# VisiData v2.1 [![twitter @VisiData][1.1]][1] [![CircleCI](https://circleci.com/gh/saulpw/visidata/tree/develop.svg?style=svg)](https://circleci.com/gh/saulpw/visidata/tree/develop) [![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/saulpw/visidata) | ||
|
||
A terminal interface for exploring and arranging tabular data. | ||
|
||
![Frequency table](http://visidata.org/freq-move-row.gif) | ||
|
||
## Dependencies | ||
VisiData supports tsv, csv, sqlite, json, xlsx (Excel), hdf5, and [many other formats](https://visidata.org/formats). | ||
|
||
- Linux, OS/X or Windows | ||
- Python 3.6+ | ||
- python-dateutil | ||
- other modules may be required for opening particular data sources | ||
- see [requirements.txt](https://github.com/saulpw/visidata/blob/stable/requirements.txt) or the [supported sources](https://visidata.org/formats) in the vd manpage | ||
## Platform requirements | ||
|
||
## Getting started | ||
- Linux, OS/X, or Windows (with WSL) | ||
- Python 3.6+ | ||
- additional Python modules are required for certain formats and sources | ||
|
||
### Installation | ||
## Install | ||
|
||
Each package contains the full loader suite but differs in which loader dependencies will get installed by default. | ||
To install the latest release from PyPi: | ||
|
||
The base VisiData package concerns loaders whose dependencies are covered by the Python3 standard library. | ||
pip3 install visidata | ||
|
||
Base loaders: tsv, csv, json, sqlite, and fixed width text. | ||
To install the cutting edge `develop` branch (no warranty expressed or implied): | ||
|
||
|Platform |Package Manager | Command | Out-of-box Loaders | | ||
|-------------------|----------------------------------------|----------------------------------------------|----------------------| | ||
|all |[pip3](https://visidata.org/install#pip3) | `pip3 install visidata` | Base | | ||
|all |[conda](https://visidata.org/install#conda) | `conda install --channel conda-forge visidata` | Base, http, html, xls(x) | | ||
|MacOS |[Homebrew](https://visidata.org/install#brew) | `brew install saulpw/vd/visidata` | Base, http, html, xls(x) | | ||
|Linux (Debian/Ubuntu) |[apt](https://visidata.org/install#apt) | [full instructions](https://visidata.org/install#apt) | Base, http, html, xls(x) | | ||
|Linux (Debian/Ubuntu) |[dpkg](https://visidata.org/install#dpkg) | [full instructions](https://visidata.org/install#dpkg) | Base, http, html, xls(x) | | ||
|Windows |[WSL](https://visidata.org/install#wsl) | Windows is not directly supported (use WSL) | N/A | | ||
|all |[github](https://visidata.org/install#git) | `pip3 install git+https://github.com/saulpw/visidata.git@stable` | Base | | ||
|Linux (NixOS)|[nix](https://visidata.org/install#nix)| `nix-env -i visidata`|Base, yaml, xls(x), hdf5, html, pandas, shp | | ||
pip3 install git+https://github.com/saulpw/visidata.git@develop | ||
|
||
Please see [/install](https://visidata.org/install) for detailed instructions, additional information, and troubleshooting. | ||
See [visidata.org/install](https://visidata.org/install) for detailed instructions for all available platforms and package managers. | ||
|
||
### Usage | ||
|
||
$ vd [<options>] <input> ... | ||
$ <command> | vd [<options>] | ||
|
||
VisiData supports tsv, csv, xlsx, hdf5, sqlite, json and more (see the [list of supported sources](https://visidata.org/formats)). | ||
$ vd <input> | ||
$ <command> | vd | ||
|
||
Use `-f <filetype>` to force a particular filetype. | ||
Press `Ctrl+Q` to quit at any time. | ||
|
||
Hundreds of other commands and options are also available; see the documentation. | ||
|
||
### Documentation | ||
|
||
* [VisiData documentation](https://visidata.org/docs) | ||
* [Plugin Author's Guide and API Reference](https://visidata.org/docs/api) | ||
* [Quick reference](https://visidata.org/man) (available within `vd` with `Ctrl+H`), which has a list of commands and options. | ||
* [Intro to VisiData Tutorial](https://jsvine.github.io/intro-to-visidata/) by [Jeremy Singer-Vine](https://www.jsvine.com/) | ||
* Quick reference: `Ctrl+H` within `vd` will open the [man page](https://visidata.org/man), which has a list of all commands and options. | ||
* [/docs](https://visidata.org/docs) contains a collection of howto recipes. | ||
|
||
### Help and Support | ||
|
||
If you have a question, issue, or suggestion regarding VisiData, please [create an issue on Github](https://github.com/saulpw/visidata/issues) or chat with us at #visidata on [freenode.net](https://webchat.freenode.net/). | ||
|
||
Here are some concrete ways you can help make VisiData even more awesome: | ||
|
||
* Write a blogpost (or tweet or whatever) about a VisiData command or feature you use frequently, and share it with us! | ||
* Expand VisiData to support .xyz proprietary data format. Creating a loader [is really straightforward](https://www.visidata.org/docs/api/loaders.html). | ||
* Create and maintain [new installation packages](https://github.com/saulpw/visidata/labels/packaging). | ||
* Acknowledge the realities of late-stage capitalism and [give regular old money](https://www.patreon.com/saulpw). | ||
|
||
## Other applications within the VisiData ecosystem | ||
|
||
The core interface paradigm--rows and columns--can be used to create efficient terminal workflows with a minimum of effort for almost any application. These have been prototyped as proof of this concept: | ||
|
||
- [vgit](https://github.com/saulpw/visidata/tree/stable/plugins/vgit): a git interface | ||
- [vsh](https://github.com/saulpw/vsh): a collection of utilities like `vping` and `vtop`. | ||
- [vdgalcon](https://github.com/saulpw/vdgalcon): a port of the classic game [Galactic Conquest](https://www.galcon.com) | ||
|
||
Other workflows can also be created as separate apps using the visidata module. These apps can be very small and provide a lot of functionality; for example, see the included [viewtsv](https://visidata.org/docs/viewtsv). | ||
If you use VisiData regularly, please [support me on Patreon](https://www.patreon.com/saulpw)! | ||
|
||
## License | ||
|
||
VisiData, including the main `vd` application, addons, loaders, and other code in this repository, is available for use and redistribution under GPLv3. | ||
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 | ||
|
||
|
@@ -85,3 +58,8 @@ 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](https://visidata.org/credits/), and to those wonderful users who provide feedback, for helping to make VisiData the awesome tool that it is. | ||
|
||
[1.1]: http://i.imgur.com/tXSoThF.png | ||
[1]: http://www.twitter.com/VisiData | ||
|
||
<!-- Please don't remove this: Grab your social icons from https://github.com/carlsednaoui/gitsocial --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,60 @@ | ||
# Roadmap to 2.0 | ||
|
||
## API | ||
|
||
The primary goal of 2.0 is a stable, documented Python API that can be used to create an broad ecosystem of loaders, plugins, and apps. | ||
|
||
The Book of VisiData will describe the api and all functions and objects available to plugins and command execstrs. | ||
|
||
## Split panes | ||
|
||
+ horizontal split | ||
- one pane can be dependent on the other; e.g. move cursor in one, see preview update in other | ||
+ use for choosing aggregators, command help, other choose() | ||
|
||
- DirSheet file preview #309 | ||
|
||
## add jsonl as more robust system format | ||
+ add .vdj format (visidata cmdlog as jsonl) | ||
+ migrate plugins.tsv to be jsonl format | ||
|
||
## Minor features, refactors, cleanup | ||
|
||
- 'modified' indicator on status bar, also enables quitguard | ||
- remove all asserts; replace with error() on case-by-case basis | ||
|
||
- [options] allow list or dict of enum values for default | ||
- [options] for options that have been renamed, add aliases for compatibility | ||
- e.g. `tsv_delimiter` and `tsv_row_delimiter` become 'proper' options with 'delimiter', 'delim', and 'd' becoming aliases | ||
|
||
# Features | ||
|
||
- Memory sheet; can give things names and use in expressions. | ||
- 'show' commands are copied there by default. | ||
|
||
- [columns] add helpstr for all specialized-sheet columns | ||
# Roadmap for 2.x | ||
|
||
1. holdovers from 2.0 | ||
- [canvas] API docs | ||
- [options] option enums | ||
- [options] user-defined option aliases | ||
- [splitpane] File preview in directory view | ||
- [defermods] 'modified since last save' indicator on status bar | ||
- [scroll cell] zh/zl Left hand side of a cell with content hidden doesn't show ellipsis #751 | ||
|
||
2. Persistence | ||
- input history #736 #468 | ||
- key indexes for better joining and lookups | ||
|
||
3. Interface discoverability for commands #247 #742 | ||
- clickable menu canvas | ||
- more clickable affordances all around | ||
- clickable motd | ||
- possibly add popup modals | ||
|
||
4. more expressive expressions | ||
- Memory sheet; can give things names and use in expressions. #392 | ||
- access column values from execstr #655 | ||
- shortcut name for current column #659 | ||
|
||
5. better asynchronicity | ||
- async thread pool | ||
- streaming architecture #366 #656 | ||
|
||
6. Loaders/Savers | ||
- frictionless saver #237 | ||
- RSS reader #157 | ||
- toml loader #735 | ||
- HexSheet for unknown/binary files #548 | ||
- .ods loader (LibreOffice/OpenOffice spreadsheet) #473 | ||
|
||
- jsonl load and save round-trip (minimal diff) #429 | ||
|
||
## other features | ||
|
||
a) generate non-terminal graphs (ggplot) | ||
b) automatic reload into time series | ||
c) intra-cell coloring (for search results, markup) | ||
|
||
# major plugin projects | ||
|
||
1. fully operational SQL viewer/editor | ||
|
||
- #282: Select starting table in postgres from command-line | ||
- #579: [Postgres] Allow inserting / deleting rows | ||
- #522: [postgres] parms in options | ||
- #586: SQL query data | ||
- #727: [postgres] Transaction error when viewing table | ||
- #729: Integrate generic SQL loader | ||
|
||
2. web scraper | ||
|
||
- #480: HTTP API pagination loader | ||
- #465: Ability to load from the contents of a cell. | ||
- #505: [html] Provide way to access non-table elements |
Oops, something went wrong.