feat: referentiel projets dynamique + validation nommage by design
Durcit la convention de nommage des projets (dérive constatée : 'Sliding Automation', 'code_versioning'... au lieu des formes canoniques). - trilium_api.py : projets_canoniques() lit le référentiel = valeurs du label projet sur les notes de type=projet (source unique, pas de constante en dur). Note-projet CodeVersioning créée (manquait). - mcp_server.py : _valider_projet() branché dans les 6 tools de création (add_decision/history/backlog, new_conversation, create_entite, add_skill). Refuse un projet non canonique (suggestion si faute) ou inconnu (renvoi au processus de création de projet). Ne verrouille pas si référentiel illisible. - lint_audit.py : VAL-nommage aligné sur le référentiel (attrape casse, espace ET snake_case ; l'ancien 'contient un espace' ratait code_versioning). - Données : 79 notes ré-étiquetées vers les 3 formes canoniques. Quality by design : l'erreur de nommage devient impossible à l'écriture, le Lint n'est plus que le filet de sécurité.
This commit is contained in:
+133
@@ -0,0 +1,133 @@
|
||||
Metadata-Version: 2.1
|
||||
Name: wavedrom
|
||||
Version: 2.0.3.post3
|
||||
Summary: WaveDrom compatible python command line
|
||||
Home-page: https://github.com/wallento/wavedrompy
|
||||
Author: Aliaksei Chapyzhenka, BreizhGeek, Kazuki Yamamoto, Stefan Wallentowitz
|
||||
Author-email: k4zuki@github.com, stefan@wallentowitz.de
|
||||
License: UNKNOWN
|
||||
Keywords: wavedrom svg
|
||||
Platform: UNKNOWN
|
||||
Classifier: Development Status :: 4 - Beta
|
||||
Classifier: Intended Audience :: Developers
|
||||
Classifier: Topic :: Software Development :: Build Tools
|
||||
Classifier: License :: OSI Approved :: MIT License
|
||||
Classifier: Programming Language :: Python :: 2
|
||||
Classifier: Programming Language :: Python :: 2.7
|
||||
Classifier: Programming Language :: Python :: 3
|
||||
Classifier: Programming Language :: Python :: 3.3
|
||||
Classifier: Programming Language :: Python :: 3.4
|
||||
Classifier: Programming Language :: Python :: 3.5
|
||||
Classifier: Programming Language :: Python :: 3.6
|
||||
Classifier: Programming Language :: Python :: 3.7
|
||||
Description-Content-Type: text/markdown
|
||||
Provides-Extra: test
|
||||
License-File: LICENSE
|
||||
|
||||
# WaveDromPy
|
||||
|
||||
This 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.
|
||||
|
||||
WaveDromPy 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.
|
||||
|
||||
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.
|
||||
|
||||
[](https://travis-ci.org/wallento/wavedrompy)
|
||||
[](https://badge.fury.io/py/wavedrom)
|
||||
|
||||
## Installation
|
||||
|
||||
It is most easy to just install wavedrom via pip/pypi:
|
||||
|
||||
pip install wavedrom
|
||||
|
||||
Alternatively you can install the latest version from this repository:
|
||||
|
||||
pip install git+https://github.com/wallento/wavedrompy
|
||||
|
||||
or from your local copy:
|
||||
|
||||
pip install .
|
||||
|
||||
## Usage
|
||||
|
||||
You can either use the tool from Python:
|
||||
|
||||
import wavedrom
|
||||
svg = wavedrom.render("""
|
||||
{ "signal": [
|
||||
{ "name": "CK", "wave": "P.......", "period": 2 },
|
||||
{ "name": "CMD", "wave": "x.3x=x4x=x=x=x=x", "data": "RAS NOP CAS NOP NOP NOP NOP", "phase": 0.5 },
|
||||
{ "name": "ADDR", "wave": "x.=x..=x........", "data": "ROW COL", "phase": 0.5 },
|
||||
{ "name": "DQS", "wave": "z.......0.1010z." },
|
||||
{ "name": "DQ", "wave": "z.........5555z.", "data": "D0 D1 D2 D3" }
|
||||
]}""")
|
||||
svg.saveas("demo1.svg")
|
||||
|
||||
This will render a waveform as:
|
||||
|
||||

|
||||
|
||||
You can find more examples [in the WaveDrom tutorial](https://wavedrom.com/tutorial.html).
|
||||
|
||||
A second feature is that WaveDrom can render logic circuit diagrams:
|
||||
|
||||
import wavedrom
|
||||
svg = wavedrom.render("""
|
||||
{ "assign":[
|
||||
["out",
|
||||
["|",
|
||||
["&", ["~", "a"], "b"],
|
||||
["&", ["~", "b"], "a"]
|
||||
]
|
||||
]
|
||||
]}""")
|
||||
svg.saveas("demo2.svg")
|
||||
|
||||
This will render a as:
|
||||
|
||||

|
||||
|
||||
You can find more examples [in the WaveDrom tutorial2](https://wavedrom.com/tutorial2.html).
|
||||
|
||||
Finally, wavedrom can draw registers as bitfields:
|
||||
|
||||
import wavedrom
|
||||
svg = wavedrom.render("""
|
||||
{"reg": [
|
||||
{ "name": "IPO", "bits": 8, "attr": "RO" },
|
||||
{ "bits": 7 },
|
||||
{ "name": "<o>B</o><b>R<i>K</i></b>", "bits": 5, "attr": "RW", "type": 4 },
|
||||
{ "name": "CPK", "bits": 1 },
|
||||
{ "name": "Clear", "bits": 3 },
|
||||
{ "bits": 8 }
|
||||
]
|
||||
]}""")
|
||||
svg.saveas("demo3.svg")
|
||||
|
||||
|
||||
This will render as:
|
||||
|
||||

|
||||
|
||||
This mode is documented as part of the [bit-field](https://www.npmjs.com/package/bit-field) JavaScript package.
|
||||
|
||||
Alternatively, WaveDromPy can be called from the command line:
|
||||
|
||||
wavedrompy --input input.json --svg output.svg
|
||||
|
||||
## Important notice
|
||||
|
||||
The command line uses Python's JSON interpreter that is more restrictive (coherent with the JSOC spec), while the JavaScript json is more relaxed:
|
||||
|
||||
* All strings have to be written between quotes (""),
|
||||
* Extra comma (,) not supported at end of lists or dictionaries
|
||||
|
||||
## AsciiDoctor example
|
||||
|
||||
An _AsciiDoctor_ example is provided to directly generate timing diagrams from _AsciiDoctor_ formatted documents.
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user