Wandelscript definition, parser, type checker & runtime
Project description
Wandelscript
Introduction
Wandelscript is a robust framework designed for defining, parsing, type checking, and executing advanced scripting capabilities for robot automation. It integrates grammar-based parsing, runtime execution, and plugin extensibility, making it suitable for complex robot programming scenarios.
Features
- Grammar Parsing: The Wandelscript grammar is defined and easily extensible. It is powered by ANTLR4 to generate efficient parsers.
- Runtime Execution: Includes a runtime environment capable of executing Wandelscript programs with support for custom plugins and built-in functions.
- Extensible Plugins: Supports adding custom functionality via Python-based plugins for robot control, kinematics, vision, and more.
- Built-in Libraries: Provides libraries for mathematical operations, string manipulations, pose interpolations, and interaction with industrial systems like OPC UA.
- Examples: Comprehensive example scripts are available to demonstrate use cases such as collision handling, multi-robot coordination, and TCP manipulation.
- Testing: Includes a set of unit tests to validate the functionality of the built-in components and plugins.
Grammar
The Wandelscript grammar is defined under wandelscript/grammar/. To generate the parser, use the
following command:
cd wandelscript/grammar && uv run antlr4 -Dlanguage=Python3 -visitor *.g4
Structure
The repository is organized as follows:
- Core Modules:
runtime.py: Implements the execution context for Wandelscript.exception.py: Defines custom exceptions for Wandelscript.models.py: Contains data models for serialization and execution.metamodel.py: Facilitates runtime extensions and plugin registration.
- Built-ins: Found under
wandelscript/builtins, these are pre-defined plugins for:- Math operations (
math.py) - String manipulation (
string.py) - Robotics control (
controller.py)
- Math operations (
- Examples: Demonstrates Wandelscript's capabilities with real-world use cases in
wandelscript/examples/.
Dependencies
The project uses the uv package manager. Install the dependencies using:
uv sync
Key dependencies:
- Python 3.10+
- ANTLR4 for grammar processing
- wandelbots-nova for data types and interaction with robots
- Pydantic for data validation
Usage
- CLI Tool: Use the
wandelscriptCLI tool - Extend Functionality: Add new plugins or built-ins to customize the scripting environment.
- Examples: Refer to the
/examplesfolder for sample Wandelscript files.
CLI Tool
There is a CLI tool wandelscript, as well as its shortcut pendant ws that gets installed into
the Python environment when calling uv sync.
Example uses of the wandelscript CLI tool:
uv run wandelscript --help
uv run wandelscript my_script.cli
uv run ws my_script.cli # shortcut alternative to `uv run wandelscript`
See uv run wandelscript --help for information about available CLI arguments.
Contributing
Contributions are welcome! Here’s how you can help:
- Report bugs or suggest features via the issue tracker.
- Submit pull requests to improve code or documentation.
- Share example use cases or applications of Wandelscript.
Contact
Authors and contributors:
- Christoph Biering: Email
- Daniel Vorberg
- Dirk Sonnemann: Email
- Andreas Langenhagen: Email
- Mahsum Demir: Email
Feel free to reach out with questions, suggestions, or feedback!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wandelscript-0.9.0.tar.gz.
File metadata
- Download URL: wandelscript-0.9.0.tar.gz
- Upload date:
- Size: 114.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
073ec2c5a9af160ab533bad75bc1f559da3a997d52256d7f2707ddeee1902d78
|
|
| MD5 |
715ab42b49b99ddc8456f3c4da0528b3
|
|
| BLAKE2b-256 |
8ff240ffc0571fcb304206a5406b88838309a613b0b78e8ff656741c14168f11
|
File details
Details for the file wandelscript-0.9.0-py3-none-any.whl.
File metadata
- Download URL: wandelscript-0.9.0-py3-none-any.whl
- Upload date:
- Size: 161.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d584ded4d9ab61d68b0f2a5e3501a14321dccb4f63cf5c41b4e9484c3943530
|
|
| MD5 |
2d620be29317959e3b0288c908d85ca1
|
|
| BLAKE2b-256 |
d5c17696cff6cb944b8348709701c3c03a6782523b8c11215d5ea526695d6f7d
|