24 lines
590 B
Python
24 lines
590 B
Python
from gnuradio.grc.core.base import Element
|
|
|
|
from gnuradio_mcp.models import ErrorModel
|
|
from gnuradio_mcp.utils import format_error_message
|
|
|
|
|
|
class ElementMiddleware:
|
|
def __init__(self, element: Element):
|
|
self._element = element
|
|
|
|
def _rewrite(self):
|
|
self._element.rewrite()
|
|
|
|
def validate(self):
|
|
self._rewrite()
|
|
self._element.validate()
|
|
|
|
def get_all_errors(self) -> list[ErrorModel]:
|
|
self.validate()
|
|
return [
|
|
format_error_message(elem, msg)
|
|
for elem, msg in self._element.iter_error_messages()
|
|
]
|