Skip to content

Commit

Permalink
textproc/py-wavedrom: New port
Browse files Browse the repository at this point in the history
This is a Python module and command line fully compatible with WaveDrom,
which is originally implemented in JavaScript. It is useful if you want
to generate wavedrom diagrams from a Python environment or simply don't
want to install the Node.js environment just to use WaveDrom as simple
command line.

WaveDromPy is for example used in sphinxcontrib-wavedrom to render
wavedrom for Sphinx documentation. While the original project renders
the diagrams in JavaScript in the browser, WaveDromPy renders them to
SVG files.

This tool is a direct translation of original Javascript file
WaveDrom.js to Python. No extra feature added. We seek to have it fully
compatible.

The tool WaveDromPy directly converts WaveDrom compatible JSON files
into SVG format.
  • Loading branch information
knobix committed Sep 2, 2023
1 parent 9276ea7 commit 451a4c9
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 0 deletions.
1 change: 1 addition & 0 deletions textproc/Makefile
Expand Up @@ -1621,6 +1621,7 @@
SUBDIR += py-ufal.udpipe
SUBDIR += py-unicodeitplus
SUBDIR += py-untangle
SUBDIR += py-wavedrom
SUBDIR += py-wcmatch
SUBDIR += py-whatthepatch
SUBDIR += py-whoosh
Expand Down
30 changes: 30 additions & 0 deletions textproc/py-wavedrom/Makefile
@@ -0,0 +1,30 @@
PORTNAME= wavedrom
DISTVERSION= 2.0.3.post3
CATEGORIES= textproc python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

MAINTAINER= kai@FreeBSD.org
COMMENT= WaveDrom compatible Python command line
WWW= https://github.com/wallento/wavedrompy

LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE

BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools_scm>0:devel/py-setuptools_scm@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}svgwrite>0:graphics/py-svgwrite@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}yaml>0:devel/py-yaml@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cairosvg>0:graphics/py-cairosvg@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pillow>0:graphics/py-pillow@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}xmldiff>0:textproc/py-xmldiff@${PY_FLAVOR}

USES= python
USE_PYTHON= autoplist concurrent distutils pytest
PYTEST_IGNORED_TESTS= test_upstream # Requires git and an internet connection

TEST_ENV= PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}

NO_ARCH= yes

.include <bsd.port.mk>
3 changes: 3 additions & 0 deletions textproc/py-wavedrom/distinfo
@@ -0,0 +1,3 @@
TIMESTAMP = 1693574032
SHA256 (wavedrom-2.0.3.post3.tar.gz) = 327b4d5dca593c81257c202fea516f7a908747fb11527c359f034f5b7af7f47b
SIZE (wavedrom-2.0.3.post3.tar.gz) = 137737
14 changes: 14 additions & 0 deletions textproc/py-wavedrom/pkg-descr
@@ -0,0 +1,14 @@
This is a Python module and command line fully compatible with WaveDrom, which
is originally implemented in JavaScript. It is useful if you want to generate
wavedrom diagrams from a Python environment or simply don't want to install the
Node.js environment just to use WaveDrom as simple command line.

WaveDromPy is for example used in sphinxcontrib-wavedrom to render wavedrom for
Sphinx documentation. While the original project renders the diagrams in
JavaScript in the browser, WaveDromPy renders them to SVG files.

This tool is a direct translation of original Javascript file WaveDrom.js to
Python. No extra feature added. We seek to have it fully compatible.

The tool WaveDromPy directly converts WaveDrom compatible JSON files into SVG
format.

0 comments on commit 451a4c9

Please sign in to comment.