[ovs-dev] [PATCH] python/ovs/db/types: Fix English grammar for enums with one member.

Ben Pfaff blp at nicira.com
Mon Feb 4 16:14:35 UTC 2013


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 <blp at 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 <blp at 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 at openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev



More information about the dev mailing list