OOT Tools
Tools for detecting, installing, and managing Out-of-Tree (OOT) modules.
detect_oot_modules
Detect which OOT modules a flowgraph requires.
Analyzes .py or .grc files to find OOT module dependencies.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
flowgraph_path | str | - | Path to a .py or .grc flowgraph file |
Returns
Type: OOTDetectionResult
Detection results with modules and recommended image.
Example
result = detect_oot_modules(flowgraph_path="lora_rx.py")# Returns: OOTDetectionResult(# detected_modules=["lora_sdr"],# unknown_blocks=[],# recommended_image="gnuradio-lora_sdr-runtime:latest"# )
# Multiple modulesresult = detect_oot_modules(flowgraph_path="multi_protocol_rx.py")# Returns: OOTDetectionResult(# detected_modules=["lora_sdr", "adsb"],# unknown_blocks=[],# recommended_image="gr-combo-adsb-lora_sdr:latest"# )install_oot_module
Install an OOT module into a Docker image.
Clones the git repo, compiles with cmake, and creates a reusable Docker image.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
git_url | str | - | Git repository URL |
branch | str | "main" | Git branch to build from |
build_deps | list[str] | None | None | Extra apt packages for compilation |
cmake_args | list[str] | None | None | Extra cmake flags |
base_image | str | None | None | Base image (default: gnuradio-runtime:latest) |
force | bool | False | Rebuild even if image exists |
Returns
Type: OOTInstallResult
Installation result with image tag.
Example
# Basic installresult = install_oot_module( git_url="https://github.com/tapparelj/gr-lora_sdr", branch="master")# Returns: OOTInstallResult(# success=True,# module_name="lora_sdr",# image_tag="gnuradio-lora_sdr-runtime:latest",# error=None# )
# With build dependenciesresult = install_oot_module( git_url="https://github.com/hboeglen/gr-dab", branch="maint-3.10", build_deps=["autoconf", "automake", "libtool", "libfaad-dev"], cmake_args=["-DENABLE_DOXYGEN=OFF"])list_oot_images
List all installed OOT module images.
Returns
Type: list[OOTImageInfo]
List of installed images.
Example
images = list_oot_images()# Returns: [# OOTImageInfo(# module_name="lora_sdr",# image_tag="gnuradio-lora_sdr-runtime:latest",# git_url="https://github.com/tapparelj/gr-lora_sdr",# branch="master"# ),# ...# ]remove_oot_image
Remove an OOT module image and its registry entry.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
module_name | str | - | Module name to remove |
Returns
Type: bool
True if successful.
Example
remove_oot_image(module_name="lora_sdr")# Returns: Truebuild_multi_oot_image
Combine multiple OOT modules into a single Docker image.
Missing modules that exist in the catalog are auto-built first.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
module_names | list[str] | - | Module names to combine |
force | bool | False | Rebuild even if exists |
Returns
Type: ComboImageResult
Combo image details.
Example
result = build_multi_oot_image(module_names=["lora_sdr", "adsb"])# Returns: ComboImageResult(# success=True,# image=ComboImageInfo(# combo_key="combo:adsb+lora_sdr",# image_tag="gr-combo-adsb-lora_sdr:latest",# modules=["adsb", "lora_sdr"]# ),# error=None# )list_combo_images
List all combined multi-OOT images.
Returns
Type: list[ComboImageInfo]
List of combo images.
Example
combos = list_combo_images()# Returns: [# ComboImageInfo(# combo_key="combo:adsb+lora_sdr",# image_tag="gr-combo-adsb-lora_sdr:latest",# modules=["adsb", "lora_sdr"]# ),# ...# ]remove_combo_image
Remove a combined image by its combo key.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
combo_key | str | - | Combo key (e.g., “combo:adsb+lora_sdr”) |
Returns
Type: bool
True if successful.
Example
remove_combo_image(combo_key="combo:adsb+lora_sdr")# Returns: True