{ "info": { "author": "Aliaksei Chapyzhenka, BreizhGeek, Kazuki Yamamoto, Stefan Wallentowitz", "author_email": "k4zuki@github.com, stefan@wallentowitz.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Build Tools" ], "description": "# WaveDromPy\n\nThis is a python module and command line fully compatible with [WaveDrom](https://wavedrom.com/), 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.\n\nWaveDromPy is for example used in [sphinxcontrib-wavedrom](https://pypi.org/project/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.\n\nThis tool is a direct translation of original Javascript file _WaveDrom.js_ to Python. No extra feature added. We seek to have it fully compatible.\n\nThe tool _WaveDromPy_ directly converts _WaveDrom_ compatible JSON files into SVG format.\n\n[![Build Status](https://travis-ci.org/wallento/wavedrompy.svg?branch=master)](https://travis-ci.org/wallento/wavedrompy)\n[![PyPI version](https://badge.fury.io/py/wavedrom.svg)](https://badge.fury.io/py/wavedrom)\n\n## Installation\n\nIt is most easy to just install wavedrom via pip/pypi:\n\n pip install wavedrom\n \nAlternatively you can install the latest version from this repository:\n\n pip install git+https://github.com/wallento/wavedrompy\n \nor from your local copy:\n\n pip install .\n\n## Usage\n\nYou can either use the tool from Python:\n\n import wavedrom\n svg = wavedrom.render(\"\"\"\n { \"signal\": [\n { \"name\": \"CK\", \"wave\": \"P.......\", \"period\": 2 },\n { \"name\": \"CMD\", \"wave\": \"x.3x=x4x=x=x=x=x\", \"data\": \"RAS NOP CAS NOP NOP NOP NOP\", \"phase\": 0.5 },\n { \"name\": \"ADDR\", \"wave\": \"x.=x..=x........\", \"data\": \"ROW COL\", \"phase\": 0.5 },\n { \"name\": \"DQS\", \"wave\": \"z.......0.1010z.\" },\n { \"name\": \"DQ\", \"wave\": \"z.........5555z.\", \"data\": \"D0 D1 D2 D3\" }\n ]}\"\"\")\n svg.saveas(\"demo1.svg\")\n \nThis will render a waveform as:\n\n![Example 1](https://raw.githubusercontent.com/wallento/wavedrompy/2e8568d50561f534133d036fee3bd35756f416d9/doc/demo1.svg?sanitize=true \"Example 1\")\n\nYou can find more examples [in the WaveDrom tutorial](https://wavedrom.com/tutorial.html).\n\nA second feature is that WaveDrom can render logic circuit diagrams:\n\n import wavedrom\n svg = wavedrom.render(\"\"\"\n { \"assign\":[\n [\"out\",\n [\"|\",\n [\"&\", [\"~\", \"a\"], \"b\"],\n [\"&\", [\"~\", \"b\"], \"a\"]\n ]\n ]\n ]}\"\"\")\n svg.saveas(\"demo2.svg\")\n \nThis will render a as:\n\n![Example 2](https://raw.githubusercontent.com/wallento/wavedrompy/2e8568d50561f534133d036fee3bd35756f416d9/doc/demo2.svg?sanitize=true \"Example 2\")\n\nYou can find more examples [in the WaveDrom tutorial2](https://wavedrom.com/tutorial2.html).\n\nFinally, wavedrom can draw registers as bitfields:\n\n import wavedrom\n svg = wavedrom.render(\"\"\"\n {\"reg\": [\n { \"name\": \"IPO\", \"bits\": 8, \"attr\": \"RO\" },\n { \"bits\": 7 },\n { \"name\": \"BRK\", \"bits\": 5, \"attr\": \"RW\", \"type\": 4 },\n { \"name\": \"CPK\", \"bits\": 1 },\n { \"name\": \"Clear\", \"bits\": 3 },\n { \"bits\": 8 }\n ]\n ]}\"\"\")\n svg.saveas(\"demo3.svg\")\n\n \nThis will render as:\n\n![Example 3](https://raw.githubusercontent.com/wallento/wavedrompy/2e8568d50561f534133d036fee3bd35756f416d9/doc/demo3.svg?sanitize=true \"Example 3\")\n\nThis mode is documented as part of the [bit-field](https://www.npmjs.com/package/bit-field) JavaScript package.\n\nAlternatively, WaveDromPy can be called from the command line:\n\n wavedrompy --input input.json --svg output.svg\n\n## Important notice\n\nThe command line uses Python's JSON interpreter that is more restrictive (coherent with the JSOC spec), while the JavaScript json is more relaxed:\n\n * All strings have to be written between quotes (\"\"),\n * Extra comma (,) not supported at end of lists or dictionaries\n \n## AsciiDoctor example\n\nAn _AsciiDoctor_ example is provided to directly generate timing diagrams from _AsciiDoctor_ formatted documents.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/wallento/wavedrompy", "keywords": "wavedrom svg", "license": "", "maintainer": "", "maintainer_email": "", "name": "wavedrom", "package_url": "https://pypi.org/project/wavedrom/", "platform": "", "project_url": "https://pypi.org/project/wavedrom/", "project_urls": { "Homepage": "https://github.com/wallento/wavedrompy" }, "release_url": "https://pypi.org/project/wavedrom/2.0.3.post2/", "requires_dist": null, "requires_python": "", "summary": "WaveDrom compatible python command line", "version": "2.0.3.post2" }, "last_serial": 5818253, "releases": { "0.0.6": [ { "comment_text": "", "digests": { "md5": "8cc060a2ee067a3af5e6a26ccd6b0757", "sha256": "599572cc501726ba8106b8132e5fae6033ae8c0cda1fd0c8f65f949f1168afd6" }, "downloads": -1, "filename": "wavedrom-0.0.6.tar.gz", "has_sig": false, "md5_digest": "8cc060a2ee067a3af5e6a26ccd6b0757", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 110260, "upload_time": "2018-11-16T05:56:39", "url": "https://files.pythonhosted.org/packages/db/2b/b8b650288eed92867abf739b664a1650521edadd57a5919c10e818aef5b2/wavedrom-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "4032ea916880d3a4b5ce91c435cb11a9", "sha256": "f3dad5056d602beac46dcd200c69e500413f857c7b07d0ef40bf45d7b1e7a1fe" }, "downloads": -1, "filename": "wavedrom-0.0.7.tar.gz", "has_sig": false, "md5_digest": "4032ea916880d3a4b5ce91c435cb11a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 115244, "upload_time": "2018-11-16T08:47:43", "url": "https://files.pythonhosted.org/packages/90/87/9b490229d17b14ce9acad7916b7d4fd86d8a6bcd181904cf860311037448/wavedrom-0.0.7.tar.gz" } ], "0.1": [ { "comment_text": "", "digests": { "md5": "13e804253a4b56f8aa66ebf714c59027", "sha256": "201cf3a5af207342310047d0379e2cba46321e6fc586df0b67bc56fa0732dc00" }, "downloads": -1, "filename": "wavedrom-0.1.tar.gz", "has_sig": false, "md5_digest": "13e804253a4b56f8aa66ebf714c59027", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 115254, "upload_time": "2018-11-20T15:14:13", "url": "https://files.pythonhosted.org/packages/1f/05/d698c736e07cac968fc770edb295c8df26d026d57d820425c4d6bb130eb2/wavedrom-0.1.tar.gz" } ], "1.8.0": [ { "comment_text": "", "digests": { "md5": "12ee313d662d8e846aedff0c9f1f424e", "sha256": "e58cf25c96d21c3b7201725ba8133ee2ea6da8d6b31076b61cb46bdf6c3c6061" }, "downloads": -1, "filename": "wavedrom-1.8.0.tar.gz", "has_sig": false, "md5_digest": "12ee313d662d8e846aedff0c9f1f424e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 128146, "upload_time": "2019-04-16T15:32:08", "url": "https://files.pythonhosted.org/packages/6a/7b/7b8aefcbf416affa040e1197823952e1dc9f8be421ac8b1480ac052e56f6/wavedrom-1.8.0.tar.gz" } ], "1.8.0.post1": [ { "comment_text": "", "digests": { "md5": "bec1b3c5b4c4ba130da5748457245b2a", "sha256": "6e0a5c050c56f1f551200a728163f47e9ccbeef935210d8197388d8c34194682" }, "downloads": -1, "filename": "wavedrom-1.8.0.post1.tar.gz", "has_sig": false, "md5_digest": "bec1b3c5b4c4ba130da5748457245b2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 128496, "upload_time": "2019-04-17T13:08:54", "url": "https://files.pythonhosted.org/packages/b3/8d/84a2119b7a0744d506d5655b8f907728ca41b39bd5f7e3598c5ab71a425e/wavedrom-1.8.0.post1.tar.gz" } ], "1.8.0.post2": [ { "comment_text": "", "digests": { "md5": "ab462fb9e03815e268368550546e4e82", "sha256": "3981a310544334338e1346cde2ce7e0e5e9fb45f67c8884472dff7009cade686" }, "downloads": -1, "filename": "wavedrom-1.8.0.post2.tar.gz", "has_sig": false, "md5_digest": "ab462fb9e03815e268368550546e4e82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 128505, "upload_time": "2019-04-18T12:21:05", "url": "https://files.pythonhosted.org/packages/1b/23/f6572cd477ac1e63bd2b1e115705eb4734b52c3599dd4e29f3fae63f61f8/wavedrom-1.8.0.post2.tar.gz" } ], "1.8.0.post3": [ { "comment_text": "", "digests": { "md5": "54cbd10d2de3c0a6a8e961b8449cff56", "sha256": "452d6a58b5dce07552ef8b70d5a3de777bcd62fae3e82f896be5b764a26e3939" }, "downloads": -1, "filename": "wavedrom-1.8.0.post3.tar.gz", "has_sig": false, "md5_digest": "54cbd10d2de3c0a6a8e961b8449cff56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 129049, "upload_time": "2019-05-21T07:56:01", "url": "https://files.pythonhosted.org/packages/ab/da/24162949fbbbe3d3ee735e3701915fdc6d564cc3e3736aee90506161aa2d/wavedrom-1.8.0.post3.tar.gz" } ], "1.8.0.post4": [ { "comment_text": "", "digests": { "md5": "77c71b06d4488c49af31476390cefc68", "sha256": "1afdbbd07f1b666284aa9c49359c4f080ec4babcbf607164e0987fce3079d182" }, "downloads": -1, "filename": "wavedrom-1.8.0.post4.tar.gz", "has_sig": false, "md5_digest": "77c71b06d4488c49af31476390cefc68", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 129453, "upload_time": "2019-05-25T11:41:39", "url": "https://files.pythonhosted.org/packages/5b/ef/3d563e21381c2f2171e026ed70806075da116a7d4c95db6f06f7a8761980/wavedrom-1.8.0.post4.tar.gz" } ], "1.8.0rc1": [ { "comment_text": "", "digests": { "md5": "e2d424aee77de42003c651772f0c6a96", "sha256": "13056fab77968e77325ce5c3b5361b29e37e8a0c7a39ac53bc5ff8378d7ab380" }, "downloads": -1, "filename": "wavedrom-1.8.0rc1.tar.gz", "has_sig": false, "md5_digest": "e2d424aee77de42003c651772f0c6a96", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 125963, "upload_time": "2018-11-27T08:54:44", "url": "https://files.pythonhosted.org/packages/88/e0/aae87acd02110e3454045150eea5c58836e8b1f40e93ac19aecec5359da1/wavedrom-1.8.0rc1.tar.gz" } ], "1.8.0rc2": [ { "comment_text": "", "digests": { "md5": "c5e731c381e97b7d4a73eeb61e1ceae8", "sha256": "2dd1fbd4055053c95dd60b176c45ec10c572ee14c1e4d57f33a9d946c977a664" }, "downloads": -1, "filename": "wavedrom-1.8.0rc2.tar.gz", "has_sig": false, "md5_digest": "c5e731c381e97b7d4a73eeb61e1ceae8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 126047, "upload_time": "2018-11-27T10:08:48", "url": "https://files.pythonhosted.org/packages/33/f9/4b55ed258e7c19f6ba10be04c268b3e12d8944c8d3c1bb093901c434aac8/wavedrom-1.8.0rc2.tar.gz" } ], "1.8.0rc3": [ { "comment_text": "", "digests": { "md5": "5a2dc744e1f7690dc82dcedb878a2fc7", "sha256": "16549c532c9265fd96b7b3bef733d91972f9fd4de89326536ab0cb035bc582ed" }, "downloads": -1, "filename": "wavedrom-1.8.0rc3.tar.gz", "has_sig": false, "md5_digest": "5a2dc744e1f7690dc82dcedb878a2fc7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 126053, "upload_time": "2018-11-27T10:12:27", "url": "https://files.pythonhosted.org/packages/ad/57/7fc000ee7fd964b11c013aa39b16efa3d89dca422f96cb7244606ec4cdea/wavedrom-1.8.0rc3.tar.gz" } ], "1.9.0rc1": [ { "comment_text": "", "digests": { "md5": "9bcb6e2bd0892f0900262b509fba9bb4", "sha256": "0f8d8067ba479862c5041a9f11c8562a360996976f67e70d4b93c999f4ca48a4" }, "downloads": -1, "filename": "wavedrom-1.9.0rc1.tar.gz", "has_sig": false, "md5_digest": "9bcb6e2bd0892f0900262b509fba9bb4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 129005, "upload_time": "2019-04-21T15:55:49", "url": "https://files.pythonhosted.org/packages/14/46/a2ad37bb259c7ea559a4fe94e9995559e1b5a6812aa5f54e5361e78a9455/wavedrom-1.9.0rc1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "e1ad899801886ab76fb37aca2efb99d4", "sha256": "64bcb3873c84db99fddd5366616ade502a8df4962bd15d5c0b144827232dfe20" }, "downloads": -1, "filename": "wavedrom-2.0.2.tar.gz", "has_sig": false, "md5_digest": "e1ad899801886ab76fb37aca2efb99d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 130422, "upload_time": "2019-08-30T14:45:22", "url": "https://files.pythonhosted.org/packages/2b/80/0b9cd8b686f9720acea47b83c57b724be919e50f1d7a7bc13b651fd7fd84/wavedrom-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "fafa96e4afe6a926559521d0b62ad545", "sha256": "cfaf88058cf3f18b4fbf5f2170a1831f91e39f3d4d584f46f873440969dc738e" }, "downloads": -1, "filename": "wavedrom-2.0.3.tar.gz", "has_sig": false, "md5_digest": "fafa96e4afe6a926559521d0b62ad545", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 132797, "upload_time": "2019-08-30T15:19:01", "url": "https://files.pythonhosted.org/packages/da/f5/5f2dfebc2dbc1bd2aeb1403d81dc7d9043f3e2c146b7c2fb2f0876d80c01/wavedrom-2.0.3.tar.gz" } ], "2.0.3.post1": [ { "comment_text": "", "digests": { "md5": "e531e242cc6bbfa08ba1d817cf17f46a", "sha256": "fb907fa293a55b7fa4d82445265c3ae7520d2d2353c3c16347360da39b74a992" }, "downloads": -1, "filename": "wavedrom-2.0.3.post1.tar.gz", "has_sig": false, "md5_digest": "e531e242cc6bbfa08ba1d817cf17f46a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 137155, "upload_time": "2019-09-05T20:09:40", "url": "https://files.pythonhosted.org/packages/c2/83/de5b09646fc1eeea38d8471d3ffcacc6db4360503e5fa05efc9c57ad143d/wavedrom-2.0.3.post1.tar.gz" } ], "2.0.3.post2": [ { "comment_text": "", "digests": { "md5": "cb703b962600cf0b6a88bb575d321c94", "sha256": "239b3435ff116b09007d5517eed755fc8591891b7271a1cd40db9e400c02448d" }, "downloads": -1, "filename": "wavedrom-2.0.3.post2.tar.gz", "has_sig": false, "md5_digest": "cb703b962600cf0b6a88bb575d321c94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 138930, "upload_time": "2019-09-12T05:10:47", "url": "https://files.pythonhosted.org/packages/07/e2/7e71626b60e5549d0dd2d07dd15569d71dbda4d648fc77293aa528dc6c49/wavedrom-2.0.3.post2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cb703b962600cf0b6a88bb575d321c94", "sha256": "239b3435ff116b09007d5517eed755fc8591891b7271a1cd40db9e400c02448d" }, "downloads": -1, "filename": "wavedrom-2.0.3.post2.tar.gz", "has_sig": false, "md5_digest": "cb703b962600cf0b6a88bb575d321c94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 138930, "upload_time": "2019-09-12T05:10:47", "url": "https://files.pythonhosted.org/packages/07/e2/7e71626b60e5549d0dd2d07dd15569d71dbda4d648fc77293aa528dc6c49/wavedrom-2.0.3.post2.tar.gz" } ] }