[PATCH 5 of 8 v2] fancyopts: notice default of false and rewrite it to None (API)
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Tue Sep 6 15:59:11 UTC 2016
On 08/30/2016 10:16 PM, Augie Fackler wrote:
> # HG changeset patch
> # User Augie Fackler <augie at google.com>
> # Date 1472583470 14400
> # Tue Aug 30 14:57:50 2016 -0400
> # Node ID 120b94374a1226a152e46f42df00bcc477f38240
> # Parent c65c0181a9885d3c95e808272c2f609c3a9c8749
> fancyopts: notice default of false and rewrite it to None (API)
>
> This opens the door to noticing the difference between "flag not
> specified false" and "explicitly false" in an upcoming patch. Marked
> as an internal API change since I did have to tweak a couple of spots
> in our code that were making assumptions about the nature of falseness.
>
> diff --git a/mercurial/fancyopts.py b/mercurial/fancyopts.py
> --- a/mercurial/fancyopts.py
> +++ b/mercurial/fancyopts.py
> @@ -80,9 +80,15 @@ def fancyopts(args, options, state, gnu=
> short, name, default, comment, dummy = option
> else:
> short, name, default, comment = option
> - if default is True and not boolok:
> - raise ValueError('fancyopts does not support default-true '
> - 'boolean flags: %r' % name)
> + if not boolok:
> + if default is True:
I'm strongly opposed to identity testing to True and False. We should
identity test to None whenever possible to True and False are a bit too
magical and may be validly replaced by many thing. I really don't thing
we should identity test them.
Cheers,
--
Pierre-Yves David
More information about the Mercurial-devel
mailing list