[issue24866] Boolean representation of Q/queue objects does not fit behaviour of lists etc.

2015-08-14 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/issue24866
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24866] Boolean representation of Q/queue objects does not fit behaviour of lists etc.

2015-08-14 Thread Raymond Hettinger

Raymond Hettinger added the comment:

RDM is correct.  Queues having qsize() instead of __len__() was an intentional 
part of the design.  Code relying on the boolean value would be fragile.   

FWIW, this code is very old (originally designed by Guido when dinosaurs roamed 
the earth) and it is far too late to alter its API.

--
resolution:  - rejected
status: open - closed

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



[issue24866] Boolean representation of Q/queue objects does not fit behaviour of lists etc.

2015-08-14 Thread R. David Murray

R. David Murray added the comment:

I believe this is intentional; see the documentation of the empty' method for 
the motivation.  The reason for not just reflecting the result of an empty call 
in __bool__ is that not doing so forces you to use empty, which gives you an 
opportunity to learn about the lack of guarantees.  And every time you use it, 
or read it in someone else's code, you are reminded that a Queue is *different* 
from a list in this very important way.

--
nosy: +r.david.murray

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



[issue24866] Boolean representation of Q/queue objects does not fit behaviour of lists etc.

2015-08-14 Thread Frunit

New submission from Frunit:

Usually, list-like objects return False when they are empty and True when at 
least one element is in the list. However, Queue (Python 2) resp. queue (Python 
3) objects always return True. I am aware of that objects should always return 
True unless otherwise stated, but as queues are (at least in my perception) 
related to lists, they should behave similarly in this case.

Python3 (similar in Python2):
 import queue
 q = queue.Queue()
 bool(q)
True
(Should be False, in my opinion; the same for PriorityQueue and LifoQueue)

I searched for reasons for returning True in empty Queues, but I could not find 
any in the net or in the Python docs.

--
messages: 248577
nosy: Frunit
priority: normal
severity: normal
status: open
title: Boolean representation of Q/queue objects does not fit behaviour of 
lists etc.
type: behavior
versions: Python 2.7, Python 3.4

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