[Zope] When is an empty list not an empty list?

John Schinnerer john at eco-living.net
Sun Jun 18 06:36:49 EDT 2006


Aloha,

Thanks, I understand...though it's a bit annoying that it looks and acts 
just like a list but "isn't"...

Just using "items" does work.  I figured it would work for True when not 
empty...I wasn't so sure what it would return when empty, as sometimes 
the test seems to be on 'exists' rather than 'empty', depending on the 
type of object.

At least I grok this particular case now, thanks again...
cheers,
John S.

Tino Wildenhain wrote:
> John Schinnerer wrote:
> 
>>Aloha,
>>
>>I have a python script, getCatalogItems(), which returns a (possibly
>>empty) list resulting from a catalog query. The lone parameter is the
>>sort index; the rest of the query is taken from the request. Anyhow...
>>If nothing was found, I don't want to display an empty table of results.
>>
>>When I do this query and then check for empty list to see if the query
>>returned any items:
>>
>><div tal:define="items python:container.getCatalogItems('id')">
>><table tal:condition="python: items!=[]">
>>...
>>
>>...it doesn not work, that is, the (empty) table displays when items is
>>in fact an empty list.
>>
>>If I do this instead:
>>
>><div tal:define="items python:container.getCatalogItems('id')">
>><table tal:condition="python: len(items)>0">
>>...
>>
>>...then the condition works, no empty table is displayed if the list is
>>empty.
>>
>>Why does the former not work and the latter does?
>>I need to understand the difference in the python expressions...makes no
>>sense to me at present that they don't work the same.
>>
> 
> Well, thats because getCatalogItens() does not return a list. It might
> look and work like it, but it isnt the same class. Python defines
> comparisions between different classes as always false.
> 
> Easier in your case would be just:
> 
> tal:condition="items"
> 
> non empty python objects are usually logically True.
> 
> Regards
> Tino
> _______________________________________________
> Zope maillist  -  Zope at zope.org
> http://mail.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists - 
>  http://mail.zope.org/mailman/listinfo/zope-announce
>  http://mail.zope.org/mailman/listinfo/zope-dev )
> 

-- 

John Schinnerer - MA, Whole Systems Design
------------------------------------------
- Eco-Living -
Whole Systems Design Services
People - Place - Learning - Integration
john at eco-living.net
http://eco-living.net


More information about the Zope mailing list