def attr_matches(self, text):
    import re

    force_complete = 1
    # Another option, seems to work great. Catches things like ''.<tab>
    m = re.match(r"(\S+(\.\w+)*)\.(\w*)$", text)

    if m:
        expr, attr = m.group(1, 3)
    else:
        # force match - eval anything that ends with colon
        if not force_complete:
            return []
                
        m2 = re.match(r"(.+)\.(\w*)$", self.lbuf)
        if not m2:
            return []
        expr, attr = m2.group(1,2)
        
            
    try:        
        obj = eval(expr, self.namespace)
    except:
        try:
            obj = eval(expr, self.global_namespace)
        except:
            return []

    words = dir2(obj)
    
    try:
        words = generics.complete_object(obj, words)
    except TryNext:
        pass
    # Build match list to return
    n = len(attr)
    res = ["%s.%s" % (expr, w) for w in words if w[:n] == attr ]
    return res
Returns the full parameter names list, just the exogenous random
dataset/ETHPy150Open ipython/ipython-py3k/IPython/quarantine/ipy_greedycompleter.py/attr_matches--crossover with--dataset/ETHPy150Open statsmodels/statsmodels/statsmodels/regression/mixed_linear_model.py/MixedLM._make_param_names