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""" 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""" 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