MutableDict.setdefault doesn't return the new value
Issue #3093
resolved
MutableDict.setdefault was recently changed to properly propagate changes, but it broke the dictionary interface by not returning the value. You should be able to do that with a dict:
a = {} a.setdefault('b', 1) += 1
But with the current MutableDict behavior, it will fail with a NoneError.
Comments (11)
-
reporter -
repo owner - changed milestone to 0.9.7
-
repo owner -
repo owner - changed status to resolved
changelog, fixes
#3093→ <<cset 961ede05109e>>
-
repo owner changelog, fixes
#3093→ <<cset c8fe539ffb24>>
-
repo owner - changed status to open
setdefault() was added in unreleased 0.8.7 in
#3051cf1ba8e101665231c527b so this has to be backported. -
repo owner - changed status to resolved
→ <<cset a7ed17e71437>>
-
repo owner - forwards-port changelog for ref
#3093
→ <<cset 81f5631b4422>>
- forwards-port changelog for ref
-
repo owner - forwards-port changelog for ref
#3093
→ <<cset 889013529feb>>
- forwards-port changelog for ref
-
repo owner - changed milestone to 0.9.8
-
repo owner - changed milestone to 0.9.7
- Log in to comment
Opened https://bitbucket.org/zzzeek/sqlalchemy/pull-request/24 fixing the problem.