[PATCH 6 of 8 py3 v3] config: guard against setconfig specifying unicode values on py3

Yuya Nishihara youjah at gmail.com
Thu Mar 9 13:26:37 EST 2017


On Mar 9, 2017 5:05 PM, "Yuya Nishihara" <yuya at tcha.org> wrote:

On Wed, 08 Mar 2017 18:22:45 -0500, Augie Fackler wrote:
> # HG changeset patch
> # User Augie Fackler <raf at durin42.com>
> # Date 1488570176 18000
> #      Fri Mar 03 14:42:56 2017 -0500
> # Node ID 9788576dc5009344c2649a7a56565cdf20713112
> # Parent  9269a48bd35f1eaafdb00c58c6056382c6a0ba88
> config: guard against setconfig specifying unicode values on py3
>
> This was leading to some difficult to trace problems because the
> values were set in one place, but then blew up much later in the
> program. Exploding violently with an assertion seems reasonable here.
>
> diff --git a/mercurial/config.py b/mercurial/config.py
> --- a/mercurial/config.py
> +++ b/mercurial/config.py
> @@ -13,6 +13,7 @@ import os
>  from .i18n import _
>  from . import (
>      error,
> +    pycompat,
>      util,
>  )
>
> @@ -69,6 +70,9 @@ class config(object):
>      def items(self, section):
>          return self._data.get(section, {}).items()
>      def set(self, section, item, value, source=""):
> +        if pycompat.ispy3:
> +            assert not isinstance(value, str), (
> +                'config values may not be unicode strings on Python 3')

IIRC, internal API may set non-str such as booleans. And str on Python 3 is
unicode.


Oops, I was tricked by the type name. This looks good.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.mercurial-scm.org/pipermail/mercurial-devel/attachments/20170310/4810bc47/attachment.html>


More information about the Mercurial-devel mailing list