trepan/processor/complete.py
def complete_identifier(cmd, prefix):
    '''Complete an arbitrary expression.'''
    if not cmd.proc.curframe: return [None]
    # Collect globals and locals.  It is usually not really sensible to also
    # complete builtins, and they clutter the namespace quite heavily, so we
    # leave them out.
    ns = cmd.proc.curframe.f_globals.copy()
    ns.update(cmd.proc.curframe.f_locals)
    if '.' in prefix:
        # Walk an attribute chain up to the last part, similar to what
        # rlcompleter does.  This will bail if any of the parts are not
        # simple attribute access, which is what we want.
        dotted = prefix.split('.')
        try:
            obj = ns[dotted[0]]
            for part in dotted[1:-1]:
                obj = getattr(obj, part)
        except (KeyError, AttributeError):
            return []
        pre_prefix = '.'.join(dotted[:-1]) + '.'
        return [pre_prefix + n for n in dir(obj) if
                n.startswith(dotted[-1])]
    else:
        # Complete a simple name.
        return Mcomplete.complete_token(ns.keys(), prefix)
def complete_identifier(cmd, prefix):
    '''Complete an arbitrary expression.'''
    if not cmd.proc.curframe: return [None]
    # Collect globals and locals.  It is usually not really sensible to also
    # complete builtins, and they clutter the namespace quite heavily, so we
    # leave them out.
    ns = cmd.proc.curframe.f_globals.copy()
    ns.update(cmd.proc.curframe.f_locals)
    if '.' in prefix:
        # Walk an attribute chain up to the last part, similar to what
        # rlcompleter does.  This will bail if any of the parts are not
        # simple attribute access, which is what we want.
        dotted = prefix.split('.')
        try:
            obj = ns[dotted[0]]
            for part in dotted[1:-1]:
                obj = getattr(obj, part)
        except (KeyError, AttributeError):
            return []
        pre_prefix = '.'.join(dotted[:-1]) + '.'
        return [pre_prefix + n for n in dir(obj) if
                n.startswith(dotted[-1])]
    else:
        # Complete a simple name.
        return Mcomplete.complete_token(ns.keys(), prefix)
def complete_identifier ( cmd , prefix ) : if not cmd . proc . curframe : return [ None ] # Collect globals and locals.  It is usually not really sensible to also # complete builtins, and they clutter the namespace quite heavily, so we # leave them out. ns = cmd . proc . curframe . f_globals . copy ( ) ns . update ( cmd . proc . curframe . f_locals ) if '.' in prefix : # Walk an attribute chain up to the last part, similar to what # rlcompleter does.  This will bail if any of the parts are not # simple attribute access, which is what we want. dotted = prefix . split ( '.' ) try : obj = ns [ dotted [ 0 ] ] for part in dotted [ 1 : - 1 ] : obj = getattr ( obj , part ) except ( KeyError , AttributeError ) : return [ ] pre_prefix = '.' . join ( dotted [ : - 1 ] ) + '.' return [ pre_prefix + n for n in dir ( obj ) if n . startswith ( dotted [ - 1 ] ) ] else : # Complete a simple name. return Mcomplete . complete_token ( ns . keys ( ) , prefix )
Complete an arbitrary expression.
Complete an arbitrary expression .