Skip to main content

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)
  • 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:

Usage

  1. CLI Tool: Use the wandelscript CLI tool
  2. Extend Functionality: Add new plugins or built-ins to customize the scripting environment.
  3. Examples: Refer to the /examples folder 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wandelscript-0.5.4.tar.gz (115.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wandelscript-0.5.4-py3-none-any.whl (161.7 kB view details)

Uploaded Python 3

File details

Details for the file wandelscript-0.5.4.tar.gz.

File metadata

  • Download URL: wandelscript-0.5.4.tar.gz
  • Upload date:
  • Size: 115.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for wandelscript-0.5.4.tar.gz
Algorithm Hash digest
SHA256 3cccd0b461b4e7ed874f05673acc01a71f7e4dc03ba1685a4ed9f2cc52ff2f24
MD5 09f03edff5011c43908ce01eca155548
BLAKE2b-256 9e0eb8cf4d1b88f94fe2097b49e97b635713bfcab6203b3eb778ea4ec9c14512

See more details on using hashes here.

File details

Details for the file wandelscript-0.5.4-py3-none-any.whl.

File metadata

  • Download URL: wandelscript-0.5.4-py3-none-any.whl
  • Upload date:
  • Size: 161.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for wandelscript-0.5.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c895a47867b8ed1c3fac561a19de8bcefd5e3fd7acb4f9c572308fe79cc3f084
MD5 d9c152b9d8f7e28d87f1b4c05a8c6427
BLAKE2b-256 96570456650c5d1ad95c54172890e0f40601e61729aae651c7c667b4bf38196c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page