MINT
MINT is a language to describe Microfluidic Hardware Netlists. MINT is the name of the Microfluidic Netlist language used to describe microfluidic devices for Fluigi to place and route. MINT is a flavor of (MHDL) Microfluidic Hardware Description Language that can be used to represent Microfluidic Circuits.
Installation
From pypi
pip install pymint
From Source
Clone this repository
git clone https://github.com/CIDARLAB/pymint
Go to the cloned directory and use poetry to install dependencies
poetry install
Installl it into the development environment
pip install .
Add as a development dependency
pip
pip install -e /path/to/pymint/repository
poetry
Add the following line into the pyproject.toml
-> [tool.poetry.dev-dependencies]
section:
[tool.poetry.dev-dependencies]
...
parchmint = {path = "/path/to/directory/pymint", develop=true}
Documentation
Documentation for the pymint
package is available at readthedocs. Since the device model used within pymint
is a parchmint
device, we recommend that you also check out the documentation for the parchmint
package.
Quick Start Example
from pymint.mintdevice import MINTDevice
import math
import random
# Open the file
mint_device = MINTDevice.from_mint_file("test.mint")
# List all the components in the file
for component in mint_device.device.components:
print(component.ID)
print("x size: ", component.xspan)
print("y size: ", component.yspan)
# List all the connections in the device
for connection in mint_device.device.connections:
print(connection.ID)
ANTLR Parser Generation
ANTLR (ANother Tool for Language Recognition) is a parser generator for reading, processing, executing, or translating structured text or binary files. We defined the MINT language syntax in grammar file mint.g4
that can be used by ANTLR to generates a parser and utilize the antlr package to automatically build and walk the parse tree.
Installation
To install and work with ANTLR, one can follow the instructions at the ANTLR Quick Start
antlr4 -o ./pymint/antlrgen -listener -visitor -Dlanguage=Python3 -lib . ./mint.g4
Other Resources
Visual Studio Code extension - Currently supports syntax highlighting, etc.
License
BSD 3-Clause 2022, CIDAR Lab