def computeSubchainAndTerminalValueAlongModules(self, rootValue, chainWithPosition): """ Return a ResultionResult or raise a PythonToForaConversionError """ ix = 1 chain = chainWithPosition.var position = chainWithPosition.pos subchain, terminalValue = chain[:ix], rootValue while PyforaInspect.ismodule( terminalValue) and self.terminal_value_filter(terminalValue): if ix >= len(chain): #we're terminating at a module terminalValue = Unconvertible(terminalValue) break if not hasattr(terminalValue, chain[ix]): raise Exceptions.PythonToForaConversionError( "Module %s has no member %s" % (str(terminalValue), chain[ix])) terminalValue = getattr(terminalValue, chain[ix]) ix += 1 subchain = chain[:ix] return ResolutionResult.resolution(subchain=subchain, resolution=terminalValue, position=position)
def _computeSubchainAndTerminalValueAlongModules(self, rootValue, chain): ix = 1 subchain, terminalValue = chain[:ix], rootValue while PyforaInspect.ismodule(terminalValue): if ix >= len(chain): #we're terminating at a module raise Exceptions.PythonToForaConversionError( "Can't convert the module %s" % str(terminalValue)) if not hasattr(terminalValue, chain[ix]): raise Exceptions.PythonToForaConversionError( "Module %s has no member %s" % (str(terminalValue), chain[ix])) terminalValue = getattr(terminalValue, chain[ix]) ix += 1 subchain = chain[:ix] return subchain, terminalValue
def _computeSubchainAndTerminalValueAlongModules(self, rootValue, chain): ix = 1 subchain, terminalValue = chain[:ix], rootValue while PyforaInspect.ismodule(terminalValue): if ix >= len(chain): #we're terminating at a module raise Exceptions.PythonToForaConversionError( "Can't convert the module %s" % str(terminalValue) ) if not hasattr(terminalValue, chain[ix]): raise Exceptions.PythonToForaConversionError( "Module %s has no member %s" % (str(terminalValue), chain[ix]) ) terminalValue = getattr(terminalValue, chain[ix]) ix += 1 subchain = chain[:ix] return subchain, terminalValue
def _computeSubchainAndTerminalValueAlongModules(rootValue, chainWithPosition): ix = 1 chain = chainWithPosition.var position = chainWithPosition.pos subchain, terminalValue = chain[:ix], rootValue while PyforaInspect.ismodule(terminalValue): if ix >= len(chain): #we're terminating at a module terminalValue = _Unconvertible() break if not hasattr(terminalValue, chain[ix]): raise Exceptions.PythonToForaConversionError( "Module %s has no member %s" % (str(terminalValue), chain[ix]) ) terminalValue = getattr(terminalValue, chain[ix]) ix += 1 subchain = chain[:ix] return subchain, terminalValue, position
def _computeSubchainAndTerminalValueAlongModules(rootValue, chainWithPosition): ix = 1 chain = chainWithPosition.var position = chainWithPosition.pos subchain, terminalValue = chain[:ix], rootValue while PyforaInspect.ismodule(terminalValue): if ix >= len(chain): #we're terminating at a module terminalValue = _Unconvertible() break if not hasattr(terminalValue, chain[ix]): raise Exceptions.PythonToForaConversionError( "Module %s has no member %s" % (str(terminalValue), chain[ix])) terminalValue = getattr(terminalValue, chain[ix]) ix += 1 subchain = chain[:ix] return subchain, terminalValue, position