From cc13a27310e4ab91ebf90ee2d9cd6e3c659e1bc0 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Sun, 30 Aug 2009 09:35:55 -0700 Subject: port and param types from an overloaded method --- grc/base/Param.py | 13 +++++++++---- grc/base/Port.py | 13 +++++++++---- grc/python/Param.py | 31 ++++++++++++++----------------- grc/python/Port.py | 8 +++----- 4 files changed, 35 insertions(+), 30 deletions(-) (limited to 'grc') diff --git a/grc/base/Param.py b/grc/base/Param.py index d1b22454f..21d306592 100644 --- a/grc/base/Param.py +++ b/grc/base/Param.py @@ -128,14 +128,12 @@ class Option(Element): class Param(Element): - def __init__(self, block, n, types): + def __init__(self, block, n): """ Make a new param from nested data. @param block the parent element @param n the nested odict - @param types a list of possible types """ - self._types = types #grab the data self._name = n.find('name') self._key = n.find('key') @@ -183,7 +181,7 @@ class Param(Element): The value must be evaluated and type must a possible type. """ Element.validate(self) - try: assert self.get_type() in self._types + try: assert self.get_type() in self.get_types() except AssertionError: self.add_error_message('Type "%s" is not a possible type.'%self.get_type()) def get_evaluated(self): raise NotImplementedError @@ -195,6 +193,13 @@ class Param(Element): """ raise NotImplementedError + def get_types(self): + """ + Get a list of all possible param types. + @throw NotImplementedError + """ + raise NotImplementedError + def get_color(self): return '#FFFFFF' def __str__(self): return 'Param - %s(%s)'%(self.get_name(), self.get_key()) def is_param(self): return True diff --git a/grc/base/Port.py b/grc/base/Port.py index 81076684a..494ea894f 100644 --- a/grc/base/Port.py +++ b/grc/base/Port.py @@ -21,15 +21,13 @@ from Element import Element class Port(Element): - def __init__(self, block, n, dir, types): + def __init__(self, block, n, dir): """ Make a new port from nested data. @param block the parent element @param n the nested odict @param dir the direction source or sink - @param types a list of possible types """ - self._types = types #build the port Element.__init__(self, block) #grab the data @@ -44,7 +42,7 @@ class Port(Element): The port must be non-empty and type must a possible type. """ Element.validate(self) - try: assert self.get_type() in self._types + try: assert self.get_type() in self.get_types() except AssertionError: self.add_error_message('Type "%s" is not a possible type.'%self.get_type()) def __str__(self): @@ -53,6 +51,13 @@ class Port(Element): if self.is_sink(): return 'Sink - %s(%s)'%(self.get_name(), self.get_key()) + def get_types(self): + """ + Get a list of all possible port types. + @throw NotImplementedError + """ + raise NotImplementedError + def is_port(self): return True def get_color(self): return '#FFFFFF' def get_name(self): return self._name diff --git a/grc/python/Param.py b/grc/python/Param.py index dd18d1c44..d574b513e 100644 --- a/grc/python/Param.py +++ b/grc/python/Param.py @@ -83,30 +83,27 @@ COMPLEX_TYPES = tuple(COMPLEX_TYPES + REAL_TYPES + INT_TYPES) REAL_TYPES = tuple(REAL_TYPES + INT_TYPES) INT_TYPES = tuple(INT_TYPES) -##possible param types -TYPES = [ - 'raw', 'enum', - 'complex', 'real', 'int', - 'complex_vector', 'real_vector', 'int_vector', - 'hex', 'string', 'bool', - 'file_open', 'file_save', - 'id', 'stream_id', - 'grid_pos', 'notebook', - 'import', -] - class Param(_Param): - _init = False - _hostage_cells = list() - - def __init__(self, block, n, **kwargs): + def __init__(self, block, n): _Param.__init__( self, block=block, n=n, - types=TYPES, ) + self._init = False + self._hostage_cells = list() + + def get_types(self): return ( + 'raw', 'enum', + 'complex', 'real', 'int', + 'complex_vector', 'real_vector', 'int_vector', + 'hex', 'string', 'bool', + 'file_open', 'file_save', + 'id', 'stream_id', + 'grid_pos', 'notebook', + 'import', + ) def __repr__(self): """ diff --git a/grc/python/Port.py b/grc/python/Port.py index 3214d937a..a714844ef 100644 --- a/grc/python/Port.py +++ b/grc/python/Port.py @@ -49,12 +49,9 @@ def _get_source_from_virtual_source_port(vsp, traversed=[]): ) except: raise Exception, 'Could not resolve source for virtual source port %s'%vsp -##possible port types -TYPES = ['complex', 'float', 'int', 'short', 'byte', 'msg', ''] - class Port(_Port): - def __init__(self, block, n, dir, **kwargs): + def __init__(self, block, n, dir): """ Make a new port from nested data. @param block the parent element @@ -75,12 +72,13 @@ class Port(_Port): block=block, n=n, dir=dir, - types=TYPES, ) self._nports = n.find('nports') or '' self._vlen = n.find('vlen') or '' self._optional = bool(n.find('optional')) + def get_types(self): return ('complex', 'float', 'int', 'short', 'byte', 'msg', '') + def validate(self): _Port.validate(self) try: assert self.get_enabled_connections() or self.get_optional() -- cgit