Maple is a library designed to write simple code that can check different attributes of a Model in Speckle.
Using Maple you can write test specs that check any parameter
or quantity inside the project model.
Maple can be integrated into Speckle Automate to run the quality check tests on a continuous integration and ensure project standards. See Maple-Automate-CI to check the full implementation of maple in Speckle Automate.
For a more detailed guide check out Getting started
Install the library from PyPi
pip install maple-specThen, create your main.py to test your specs locally
# main.py
import maple as mp
def spec_a():
mp.it("checks window height is greater than 2600 mm")
mp.get('category', 'Windows')\
.where('speckle_type',
'Objects.Other.Instance:Objects.Other.Revit.RevitInstance')\
.its('Height')\
.should('be.greater', 2600)
# Use the project and model id of one of your projects
mp.init_model(project_id="24fa0ed1c3", model_id="2696b4a381")
mp.run(spec_a)For this to work out of the box, you should have the Speckle Manager
installed and your account set-up, so Maple can fetch the data from your stream.
If not, alternatively you can set an environment variable called SPECKLE_TOKEN with a Speckle token that can read from streams, for example:
SPECKLE_TOKEN="your-secret-token"Finally run the file with python like so:
python main.pyCreate a development virtual environment:
python -m venv venv
source ./venv/bin/activateInstall the dev dependencies
pip install pytestRun pytest
Ensure build is installed:
python -m pip install --upgrade buildTo build a wheel run:
python -m build