main - feat: Implement block params update
This commit is contained in:
parent
5485413efd
commit
f8174d07a1
@ -1,5 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any, Dict
|
||||
|
||||
from gnuradio.grc.core.blocks.block import Block
|
||||
|
||||
from gnuradio_mcp.models import SINK, SOURCE, ParamModel, PortModel
|
||||
@ -13,8 +15,14 @@ class BlockMiddleware:
|
||||
def name(self) -> str:
|
||||
return self._block.name
|
||||
|
||||
# TODO: Check if rewrite is needed
|
||||
def set_param(self, param_name: str, param_value: Any):
|
||||
self._block.params[param_name].set_value(param_value)
|
||||
|
||||
def set_params(self, params: Dict[str, Any]):
|
||||
for param_name, param_value in params.items():
|
||||
self.set_param(param_name, param_value)
|
||||
|
||||
# TODO: Check if rewrite is needed
|
||||
@property
|
||||
def params(self) -> list[ParamModel]:
|
||||
return [ParamModel.from_param(param) for param in self._block.params.values()]
|
||||
|
||||
@ -34,6 +34,16 @@ def test_block_middleware_sources(block_middleware: BlockMiddleware):
|
||||
check_port_models(block_middleware.sources, block_middleware._block.sources, SOURCE)
|
||||
|
||||
|
||||
def test_block_middleware_set_param(block_middleware: BlockMiddleware):
|
||||
block_middleware.set_param("id", "my_custom_block_name")
|
||||
assert block_middleware._block.params["id"].get_value() == "my_custom_block_name"
|
||||
|
||||
|
||||
def test_block_middleware_set_params(block_middleware: BlockMiddleware):
|
||||
block_middleware.set_params({"id": "my_custom_block_name"})
|
||||
assert block_middleware._block.params["id"].get_value() == "my_custom_block_name"
|
||||
|
||||
|
||||
def check_param_models(block: Block, params: list[ParamModel]):
|
||||
assert params
|
||||
assert len(params) == len(block.params)
|
||||
Loading…
x
Reference in New Issue
Block a user