Source code for pylab_ml.ident

import gc
import inspect

"""
ident package, provides Ident() class for multiple inheritance 'identity' functionality
and stand-alone get_names() function to get list of assignemt identifiers
"""


[docs] def find_names(obj): """ find_names(obj) returns list of identifiers strings, lhs of = assignments to obj Returns ------- obj_names : list of str List of identifier strings """ frame = inspect.currentframe() for frame in iter(lambda: frame.f_back, None): frame.f_locals obj_names = [] for referrer in gc.get_referrers(obj): if isinstance(referrer, dict): for k, v in referrer.items(): if v is obj: obj_names.append(k) return obj_names
[docs] class Ident(): """Ident class to determine identity of identifiers to which class instances assigned"""
[docs] def find_names(self): """ find_names() returns list of identifiers strings, lhs of = assignments Returns ------- obj_names : list of str List of identifier strings """ frame = inspect.currentframe() for frame in iter(lambda: frame.f_back, None): frame.f_locals obj_names = [] for referrer in gc.get_referrers(self): if isinstance(referrer, dict): for k, v in referrer.items(): if v is self: obj_names.append(k) return obj_names