Re: [Python-ideas] threading lock and isinstance

2018-03-29 Thread Guido van Rossum
You should probably first explain your use case -- why is it important to
your code to be able to use isinstance() on locks?

On Thu, Mar 29, 2018 at 2:43 AM, Jacco van Dorp 
wrote:

> Currently, you cannot use isinstance checks on threading locks, because
> they're created by a factory function instead of being actual classes.
>
> Now that we've got __subclasshook__  and __instancecheck__, is there
> still a reason other than "history" that we can't use isinstance here ?
> There
> could exist a thin wrapper class along the lines of:
>
> class Lock:
> def __new__():
> return __allocate_lock()  # Call factory function
>
> @classmethod
> def __subclasshook__(cls, inst):
> # code...
>
> As far as I can think, no code would be broken by this - even current
> introspection
> which we're trying to replace would work just fine.
>
> My C experience is rather limited, so i dont know if it's hard to
> write the subclass
> /isinstance checks.
>
> While probably not that important, would people consider this to be a
> good idea ?
>
> (I found this bug report: https://bugs.python.org/issue3352 which has
> a post of Nick Coghlan  from 2008-07-14 22:25 where this is mentioned
> - but in respect to multiprocessing. However, that thread is rather
> old and dead. I could not find any other references to this.)
> ___
> Python-ideas mailing list
> Python-ideas@python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>



-- 
--Guido van Rossum (python.org/~guido)
___
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/


[Python-ideas] threading lock and isinstance

2018-03-29 Thread Jacco van Dorp
Currently, you cannot use isinstance checks on threading locks, because
they're created by a factory function instead of being actual classes.

Now that we've got __subclasshook__  and __instancecheck__, is there
still a reason other than "history" that we can't use isinstance here ? There
could exist a thin wrapper class along the lines of:

class Lock:
def __new__():
return __allocate_lock()  # Call factory function

@classmethod
def __subclasshook__(cls, inst):
# code...

As far as I can think, no code would be broken by this - even current
introspection
which we're trying to replace would work just fine.

My C experience is rather limited, so i dont know if it's hard to
write the subclass
/isinstance checks.

While probably not that important, would people consider this to be a
good idea ?

(I found this bug report: https://bugs.python.org/issue3352 which has
a post of Nick Coghlan  from 2008-07-14 22:25 where this is mentioned
- but in respect to multiprocessing. However, that thread is rather
old and dead. I could not find any other references to this.)
___
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/