Skip to content
Domain Specific Languages in Python
Branch: master
Clone or download


Documentation Status

A framework for creating domain specific language libraries in Python.

Guiding Principles

The goal here is to share as much optimization and representation logic as possible, so that the world users exist in can be extended more easily without having to cause them to change their code.

For example, if someone comes up with a new way of executing linear algebra or wants to try out a new way of optimizing expressions, they should be able to write those things in a pluggable manner, so that users can try them out with minimal effort.

This means we have to explicitly expose the protocols of the different levels to foster distributed collaboration and reuse.


Either use repo2docker:

repo2docker -E .

Or get started with Conda/flit:

conda create -n metadsl jupyterlab
conda activate metadsl
pip install flit
flit install --symlink


This runs mypy and tests, and reports coverage.

pytest --cov
# open coverage file
open htmlcov/index.html

You can also test that the documentation notebooks run correctly, but this must be run separately from the code coverage:

pytest docs/*.ipynb --nbval


sphinx-autobuild docs docs/_build/html/
You can’t perform that action at this time.