Source code for malcolm.modules.system.defines

import re

from annotypes import Anno, add_call_types

from malcolm.modules.builtin.defines import ADefine, AName, Define

with Anno("name of yaml file (used to get BL prefix)"):
    AYamlName = str

with Anno("path to redirect table"):
    ARedirectPath = str


[docs]@add_call_types def redirector_iocs( name: AName, yamlname: AYamlName, file_path: ARedirectPath = "/dls_sw/prod/etc/redirector/redirect_table", ) -> ADefine: bl_prefix = yamlname.split("-")[0] with open(file_path, "r") as redirector: table = redirector.read() bl_iocs = re.findall(bl_prefix + "-[A-Z][A-Z]-IOC-[0-9][0-9] ", table) ioc_list = "" for ioc in bl_iocs: ioc_list += ioc return Define(name, ioc_list)