Source code for epicsdbbuilder.parameter
from . import recordset
__all__ = ['Parameter']
# A Parameter is used to wrap a template parameter before being assigned to a
# record field.
[docs]class Parameter:
    __ParameterNames = set()
    def __init__(self, name, description = '', default = None):
        # Ensure names aren't accidentially overwritten
        assert name not in self.__ParameterNames, \
            
'Parameter name "%s" already defined' % name
        self.__ParameterNames.add(name)
        self.__name = name
        self.__default = default
        # Add the description as metadata to the current record set
        lines = description.split('\n')
        recordset.recordset.AddHeaderLine(
            '#%% macro, %s, %s' % (name, lines[0]))
        for line in lines[1:]:
            recordset.AddHeaderLine('#  %s' % line)
    def __str__(self):
        if self.__default is None:
            return '$(%s)' % self.__name
        else:
            return '$(%s=%s)' % (self.__name, self.__default)
    def __repr__(self):
        return "Parameter" + str(self)[1:]
    def Validate(self, record, field):
        pass