[Chandler-dev] a new kind of enumeration type

Reid Ellis rae at osafoundation.org
Wed Aug 30 16:11:38 PDT 2006


If not we should use the age-old hackish way of "making room for the  
future":

         values = {"now": 1100, "later": 1200, "done": 1000, "soon":  
1150}

Reid

On Aug 30, 2006, at 18:32, Grant Baillie wrote:
> On 30 Aug, 2006, at 15:09, Phillip J. Eby wrote:
>> We could do that, after we got rid of any existing code that  
>> depends on the old semantics of enumerations.
>>
>> However, it should be noted that this may lead to interesting  
>> problems in schema upgrades.  My understanding is that the reason  
>> for wanting explicit values (as opposed to simple sequence) is  
>> that it allows constant values to be preserved across releases,  
>> even if things are added or removed.  Second, it allows the use of  
>> enumerations as constants for interacting with external systems,  
>> like socket mode flags and such.
>
> I guess I can get the behaviour I want with the lovely:
>
>          values = dict(map(reversed, enumerate(("done", "now",  
> "later"))))
>
>
> The backward compatibility point is a good one. BTW, if in α5 we  
> decide we need a "soon" between "now" and "later", would
>
>         values = {"now": 0, "later": 1, "done": -1, "soon": 0.5}
>
> work?
>
> --Grant
>
>>
>> At 03:04 PM 8/30/2006 -0700, Grant Baillie wrote:
>>> Perhaps I should've been more explicit :o). Instead of
>>>
>>>     class TriageEnum(schema.Enumeration):
>>>         values = {"now": 0, "later": 1, "done": -1}
>>>
>>> I would rather just write:
>>>
>>>     class TriageEnum(schema.Enumeration):
>>>         values = "done", "now", "later"
>>>
>>> to produce the same values TriageEnum.done, TriageEnum.now, etc.  
>>> (The
>>> values would be auto-generated, but would sort the same as the dict
>>> example).
>>>
>>> --Grant



More information about the chandler-dev mailing list