I guess there could be no literals, it just wouldn't be very useful. Of course, that's presumably why I left out the "one literal" case also.
Thanks for the other suggestions but I think the code as-is is fairly readable so I think I'll stick with it. I'll apply this to master soon. On Fri, Feb 01, 2013 at 03:49:11PM -0800, Reid Price wrote: > Looks good. I assume there is no way to have no literals? > > For what it's worth, > > english = 'one of %s, %s, or %s' % (literals[0], > ', '.join(literals[1:-1]), > literals[-1]) > > could also be written as > > english = 'one of %s, or %s' % (', '.join(literals[:-1]), > literals[-1]) > > or you could even replace the whole thing with > > literals[-1] = 'or %s' % literals[-1] > prefix = {1: 'must be', 2: 'either'}.get(len(literals), 'one of') > english = "%s %s" % (prefix, ', '.join(literals)) > > which does leave you with the wart "either a, or b", and is definitely less > obviously correct =) > > -Reid > > On Fri, Feb 1, 2013 at 2:52 PM, Ben Pfaff <b...@nicira.com> wrote: > > Before this change, enums that have one member were formatted as, e.g.: > > "one of xyzzy, , or " > > This changes them to be formatted as: > > "must be xyzzy" > > which makes much more sense. > > > > (An enum with one member may make some sense if you are trying to leave > > the possibility for future expansion.) > > > > Signed-off-by: Ben Pfaff <b...@nicira.com> > > --- > > This is a repost of a patch originally posted Dec. 20, 2012. > > > > python/ovs/db/types.py | 4 +++- > > 1 files changed, 3 insertions(+), 1 deletions(-) > > > > diff --git a/python/ovs/db/types.py b/python/ovs/db/types.py > > index 5865acd..bd1c259 100644 > > --- a/python/ovs/db/types.py > > +++ b/python/ovs/db/types.py > > @@ -287,7 +287,9 @@ class BaseType(object): > > if self.enum: > > literals = [value.toEnglish(escapeLiteral) > > for value in self.enum.values] > > - if len(literals) == 2: > > + if len(literals) == 1: > > + english = 'must be %s' % (literals[0]) > > + elif len(literals) == 2: > > english = 'either %s or %s' % (literals[0], literals[1]) > > else: > > english = 'one of %s, %s, or %s' % (literals[0], > > -- > > 1.7.2.5 > > > > _______________________________________________ > > dev mailing list > > dev@openvswitch.org > > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev