Skip to content

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

NameTypeDefaultDescription
flowgraph_pathstr-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 modules
result = 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

NameTypeDefaultDescription
git_urlstr-Git repository URL
branchstr"main"Git branch to build from
build_depslist[str] | NoneNoneExtra apt packages for compilation
cmake_argslist[str] | NoneNoneExtra cmake flags
base_imagestr | NoneNoneBase image (default: gnuradio-runtime:latest)
forceboolFalseRebuild even if image exists

Returns

Type: OOTInstallResult

Installation result with image tag.

Example

# Basic install
result = 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 dependencies
result = 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

NameTypeDefaultDescription
module_namestr-Module name to remove

Returns

Type: bool

True if successful.

Example

remove_oot_image(module_name="lora_sdr")
# Returns: True

build_multi_oot_image

Combine multiple OOT modules into a single Docker image.

Missing modules that exist in the catalog are auto-built first.

Parameters

NameTypeDefaultDescription
module_nameslist[str]-Module names to combine
forceboolFalseRebuild 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

NameTypeDefaultDescription
combo_keystr-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