pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
visidata: Import visidata-1.5.2 as wip/visidata
Module Name: pkgsrc-wip
Committed By: Leonardo Taccari <leot%NetBSD.org@localhost>
Pushed By: leot
Date: Mon Jan 20 15:29:28 2020 +0100
Changeset: 87667c8739d3cd59c8ee2a3a962d00edebe5677f
Modified Files:
Makefile
Added Files:
visidata/DESCR
visidata/Makefile
visidata/PLIST
visidata/TODO
visidata/distinfo
visidata/patches/patch-visidata_vdtui.py
Log Message:
visidata: Import visidata-1.5.2 as wip/visidata
A curses interface for exploring and arranging tabular data
usable via any remote shell which has Python3 installed.
A few interesting commands:
- Shift-F pushes a frequency analysis of the current column
- = creates a new column from the given Python expression (use column names to
refer to their contents)
- . creates new columns from the match groups of the given regex
Still not working with NetBSD curses(3) due get_wch(3) usage, probably
exposes a more general devel/py-curses problem.
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=87667c8739d3cd59c8ee2a3a962d00edebe5677f
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
Makefile | 1 +
visidata/DESCR | 8 ++
visidata/Makefile | 29 +++++
visidata/PLIST | 193 +++++++++++++++++++++++++++++++
visidata/TODO | 6 +
visidata/distinfo | 7 ++
visidata/patches/patch-visidata_vdtui.py | 23 ++++
7 files changed, 267 insertions(+)
diffs:
diff --git a/Makefile b/Makefile
index 9465cf92a5..c44cd807db 100644
--- a/Makefile
+++ b/Makefile
@@ -4926,6 +4926,7 @@ SUBDIR+= virtualjaguar-git
SUBDIR+= virus
SUBDIR+= vis
SUBDIR+= vis-editor
+SUBDIR+= visidata
SUBDIR+= vista-fonts
SUBDIR+= vkeybd
SUBDIR+= vlevel
diff --git a/visidata/DESCR b/visidata/DESCR
new file mode 100644
index 0000000000..e0dadb7121
--- /dev/null
+++ b/visidata/DESCR
@@ -0,0 +1,8 @@
+A curses interface for exploring and arranging tabular data
+usable via any remote shell which has Python3 installed.
+
+A few interesting commands:
+ - Shift-F pushes a frequency analysis of the current column
+ - = creates a new column from the given Python expression (use column names to
+ refer to their contents)
+ - . creates new columns from the match groups of the given regex
diff --git a/visidata/Makefile b/visidata/Makefile
new file mode 100644
index 0000000000..b1cbcc2643
--- /dev/null
+++ b/visidata/Makefile
@@ -0,0 +1,29 @@
+# $NetBSD$
+
+DISTNAME= visidata-1.5.2
+CATEGORIES= textproc
+MASTER_SITES= ${MASTER_SITE_PYPI:=v/visidata/}
+
+MAINTAINER= pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE= https://visidata.org/
+COMMENT= curses interface for exploring and arranging tabular data
+LICENSE= gnu-gpl-v3
+
+DEPENDS+= ${PYPKGPREFIX}-curses-[0-9]*:../../devel/py-curses
+DEPENDS+= ${PYPKGPREFIX}-dateutil-[0-9]*:../../time/py-dateutil
+DEPENDS+= ${PYPKGPREFIX}-openpyxl-[0-9]*:../../textproc/py-openpyxl
+
+SUBST_CLASSES+= setuppy
+SUBST_STAGE.setuppy= pre-configure
+SUBST_MESSAGE.setuppy= Adjusting hard-coded man path
+SUBST_FILES.setuppy= setup.py
+SUBST_SED.setuppy+= -e 's,share/man,${PKGMANDIR},g'
+
+USE_LANGUAGES= # none
+
+# Only for Python 3.x
+PYTHON_VERSIONS_INCOMPATIBLE= 27
+
+.include "../../lang/python/application.mk"
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/visidata/PLIST b/visidata/PLIST
new file mode 100644
index 0000000000..4842763da1
--- /dev/null
+++ b/visidata/PLIST
@@ -0,0 +1,193 @@
+@comment $NetBSD$
+bin/vd
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/visidata/__init__.py
+${PYSITELIB}/visidata/__init__.pyc
+${PYSITELIB}/visidata/__init__.pyo
+${PYSITELIB}/visidata/_profile.py
+${PYSITELIB}/visidata/_profile.pyc
+${PYSITELIB}/visidata/_profile.pyo
+${PYSITELIB}/visidata/_types.py
+${PYSITELIB}/visidata/_types.pyc
+${PYSITELIB}/visidata/_types.pyo
+${PYSITELIB}/visidata/aggregators.py
+${PYSITELIB}/visidata/aggregators.pyc
+${PYSITELIB}/visidata/aggregators.pyo
+${PYSITELIB}/visidata/asyncthread.py
+${PYSITELIB}/visidata/asyncthread.pyc
+${PYSITELIB}/visidata/asyncthread.pyo
+${PYSITELIB}/visidata/canvas.py
+${PYSITELIB}/visidata/canvas.pyc
+${PYSITELIB}/visidata/canvas.pyo
+${PYSITELIB}/visidata/clipboard.py
+${PYSITELIB}/visidata/clipboard.pyc
+${PYSITELIB}/visidata/clipboard.pyo
+${PYSITELIB}/visidata/cmdlog.py
+${PYSITELIB}/visidata/cmdlog.pyc
+${PYSITELIB}/visidata/cmdlog.pyo
+${PYSITELIB}/visidata/colors.py
+${PYSITELIB}/visidata/colors.pyc
+${PYSITELIB}/visidata/colors.pyo
+${PYSITELIB}/visidata/commands.tsv
+${PYSITELIB}/visidata/data.py
+${PYSITELIB}/visidata/data.pyc
+${PYSITELIB}/visidata/data.pyo
+${PYSITELIB}/visidata/describe.py
+${PYSITELIB}/visidata/describe.pyc
+${PYSITELIB}/visidata/describe.pyo
+${PYSITELIB}/visidata/dev.py
+${PYSITELIB}/visidata/dev.pyc
+${PYSITELIB}/visidata/dev.pyo
+${PYSITELIB}/visidata/diff.py
+${PYSITELIB}/visidata/diff.pyc
+${PYSITELIB}/visidata/diff.pyo
+${PYSITELIB}/visidata/errors.py
+${PYSITELIB}/visidata/errors.pyc
+${PYSITELIB}/visidata/errors.pyo
+${PYSITELIB}/visidata/freeze.py
+${PYSITELIB}/visidata/freeze.pyc
+${PYSITELIB}/visidata/freeze.pyo
+${PYSITELIB}/visidata/freqtbl.py
+${PYSITELIB}/visidata/freqtbl.pyc
+${PYSITELIB}/visidata/freqtbl.pyo
+${PYSITELIB}/visidata/graph.py
+${PYSITELIB}/visidata/graph.pyc
+${PYSITELIB}/visidata/graph.pyo
+${PYSITELIB}/visidata/join.py
+${PYSITELIB}/visidata/join.pyc
+${PYSITELIB}/visidata/join.pyo
+${PYSITELIB}/visidata/loaders/__init__.py
+${PYSITELIB}/visidata/loaders/__init__.pyc
+${PYSITELIB}/visidata/loaders/__init__.pyo
+${PYSITELIB}/visidata/loaders/_pandas.py
+${PYSITELIB}/visidata/loaders/_pandas.pyc
+${PYSITELIB}/visidata/loaders/_pandas.pyo
+${PYSITELIB}/visidata/loaders/csv.py
+${PYSITELIB}/visidata/loaders/csv.pyc
+${PYSITELIB}/visidata/loaders/csv.pyo
+${PYSITELIB}/visidata/loaders/fixed_width.py
+${PYSITELIB}/visidata/loaders/fixed_width.pyc
+${PYSITELIB}/visidata/loaders/fixed_width.pyo
+${PYSITELIB}/visidata/loaders/graphviz.py
+${PYSITELIB}/visidata/loaders/graphviz.pyc
+${PYSITELIB}/visidata/loaders/graphviz.pyo
+${PYSITELIB}/visidata/loaders/hdf5.py
+${PYSITELIB}/visidata/loaders/hdf5.pyc
+${PYSITELIB}/visidata/loaders/hdf5.pyo
+${PYSITELIB}/visidata/loaders/html.py
+${PYSITELIB}/visidata/loaders/html.pyc
+${PYSITELIB}/visidata/loaders/html.pyo
+${PYSITELIB}/visidata/loaders/http.py
+${PYSITELIB}/visidata/loaders/http.pyc
+${PYSITELIB}/visidata/loaders/http.pyo
+${PYSITELIB}/visidata/loaders/json.py
+${PYSITELIB}/visidata/loaders/json.pyc
+${PYSITELIB}/visidata/loaders/json.pyo
+${PYSITELIB}/visidata/loaders/markdown.py
+${PYSITELIB}/visidata/loaders/markdown.pyc
+${PYSITELIB}/visidata/loaders/markdown.pyo
+${PYSITELIB}/visidata/loaders/mbtiles.py
+${PYSITELIB}/visidata/loaders/mbtiles.pyc
+${PYSITELIB}/visidata/loaders/mbtiles.pyo
+${PYSITELIB}/visidata/loaders/pcap.py
+${PYSITELIB}/visidata/loaders/pcap.pyc
+${PYSITELIB}/visidata/loaders/pcap.pyo
+${PYSITELIB}/visidata/loaders/png.py
+${PYSITELIB}/visidata/loaders/png.pyc
+${PYSITELIB}/visidata/loaders/png.pyo
+${PYSITELIB}/visidata/loaders/postgres.py
+${PYSITELIB}/visidata/loaders/postgres.pyc
+${PYSITELIB}/visidata/loaders/postgres.pyo
+${PYSITELIB}/visidata/loaders/sas.py
+${PYSITELIB}/visidata/loaders/sas.pyc
+${PYSITELIB}/visidata/loaders/sas.pyo
+${PYSITELIB}/visidata/loaders/shp.py
+${PYSITELIB}/visidata/loaders/shp.pyc
+${PYSITELIB}/visidata/loaders/shp.pyo
+${PYSITELIB}/visidata/loaders/spss.py
+${PYSITELIB}/visidata/loaders/spss.pyc
+${PYSITELIB}/visidata/loaders/spss.pyo
+${PYSITELIB}/visidata/loaders/sqlite.py
+${PYSITELIB}/visidata/loaders/sqlite.pyc
+${PYSITELIB}/visidata/loaders/sqlite.pyo
+${PYSITELIB}/visidata/loaders/tsv.py
+${PYSITELIB}/visidata/loaders/tsv.pyc
+${PYSITELIB}/visidata/loaders/tsv.pyo
+${PYSITELIB}/visidata/loaders/ttf.py
+${PYSITELIB}/visidata/loaders/ttf.pyc
+${PYSITELIB}/visidata/loaders/ttf.pyo
+${PYSITELIB}/visidata/loaders/xlsx.py
+${PYSITELIB}/visidata/loaders/xlsx.pyc
+${PYSITELIB}/visidata/loaders/xlsx.pyo
+${PYSITELIB}/visidata/loaders/xml.py
+${PYSITELIB}/visidata/loaders/xml.pyc
+${PYSITELIB}/visidata/loaders/xml.pyo
+${PYSITELIB}/visidata/loaders/yaml.py
+${PYSITELIB}/visidata/loaders/yaml.pyc
+${PYSITELIB}/visidata/loaders/yaml.pyo
+${PYSITELIB}/visidata/loaders/zip.py
+${PYSITELIB}/visidata/loaders/zip.pyc
+${PYSITELIB}/visidata/loaders/zip.pyo
+${PYSITELIB}/visidata/man/vd.1
+${PYSITELIB}/visidata/metasheets.py
+${PYSITELIB}/visidata/metasheets.pyc
+${PYSITELIB}/visidata/metasheets.pyo
+${PYSITELIB}/visidata/motd.py
+${PYSITELIB}/visidata/motd.pyc
+${PYSITELIB}/visidata/motd.pyo
+${PYSITELIB}/visidata/movement.py
+${PYSITELIB}/visidata/movement.pyc
+${PYSITELIB}/visidata/movement.pyo
+${PYSITELIB}/visidata/namedlist.py
+${PYSITELIB}/visidata/namedlist.pyc
+${PYSITELIB}/visidata/namedlist.pyo
+${PYSITELIB}/visidata/path.py
+${PYSITELIB}/visidata/path.pyc
+${PYSITELIB}/visidata/path.pyo
+${PYSITELIB}/visidata/pivot.py
+${PYSITELIB}/visidata/pivot.pyc
+${PYSITELIB}/visidata/pivot.pyo
+${PYSITELIB}/visidata/pyobj.py
+${PYSITELIB}/visidata/pyobj.pyc
+${PYSITELIB}/visidata/pyobj.pyo
+${PYSITELIB}/visidata/regex.py
+${PYSITELIB}/visidata/regex.pyc
+${PYSITELIB}/visidata/regex.pyo
+${PYSITELIB}/visidata/search.py
+${PYSITELIB}/visidata/search.pyc
+${PYSITELIB}/visidata/search.pyo
+${PYSITELIB}/visidata/selection.py
+${PYSITELIB}/visidata/selection.pyc
+${PYSITELIB}/visidata/selection.pyo
+${PYSITELIB}/visidata/shell.py
+${PYSITELIB}/visidata/shell.pyc
+${PYSITELIB}/visidata/shell.pyo
+${PYSITELIB}/visidata/slide.py
+${PYSITELIB}/visidata/slide.pyc
+${PYSITELIB}/visidata/slide.pyo
+${PYSITELIB}/visidata/tidydata.py
+${PYSITELIB}/visidata/tidydata.pyc
+${PYSITELIB}/visidata/tidydata.pyo
+${PYSITELIB}/visidata/transpose.py
+${PYSITELIB}/visidata/transpose.pyc
+${PYSITELIB}/visidata/transpose.pyo
+${PYSITELIB}/visidata/urlcache.py
+${PYSITELIB}/visidata/urlcache.pyc
+${PYSITELIB}/visidata/urlcache.pyo
+${PYSITELIB}/visidata/utils.py
+${PYSITELIB}/visidata/utils.pyc
+${PYSITELIB}/visidata/utils.pyo
+${PYSITELIB}/visidata/vdtui.py
+${PYSITELIB}/visidata/vdtui.pyc
+${PYSITELIB}/visidata/vdtui.pyo
+${PYSITELIB}/visidata/vimkeys.py
+${PYSITELIB}/visidata/vimkeys.pyc
+${PYSITELIB}/visidata/vimkeys.pyo
+${PYSITELIB}/visidata/zscroll.py
+${PYSITELIB}/visidata/zscroll.pyc
+${PYSITELIB}/visidata/zscroll.pyo
+man/man1/vd.1
diff --git a/visidata/TODO b/visidata/TODO
new file mode 100644
index 0000000000..de42880f8e
--- /dev/null
+++ b/visidata/TODO
@@ -0,0 +1,6 @@
+- Running `vd' ends up with a:
+
+ AttributeError: '_curses.window' object has no attribute 'get_wch'
+
+ It seems that curses(3) has a get_wch(3) but py-curses does not recognize it.
+ Investigate further (that's probably a general py-curses problem)!
diff --git a/visidata/distinfo b/visidata/distinfo
new file mode 100644
index 0000000000..cf7e1d94f5
--- /dev/null
+++ b/visidata/distinfo
@@ -0,0 +1,7 @@
+$NetBSD$
+
+SHA1 (visidata-1.5.2.tar.gz) = 67ae888ef6f7a385bb5f8bf2bd446252ba9959e8
+RMD160 (visidata-1.5.2.tar.gz) = fa08b1d1434f1624bbe0789cd5725c0bff20c407
+SHA512 (visidata-1.5.2.tar.gz) = df236bb74909b3d0bbff012d20b01546ca9058038877a12e94fd2274d7b6465e68c0b652e37776e0b693916070c7185a773d54ead291c996bbb32625897bd4df
+Size (visidata-1.5.2.tar.gz) = 123785 bytes
+SHA1 (patch-visidata_vdtui.py) = 714357a9b384329b8527f0d98a469e04afa8303d
diff --git a/visidata/patches/patch-visidata_vdtui.py b/visidata/patches/patch-visidata_vdtui.py
new file mode 100644
index 0000000000..a6407dd541
--- /dev/null
+++ b/visidata/patches/patch-visidata_vdtui.py
@@ -0,0 +1,23 @@
+$NetBSD$
+
+- Make curses(3) mouse support optional
+
+--- visidata/vdtui.py.orig 2019-01-13 00:28:25.000000000 +0000
++++ visidata/vdtui.py
+@@ -2817,9 +2817,13 @@ colors = ColorMaker()
+ def setupcolors(stdscr, f, *args):
+ curses.raw() # get control keys instead of signals
+ curses.meta(1) # allow "8-bit chars"
+- curses.mousemask(-1) # even more than curses.ALL_MOUSE_EVENTS
+- curses.mouseinterval(0) # very snappy but does not allow for [multi]click
+- curses.mouseEvents = {}
++
++ try:
++ curses.mousemask(-1) # even more than curses.ALL_MOUSE_EVENTS
++ curses.mouseinterval(0) # very snappy but does not allow for [multi]click
++ curses.mouseEvents = {}
++ except:
++ pass
+
+ for k in dir(curses):
+ if k.startswith('BUTTON') or k == 'REPORT_MOUSE_POSITION':
Home |
Main Index |
Thread Index |
Old Index