[issue20309] Not all method descriptors are callable

2021-03-31 Thread STINNER Victor


STINNER Victor  added the comment:

I proposed again a similar idea, but only for @staticmethod: bpo-43682.

--
nosy: +vstinner

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20309] Not all method descriptors are callable

2019-03-20 Thread Jeroen Demeyer


Jeroen Demeyer  added the comment:

See also PEP 579 (issue 11) and the thread 
https://mail.python.org/pipermail/python-ideas/2018-June/051572.html

--
nosy: +jdemeyer

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20309] Not all method descriptors are callable

2018-11-21 Thread Simon Ruggier


Simon Ruggier  added the comment:

I hit this problem today with what I'd consider a valid use case: I wanted to 
use a static method as a default argument to a function on the same class. 
Within the class definition context, automatic unwrapping of the staticmethod 
object doesn't occur, so the default value ends up not being callable unless 
the staticmethod object is manually, explicitly unwrapped via __func__.

For those who prefer code to prose, I've attached example Python 2/3 code 
demonstrating what I mean.

The workaround is pretty easy, but on the other hand, it also looks like it 
would also be pretty straightforward to facilitate this use case without 
forcing the author to learn about this distinction and manually unwrap the 
static method, and I think it makes sense to do that.

--
nosy: +sruggier
Added file: https://bugs.python.org/file47940/example_use_case.py

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20309] Not all method descriptors are callable

2015-04-14 Thread Raymond Hettinger

Raymond Hettinger added the comment:

I don't agree that this is a bug that should be fixed.  It adds code that will 
likely never get called or needed (i.e. there has never been a request for this 
in the decade long history of desciptors and it seems like a made up 
requirement to me.  

I concur with Amrin's comment that this is good enough and Nick's comment 
that it's just a matter of pattern of use'.  I recommend that this be closed 
as not-a-bug and that we avoid gratuitous API expansion for what Larry states 
is likely foolish consistency.  

If someone object to recommendation to close and really wants to push for this, 
I recommend making a business case for acceptance and then assigning this issue 
to Guido for a decision.  This is his code and AFAICT he intentionally didn't 
go down a number of possible paths for descriptors simply because there weren't 
motivating use cases.  To the extent that __call__ was omitted on some 
descriptors, I don't think it was an accident (most of this code was developed 
as the same time by the same person with deliberate differences between each of 
them).   His write-ups for descriptors when they were introduced make no 
mention of an implied requirement for callability.


FWIW, issue 19072 isn't really related to this one.  That issue is a feature 
request to support descriptor chainging and it isn't clear whether that should 
be supported or left as-in.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20309
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20309] Not all method descriptors are callable

2015-04-14 Thread Nick Coghlan

Nick Coghlan added the comment:

I agree with Raymond's recommendation - actually supporting this would mean 
adding code that would need to be maintained indefinitely without providing a 
compensating practical benefit, so I'm flagging this as not a bug. Thanks 
Christian for nudging us to make a decision one way or the other.

If another implementation requests clarification, we might want to document 
that directly callable-or-not for these descriptors is formally an 
interpreter implementation detail, but in the absence of such a request, I 
think this issue serves as an adequate reference.

--
resolution:  - not a bug
stage: patch review - resolved
status: open - closed

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20309
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20309] Not all method descriptors are callable

2015-04-14 Thread Christian Hudon

Christian Hudon added the comment:

As a newbie to the CPython source code (and as someone who started working on 
this bug because it was on the lists of easy bugs for PyCon 2014), I don't have 
a strong attachment either way, as long as some kind of decision is reached, 
and I can check this off my list.

If forced to take a stance, I would probably agree that this might be reaching 
into foolish consistency territory, as I just don't see myself ever using the 
new possibilities that this added code would allow.

If the decision is made to fix this, I'll improve the tests to actually call 
these new callables (and check that the result of the call is correct). I'll 
wait until the we should fix this decision is made to work on the patch 
again, though. But if this is closed as not-a-bug, I'll be a happy camper too 
(as I've learned some stuff about CPython internals in the process).

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20309
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20309] Not all method descriptors are callable

2015-04-13 Thread Christian Hudon

Christian Hudon added the comment:

Updated patch to work with current state of repository. Tests still pass 
(including the new ones).

--
Added file: http://bugs.python.org/file38942/descr_v3.diff

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20309
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20309] Not all method descriptors are callable

2015-04-13 Thread Ernest

Changes by Ernest ozial...@gmail.com:


--
nosy: +ozialien

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20309
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20309] Not all method descriptors are callable

2015-04-13 Thread Antoine Pitrou

Changes by Antoine Pitrou pit...@free.fr:


--
stage: needs patch - patch review
versions: +Python 3.5 -Python 3.4

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20309
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20309] Not all method descriptors are callable

2014-04-17 Thread eryksun

eryksun added the comment:

classmethod_descriptor instances such as vars(dict)['fromkeys'] are callable. 
The first argument has to be a subclass of __objclass__:

 vars(dict)['fromkeys'].__objclass__
class 'dict'

Calling the descriptor creates a bound built-in method; slices the args to 
remove the class; and calls it with the args and kwds.

 vars(dict)['fromkeys'](dict, 'abc')
{'a': None, 'b': None, 'c': None}

source: classmethoddescr_call
http://hg.python.org/cpython/file/04f714765c13/Objects/descrobject.c#l256

While the classmethod and staticmethod types that are defined in funcobject.c 
aren't callable, they do expose a __func__ member.

--
nosy: +eryksun

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20309
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20309] Not all method descriptors are callable

2014-04-17 Thread Eric Snow

Changes by Eric Snow ericsnowcurren...@gmail.com:


--
nosy: +eric.snow

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20309
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20309] Not all method descriptors are callable

2014-04-17 Thread Raymond Hettinger

Changes by Raymond Hettinger raymond.hettin...@gmail.com:


--
assignee:  - rhettinger
nosy: +rhettinger

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20309
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20309] Not all method descriptors are callable

2014-04-17 Thread Christian Hudon

Christian Hudon added the comment:

Here is the (first?) complete version of the patch. All tests pass. Note that I 
had to remove a test that was checking that the object returned from 
staticmethod was not callable.

Let me know if I should add more tests, or if there are any other problems with 
the patch. Thanks!

--
Added file: http://bugs.python.org/file34959/descr_v2.diff

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20309
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20309] Not all method descriptors are callable

2014-04-16 Thread Christian Hudon

Christian Hudon added the comment:

Work in progress for fixing this bug. (See descr_v1.diff) I converted the 
curious.py file into additional testcases. I started writing the functions 
for the tp_call slots for class and static methods.

To do: add tests to make sure that the code works for more than what's accepted 
by function_call(), then switch to using PyObject_Call() (which is the right 
function to use here, thanks to ncoghlan for catching that). Will finish this 
in the next few days.

--
keywords: +patch
nosy: +chrish42
Added file: http://bugs.python.org/file34928/descr_v1.diff

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20309
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20309] Not all method descriptors are callable

2014-01-20 Thread Nick Coghlan

Nick Coghlan added the comment:

Oh, so that's how that happens :)

(the title reverted because I replied via email from a part of the thread 
before Larry changed the issue name)

--
title: Class method descriptors are different between builtin and user classes 
- Not all method descriptors are callable

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20309
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20309] Not all method descriptors are callable

2014-01-20 Thread R. David Murray

R. David Murray added the comment:

See also issue 19072 for previous report of the classmethod problem.

--
nosy: +r.david.murray

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20309
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20309] Not all method descriptors are callable

2014-01-20 Thread Barry A. Warsaw

Changes by Barry A. Warsaw ba...@python.org:


--
nosy: +barry

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20309
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20309] Not all method descriptors are callable

2014-01-20 Thread Arfrever Frehtes Taifersar Arahesis

Changes by Arfrever Frehtes Taifersar Arahesis arfrever@gmail.com:


--
nosy: +Arfrever

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20309
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com