| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

PropertyProxy Namespace Reference


Classes

class  PropertyProxy
class  GaudiHandlePropertyProxyBase
class  GaudiHandlePropertyProxy
class  GaudiHandleArrayPropertyProxy

Functions

def derives_from
def _isCompatible
def PropertyProxyFactory

Variables

list __all__ = [ 'PropertyProxy', 'GaudiHandlePropertyProxy', 'GaudiHandleArrayPropertyProxy' ]
tuple log = logging.getLogger( 'PropertyProxy' )

Function Documentation

def PropertyProxy::derives_from (   derived,
  base 
)

A string version of isinstance().
<derived> is either an object instance, or a type
<base>    is a string containing the name of the base class (or <derived> class)

Definition at line 19 of file PropertyProxy.py.

00019                               :
00020    """A string version of isinstance().
00021    <derived> is either an object instance, or a type
00022    <base>    is a string containing the name of the base class (or <derived> class)"""
00023    if not isinstance(derived,type): derived=type(derived)
00024    if derived.__name__ == base: return True
00025    for b in derived.__bases__:
00026       if derives_from(b,base): return True
00027 
00028    return False
00029 
def _isCompatible( tp, value ):

def PropertyProxy::_isCompatible (   tp,
  value 
) [private]

Definition at line 30 of file PropertyProxy.py.

00030                               :
00031    errmsg = "received an instance of %s, but %s expected" % (type(value),tp)
00032 
00033    if derives_from(value, 'PropertyReference'):
00034        # TODO: implement type checking for references
00035        return value # references are valid
00036    if ( tp is str ):
00037        if ( type(value) is str ) or derives_from(value, 'Configurable'):
00038            # we can set string properties only from strings or configurables
00039            return value
00040        else:
00041            raise ValueError( errmsg )
00042    elif ( tp in [ list, tuple, dict ] ):
00043        if ( type(value) is tp ):
00044            # We need to check that the types match for lists, tuples and
00045            # dictionaries (bug #34769).
00046            return value
00047        else:
00048            raise ValueError( errmsg )
00049    elif derives_from(tp, 'Configurable'):
00050        return value
00051    else:
00052        # all other types: accept if conversion allowed
00053        try:
00054            dummy = tp( value )
00055        except (TypeError,ValueError):
00056            raise ValueError( errmsg )
00057 
00058    return dummy         # in case of e.g. classes with __int__, __iter__, etc. implemented
00059 
00060 
class PropertyProxy( object ):

def PropertyProxy::PropertyProxyFactory (   descr,
  doc,
  default 
)

Definition at line 345 of file PropertyProxy.py.

00345                                                :
00346 #   print "PropertyProxyFactory( %s, %r )" % (descr.__name__,default)
00347    if isinstance(default,GaudiHandleArray):
00348       return GaudiHandleArrayPropertyProxy( descr, doc, default )
00349 
00350    if isinstance(default,GaudiHandle):
00351       return GaudiHandlePropertyProxy( descr, doc, default )
00352 
00353    return PropertyProxy( descr, doc, default )
   return PropertyProxy( descr, doc, default )


Variable Documentation

list PropertyProxy::__all__ = [ 'PropertyProxy', 'GaudiHandlePropertyProxy', 'GaudiHandleArrayPropertyProxy' ] [static]

Definition at line 6 of file PropertyProxy.py.

tuple PropertyProxy::log = logging.getLogger( 'PropertyProxy' ) [static]

Definition at line 13 of file PropertyProxy.py.

| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 19:57:20 2011 for GaudiKernel by doxygen 1.4.7