MPDL interpreter for Python
MPDL
MPDL (Mondrian Painting Description Language) is an esoteric language created by Arnaud Marguerat to describe Piet Mondrian abstract paintings.
Syntax
MPDL operates on a stack of rectangles and outputs a square image. The stack is initialised with a single rectangle filling the whole image. There are 3 commands:
v<integer 0-100>: Pop a rectangle and split it vertically at the position given by the argument as percentage, rounded down. Push the left and right rectangles, in this order.
h<integer 0-100>: Split horizontally. Push the top and bottom rectangles, in this order.
c<integer 1-4>: Pop a rectangle and paint it a colour:
1: white
2: red
3: blue
4: yellow
Rectangles are drawn with a black border.
Example
The sample program:
v25 h71 v93 h50 c4 c1 c1 c2 h71 c3 h44 c1 c1
run with canvas size 256px and border width 3px, outputs
How to install
Installing from distribution
It’s usually easiest to get the package from the pip repository:
pip install mpdl
Installing from source
To install from source, clone the source repo and run the setup script:
git clone https://github.com/LeopoldTal/mpdl-py.git cd mpdl-py pip install -e .
Running the tests
Run tests in the root directory with:
py.test
To generate a coverage report:
py.test --cov --cov-branch --cov-report=term-missing
How to use
Usage:
mpdl [-o OUT] [-s SIZE] [-b BORDER] path/to/source_file.mpdl
Outputs an ASCII PPM image with colour depth 1.
Arguments:
-o: Path to output file. Default out.ppm.
-s: Side length of square image in pixels. Default 256.
-b: Thickness of rectangle borders in pixels. Default 3.
Licence
MIT. See LICENSE file.
Credits
Developer
mpdl-py is developed by Leopold T. de Gaillande.
Dependencies
Release files for mpdl 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mpdl-1.0.0.tar.gz | 12.8 kB | Details |
Release files / mpdl-1.0.0.tar.gz
| Download URL | mpdl-1.0.0.tar.gz |
|---|---|
| Size | 12.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b47ec2cafb327b9ad1cc29a536f69f04036aefc5d5170bc45c2c98d6068a0b84
|
|
BLAKE2b-256 checksum How to use checksums |
a2514a3bb0c448100bf24373f0bc7239c0f778dd7d85200751c7bcd39c9e32d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Python-urllib/3.5
|