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