Skip to main content

Run blockly workspaces directly, without the need to convert it to Python code.

Project description


GitHub Actions Build Status


PyPI Package latest release PyPI Wheel Supported versions Supported implementations

Run blockly workspaces directly, without the need to convert it to Python code.

  • Free software: MIT license


Currently, you must install the in-development version with (we are not on pypi yet):

pip install blockly-runner


To use the project:

from blockly_runner import execute_workspace_merge_all_roots, execute_workspace

# Result will contain all the variable updated to match their new value.
# If you have many block roots, you will get a global result.
result = execute_workspace_merge_all_roots(my_dict_workspace, {"var1": 1, "var2": "Hi"})

# If you have many block roots, you will get a list of result with as many element as you have roots.
results = execute_workspace(my_dict_workspace, {"var1": 1, "var2": "Hi"})

We currently support:

  • Logic with if, if/else, if/else if, negation, comparison operators, logic operations.

  • Basic math: create a number variable, basic math operations (+, -, *, /, ^).

  • Basic text: create a text variable.

  • Variable management: set a variable, access a variable, change a number variable by a delta.

The following exceptions can be raised:

  • UndefinedVariable if you try to access a variable before it is defined.

  • InvalidBlock if we encounter an invalid block. It shouldn’t happen if you pay attention in the interface ;-) And it’s there it’s easier to spot where this error comes from.

Contributions are welcomed to help us go further.


To run all the tests run:


Note, to combine the coverage data from all the tox environments run:


set PYTEST_ADDOPTS=--cov-append


PYTEST_ADDOPTS=--cov-append tox

Create a new release

You need flit to publish the release.

  1. Bump version in src/blockly_runner/

  2. Update the CHANGELOG.rst.

  3. Commit and push.

  4. Publish the package with flit publish.

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

blockly_runner-0.1.4.tar.gz (16.1 kB view hashes)

Uploaded source

Built Distribution

blockly_runner-0.1.4-py3-none-any.whl (6.2 kB view hashes)

Uploaded py3

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