[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