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