[Zope-Checkins] Re: [Checkins] SVN: Products.Five/trunk/ Now you can use the old registry with the new API for registerig components.

Jean-Marc Orliaguet jmo at chalmers.se
Sat Jul 29 10:29:17 EDT 2006


Florent Guillaume wrote:
> Indeed :)
>
>
> On 29 Jul 2006, at 00:39, Benji York wrote:
>
>> Florent Guillaume wrote:
>>> On 27 Jul 2006, at 16:15, Lennart Regebro wrote:
>>>> Modified: Products.Five/trunk/site/localsite.py
>>>> ===================================================================
>>>> --- Products.Five/trunk/site/localsite.py    2006-07-27 13:51:25 
>>>> UTC  (rev 69270)
>>>> +++ Products.Five/trunk/site/localsite.py    2006-07-27 14:15:46 
>>>> UTC  (rev 69271)
>>>> @@ -16,12 +16,26 @@
>>>> $Id$
>>>> """
>>>>
>>>> +from operator import xor
>>>> +def one_of_three(a, b, c):
>>>> +    # Logical table for a three part test where only one can be true:
>>>> +    # 0 0 0: 0
>>>> +    # 0 0 1: 1
>>>> +    # 0 1 0: 1
>>>> +    # 0 1 1: 0
>>>> +    # 1 0 0: 1
>>>> +    # 1 0 1: 0
>>>> +    # 1 1 0: 0
>>>> +    # 1 1 1: 0
>>>> +    return xor(xor(a, b), c) and not (a and b and c)
>>> Heh, boolean algebra is nice but sometimes integers convey the  
>>> meaning much better:
>>>    return int(a)+int(b)+int(c) == 1
>>
>> Hey, this is fun!  How about this:
>>
>> def only_one(*args):
>>     return sum(bool(i) for i in args) == 1
>> --Benji York
>> Senior Software Engineer
>> Zope Corporation
>

or even:

[a, b, c].count(True) == 1

:-)
/JM



More information about the Zope-Checkins mailing list