Skip to main content

A bitfield diagram renderer

Project description

A Python3 port of the javascript bit-field library by Aliaksei Chapyzhenka.

This package is also available as an extension for Sphinx: sphinxcontrib-bitfield.

Install

pip install bit_field

To install this package with JSON5 support:

pip install bit_field[JSON5]

Library usage

from bit_field import render, jsonml_stringify

reg = [
  {'bits': 8, 'name': 'data'}
]

jsonml = render(reg, hspace=888)
html = jsonml_stringify(jsonml)
# <svg...>

CLI Usage

bit_field [options] input > alpha.svg

options

input        : input JSON filename - must be specified always
--input      : input JSON filename (kept for compatibility)
--compact    : compact rendering mode
--vspace     : vertical space - default 80
--hspace     : horizontal space - default 640
--lanes      : rectangle lanes - default 2
--bits       : overall bitwidth - default 32
--fontfamily : - default sans-serif
--fontweight : - default normal
--fontsize   : - default 14
--strokewidth: - default 1
--hflip      : horizontal flip
--vflip      : vertical flip
--trim       : horizontal space available for a single character
--uneven:    : uneven lanes

--beautify   : use xml beautifier

--json5      : force json5 input format (need json5 python module)
--no-json5   : never use json5 input format

alpha.json

[
    { "name": "IPO",   "bits": 8, "attr": "RO" },
    {                  "bits": 7 },
    { "name": "BRK",   "bits": 5, "attr": "RW", "type": 4 },
    { "name": "CPK",   "bits": 1 },
    { "name": "Clear", "bits": 3 },
    { "bits": 8 }
]

alpha.svg

Heat Sink

Licensing

This work is based on original work by Aliaksei Chapyzhenka under the MIT license (see LICENSE-ORIGINAL).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bit_field-1.0.1.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

bit_field-1.0.1-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file bit_field-1.0.1.tar.gz.

File metadata

  • Download URL: bit_field-1.0.1.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for bit_field-1.0.1.tar.gz
Algorithm Hash digest
SHA256 2dd114661dd6f393771b59478ea0d35f02e985066c1d14e6200c508e60daf900
MD5 df2301edb7b49d7b094e6a43bba5a9b7
BLAKE2b-256 10577cd9318081a4e194e972a023aaa4b209c7e580a72341e6b1c4550d44f18f

See more details on using hashes here.

File details

Details for the file bit_field-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: bit_field-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 9.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for bit_field-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6dd785c1665d390305288fa5069fdcbbfc4db6ec9e4a82b7376f40739d20cab7
MD5 45cc59392982e92d46bad63db1589a34
BLAKE2b-256 0e9912a9895e1d494fa7b4a5be891c5ba633514ef016b64598de77ce778f6ff5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page