[Python-Dev] Deleting with setting C API functions
Nick Coghlan
ncoghlan at gmail.com
Wed Dec 2 01:16:55 EST 2015
More information about the Python-Dev mailing list
Wed Dec 2 01:16:55 EST 2015
- Previous message (by thread): [Python-Dev] Deleting with setting C API functions
- Next message (by thread): [Python-Dev] Deleting with setting C API functions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 2 December 2015 at 01:50, Serhiy Storchaka <storchaka at gmail.com> wrote: > On 25.11.15 08:39, Nick Coghlan wrote: >> So it looks to me like replicating the NULL-handling behaviour of the >> slots in the public Set* APIs was intentional, and it's just the >> documentation of that detail that was missed (since most folks >> presumably use the Del* convenience APIs instead). > > I'm not sure. This looks rather as implementation detail to me. There cases > found by you are the only cases in the core/stdlib that call > PyObject_SetAttr with third argument is NULL. Tests are passed after > replacing Set* functions with Del* functions in these cases and making Set* > functions to reject value is NULL. [1] Which means at the very least, folks relying on the current behaviour are relying on untested functionality, and would be better of switching to the tested APIs regardless of what happens on the deprecation front. > Wouldn't be worth to deprecate deleting with Set* functions? Neither other > abstract Set* APIs, not concrete Set* APIs don't support deleting. Deleting > with Set* API can be unintentional and hide a bug. Since the behaviour is currently neither documented not tested, and it doesn't raise any new Python 2/3 migation issues, I don't personally mind deprecating the "delete via set" APIs for 3.6 - as you say, having "set this field/attribute to this value" occasionally mean "delete this field/attribute" if a pointer is NULL offers a surprising second way to do something that already has a more explicit spelling. Regards, Nick. -- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
- Previous message (by thread): [Python-Dev] Deleting with setting C API functions
- Next message (by thread): [Python-Dev] Deleting with setting C API functions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list