main - feat: Implement block params update
This commit is contained in:
parent
5485413efd
commit
f8174d07a1
@ -1,5 +1,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from typing import Any, Dict
|
||||||
|
|
||||||
from gnuradio.grc.core.blocks.block import Block
|
from gnuradio.grc.core.blocks.block import Block
|
||||||
|
|
||||||
from gnuradio_mcp.models import SINK, SOURCE, ParamModel, PortModel
|
from gnuradio_mcp.models import SINK, SOURCE, ParamModel, PortModel
|
||||||
@ -13,8 +15,14 @@ class BlockMiddleware:
|
|||||||
def name(self) -> str:
|
def name(self) -> str:
|
||||||
return self._block.name
|
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
|
@property
|
||||||
def params(self) -> list[ParamModel]:
|
def params(self) -> list[ParamModel]:
|
||||||
return [ParamModel.from_param(param) for param in self._block.params.values()]
|
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)
|
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]):
|
def check_param_models(block: Block, params: list[ParamModel]):
|
||||||
assert params
|
assert params
|
||||||
assert len(params) == len(block.params)
|
assert len(params) == len(block.params)
|
||||||
Loading…
x
Reference in New Issue
Block a user