{"id":15033162,"url":"https://github.com/wireviz/wireviz","last_synced_at":"2025-05-15T01:00:37.468Z","repository":{"id":37259867,"uuid":"265635506","full_name":"wireviz/WireViz","owner":"wireviz","description":"Easily document cables and wiring harnesses.","archived":false,"fork":false,"pushed_at":"2025-03-08T09:36:35.000Z","size":20723,"stargazers_count":4598,"open_issues_count":155,"forks_count":241,"subscribers_count":79,"default_branch":"master","last_synced_at":"2025-04-22T20:08:01.669Z","etag":null,"topics":["cables","connectors","hardware","wiring-diagram","wiring-harness"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wireviz.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-20T17:15:04.000Z","updated_at":"2025-04-20T19:42:35.000Z","dependencies_parsed_at":"2024-04-16T09:40:43.686Z","dependency_job_id":"b9399154-d9ed-4790-94e0-7bb69239cf6d","html_url":"https://github.com/wireviz/WireViz","commit_stats":{"total_commits":436,"total_committers":21,"mean_commits":"20.761904761904763","dds":"0.23623853211009171","last_synced_commit":"954c4f5f92b1d0531f6af0c318c60786b7906d42"},"previous_names":["wireviz/wireviz","formatc1702/wireviz"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireviz%2FWireViz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireviz%2FWireViz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireviz%2FWireViz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireviz%2FWireViz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wireviz","download_url":"https://codeload.github.com/wireviz/WireViz/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252882478,"owners_count":21819150,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cables","connectors","hardware","wiring-diagram","wiring-harness"],"created_at":"2024-09-24T20:20:16.480Z","updated_at":"2025-05-07T12:47:33.971Z","avatar_url":"https://github.com/wireviz.png","language":"Python","readme":"# WireViz\n\n\n[![PyPI - Version](https://img.shields.io/pypi/v/wireviz.svg?colorB=blue)](https://pypi.org/project/wireviz/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/wireviz.svg?)](https://pypi.org/project/wireviz/)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/wireviz)](https://pypi.org/project/wireviz/)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n## Summary\n\nWireViz is a tool for easily documenting cables, wiring harnesses and connector pinouts. It takes plain text, YAML-formatted files as input and produces beautiful graphical output (SVG, PNG, ...) thanks to [GraphViz](https://www.graphviz.org/). It handles automatic BOM (Bill of Materials) creation and has a lot of extra features.\n\n\n## Features\n\n* WireViz input files are fully text based\n  * No special editor required\n  * Human readable\n  * Easy version control\n  * YAML syntax\n  * UTF-8 input and output files for special character support\n* Understands and uses color abbreviations as per [IEC 60757](https://en.wikipedia.org/wiki/Electronic_color_code#Color_band_system) (black=BK, red=RD, ...)\n  \u003c!-- * Optionally outputs colors as abbreviation (e.g. 'YE'), full name (e.g. 'yellow') or hex value (e.g. '#ffff00'), with choice of UPPER or lower case (#158) --\u003e\n* Auto-generates standard wire color schemes and allows custom ones if needed\n  * [DIN 47100](https://en.wikipedia.org/wiki/DIN_47100) (WT/BN/GN/YE/GY/PK/BU/RD/BK/VT/...)\n  * [IEC 60757](https://en.wikipedia.org/wiki/Electronic_color_code#Color_band_system)   (BN/RD/OR/YE/GN/BU/VT/GY/WT/BK/...)\n  * [25 Pair Color Code](https://en.wikipedia.org/wiki/25-pair_color_code#Color_coding) (BUWH/WHBU/OGWH/WHOG/GNWH/WHGN/BNWH/...)\n  * [TIA/EIA 568 A/B](https://en.wikipedia.org/wiki/TIA/EIA-568#Wiring)  (Subset of 25-Pair, used in CAT-5/6/...)\n* Understands wire gauge in mm² or AWG\n  * Optionally auto-calculates equivalent gauge between mm² and AWG\n* Is suitable for both very simple cables, and more complex harnesses.\n* Allows for easy-autorouting for 1-to-1 wiring\n* Generates BOM (Bill of Materials)\n\n_Note_: WireViz is not designed to represent the complete wiring of a system. Its main aim is to document the construction of individual wires and harnesses.\n\n\n## Examples\n\n### Demo 01\n\n[WireViz input file](../examples/demo01.yml):\n\n```yaml\nconnectors:\n  X1:\n    type: D-Sub\n    subtype: female\n    pinlabels: [DCD, RX, TX, DTR, GND, DSR, RTS, CTS, RI]\n  X2:\n    type: Molex KK 254\n    subtype: female\n    pinlabels: [GND, RX, TX]\n\ncables:\n  W1:\n    gauge: 0.25 mm2\n    length: 0.2\n    color_code: DIN\n    wirecount: 3\n    shield: true\n\nconnections:\n  -\n    - X1: [5,2,3]\n    - W1: [1,2,3]\n    - X2: [1,3,2]\n  -\n    - X1: 5\n    - W1: s\n```\n\nOutput file:\n\n![Sample output diagram](../examples/demo01.png)\n\n[Bill of Materials](../examples/demo01.bom.tsv) (auto-generated)\n\n### Demo 02\n\n![](../examples/demo02.png)\n\n[Source](../examples/demo02.yml) - [Bill of Materials](../examples/demo02.bom.tsv)\n\n### Syntax, tutorial and example gallery\n\nRead the [syntax description](syntax.md) to learn about WireViz' features and how to use them.\n\nSee the [tutorial page](../tutorial/readme.md) for sample code, as well as the [example gallery](../examples/readme.md) to see more of what WireViz can do.\n\n\n## Usage\n\n### Installation\n\n#### Requirements\n\nWireViz requires Python 3.7 or later.\n\nWireWiz requires GraphViz to be installed in order to work. See the [GraphViz download page](https://graphviz.org/download/) for OS-specific instructions.\n\n_Note_: Ubuntu 18.04 LTS users in particular may need to separately install Python 3.7 or above, as that comes with Python 3.6 as the included system Python install.\n\n#### Installing the latest release\n\nThe latest WireViz release can be downloaded from [PyPI](https://pypi.org/project/wireviz/) with the following command:\n```\npip3 install wireviz\n```\n\n#### Installing the development version\n\nAccess to the current state of the development branch can be gained by cloning the repo and installing manually:\n\n```\ngit clone \u003crepo url\u003e\ncd \u003cworking copy\u003e\ngit checkout dev\npip3 install -e .\n```\n\nIf you would like to contribute to this project, make sure you read the [contribution guidelines](CONTRIBUTING.md)!\n\n### How to run\n\n```\n$ wireviz ~/path/to/file/mywire.yml\n```\n\nDepending on the options specified, this will output some or all of the following files:\n\n```\nmywire.gv         GraphViz output\nmywire.svg        Wiring diagram as vector image\nmywire.png        Wiring diagram as raster image\nmywire.bom.tsv    BOM (bill of materials) as tab-separated text file\nmywire.html       HTML page with wiring diagram and BOM embedded\n```\n\nWildcards in the file path are also supported to process multiple files at once, e.g.:\n```\n$ wireviz ~/path/to/files/*.yml\n```\n\nTo see how to specify the output formats, as well as additional options, run:\n\n```\n$ wireviz --help\n```\n\n\n### (Re-)Building the example projects\n\nPlease see the [documentation](buildscript.md) of the `build_examples.py` script for info on building the demos, examples and tutorial.\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md)\n\n\n## Status\n\nThis is very much a work in progress. Source code, API, syntax and functionality may change wildly at any time.\n\n\n## License\n\n[GPL-3.0](../LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwireviz%2Fwireviz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwireviz%2Fwireviz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwireviz%2Fwireviz/lists"}