This is a bug, thanks for reporting it. Ops.In() needs to check for IPythonContainer before checking for IDictionary to detect the overridden method. I've opened bug 7426 for this (http://www.codeplex.com/IronPython/WorkItem/View.aspx?WorkItemId=7426).
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Sylvain Hellegouarch Sent: Thursday, January 18, 2007 7:56 AM To: Discussion of IronPython Subject: [IronPython] Potential issue with the 'in' construction? Hi folks, Say I have the following class: class Test(dict): def __getitem__(self, key): print "__gelitem__ called" return dict.__getitem__(self, key.title()) def __setitem__(self, key, value): print "__selitem__ called" dict.__setitem__(self, key.title(), value) def __delitem__(self, key): print "__delitem__ called" dict.__delitem__(self, key.title()) def __contains__(self, key): print "__contains__ called" return dict.__contains__(self, key.title()) def has_key(self, key): print "has_key called" return dict.__contains__(self, key.title()) Now say I have this code: if __name__ == "__main__": u = Test() u['simple'] = 'text' print u.keys() print 'simple' in u print u.__contains__('simple') print u.has_key('simple') print u['simple'] del u['simple'] I will get the following output: __selitem__ called ['Simple'] False __contains__ called True has_key called True __gelitem__ called text __delitem__ called As you can see all the overridden methods were correctly called except the __contains__ on 'in' construction. The same test with CPython: __selitem__ called ['Simple'] __contains__ called True __contains__ called True has_key called True __gelitem__ called text __delitem__ called In that case everything is as I expected. So could there be a problem on the way IP manages "in"? This looks like a minor bug but prevent me from running CherryPy 3 which uses the same type of Case Insensitive dict to handle easily HTTP headers. Thoughts on a workaround or fix? - Sylvain _______________________________________________ users mailing list users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com _______________________________________________ users mailing list users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com