[PATCH 6 of 7] py3: use try/except to check for basestring

Pulkit Goyal 7895pulkit at gmail.com
Sun Nov 6 13:45:21 EST 2016


This https://www.mercurial-scm.org/pipermail/mercurial-devel/2016-October/089099.html
is a better version of what I want to do, since this didn't went
through I will be using this.

On Fri, Nov 4, 2016 at 9:21 AM, Yuya Nishihara <yuya at tcha.org> wrote:
> On Thu, 03 Nov 2016 03:53:11 +0530, Pulkit Goyal wrote:
>> # HG changeset patch
>> # User Pulkit Goyal <7895pulkit at gmail.com>
>> # Date 1478121825 -19800
>> #      Thu Nov 03 02:53:45 2016 +0530
>> # Node ID aef03902a5c1a13e9775059a5efdeb2466399ada
>> # Parent  9e259e7b59b6358eb842eabbc99f4c18a4cc5009
>> py3: use try/except to check for basestring
>>
>> The term basestring don't exist in Python 3.5 and throws a NameError.
>> It used to refer to unicodes in Python 2. Used try/expect to handle this.
>>
>> diff -r 9e259e7b59b6 -r aef03902a5c1 mercurial/ui.py
>> --- a/mercurial/ui.py Thu Nov 03 02:27:46 2016 +0530
>> +++ b/mercurial/ui.py Thu Nov 03 02:53:45 2016 +0530
>> @@ -520,7 +520,12 @@
>>          result = self.config(section, name, untrusted=untrusted)
>>          if result is None:
>>              result = default or []
>> -        if isinstance(result, basestring):
>> +        checkunicode = False
>> +        try:
>> +            checkunicode = isinstance(result, basestring)
>> +        except NameError:
>> +            checkunicode = isinstance(result, str)
>> +        if checkunicode:
>>              result = _configlist(result.lstrip(' ,\n'))
>
> Given "result" is a source variable of a list to be returned, it shouldn't
> be a unicode. So we can simply use bytes instead of basestring here.


More information about the Mercurial-devel mailing list