
from symbolic.instrumentation import whichBranch
python_ord = ord

def se_ord(obj):
    __foo = hasattr(obj, """__ord__""")
    if __foo:
        whichBranch(True)
        return obj.__ord__()
    else:
        whichBranch(False)
        return python_ord(obj)
ord = se_ord

class SeDict(dict, ):

    def __init__(self, *args, **kwargs):
        dict.__init__(self)
        self.update(*args, **kwargs)

    def has_key(self, key):
        for k in self.keys():
            if (k == key):
                whichBranch(True)
                return True
            else:
                whichBranch(False)
        return False