Skip to content
v0.2.1

Plugin Environment

Ocelescope plugins run in a fixed Python environment provided by the Ocelescope runtime.
Plugins can only rely on packages that are available in the Ocelescope environment.

If you need a package that is not available in the plugin environment, please open a package request on GitHub.

Ocelescope exposes an optional dependency group for plugin-related packages.
You can install it with:

Terminal window
pip install "ocelescope[plugin]"

This is the recommended way to install packages that are intended to be available in the shared plugin environment.

If your plugin needs a dependency that is not available in the shared plugin environment, you can bundle wheel files directly inside the plugin.

This is especially useful for compiled packages such as Rust bindings.

Store the wheels inside a wheels/ folder in your plugin package:

Terminal window
my-plugin/
├── src/
└── my_plugin/
├── __init__.py
├── plugin.py
└── wheels/
├── some_package-1.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
└── some_package-1.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
└── pyproject.toml

After building, the plugin ZIP should look like this:

Terminal window
MyPlugin.zip/
└── my_plugin/
├── __init__.py
├── plugin.py
└── wheels/
├── some_package-1.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
└── some_package-1.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Build wheels that are compatible with Python 3.13.
If you want to support both amd64 and arm64, include one wheel for each platform.