[issue8699] Equality and hashing for functools.partial

Daniel Urban report at bugs.python.org
Wed May 12 17:00:50 CEST 2010


New submission from Daniel Urban <urban.dani+py at gmail.com>:

On python-dev came up an idea [1] to support equality (== and !=) and hashing by functools.partial instances.  Van Lindberg provided an implementation written in Python [2].  I've made a very similar implementation in C (in Modules/_functoolsmodule.c).  The Python equivalent of my code is in Lib/test/test_functools.py as the PythonPartialCls class.  The hashing differs a little from Van Lindberg's implementation: I'm computing the "normal form" of the dict as the sorted list of its items (not as the sorted list of the keys followed by the items).  (It was easier to implement this way.)

I haven't made a lot of Python programming in C, so I'm not sure I made everything in the right way (especially the reference counting).  Anyway, I'm attaching my patch.  I'd appreciate every suggestion, and will try to correct my mistakes.
Thanks!

[1] http://mail.python.org/pipermail/python-dev/2010-May/099981.html
[2] http://mail.python.org/pipermail/python-dev/2010-May/099996.html

----------
components: Extension Modules
files: partial_eq_hash.diff
keywords: patch
messages: 105591
nosy: durban
priority: normal
severity: normal
status: open
title: Equality and hashing for functools.partial
type: feature request
versions: Python 3.2
Added file: http://bugs.python.org/file17311/partial_eq_hash.diff

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue8699>
_______________________________________


More information about the Python-bugs-list mailing list