[Buildroot] [PATCH v2 1/1] check-package: fix Python3 support
peter at korsgaard.com
Mon Jan 28 16:22:15 UTC 2019
>>>>> "Peter" == Peter Korsgaard <peter at korsgaard.com> writes:
>>> This script currently uses "/usr/bin/env python" as shebang but it does
>>> not really support Python3. Instead of limiting the script to Python2,
>>> fix it to support both versions.
>>> So change all imports to absolute imports because Python3 follows PEP328
>>> and dropped implicit relative imports.
>>> In order to avoid errors when decoding files with the default 'utf-8'
>>> codec, use errors="surrogateescape" when opening files, the docs for
>>> open() states: "This is useful for processing files in an unknown
>>> encoding.". This argument is not compatible with Python2 open() so
>>> import 'six' to use it only when running in Python3.
>>> As a consequence the file handler becomes explicit, so use it to close()
>>> the file after it got processed.
>>> This "surrogateescape" is a simple alternative to the complete solution
>>> of opening files with "rb" and changing all functions in the lib*.py
>>> files to use bytes objects instead of strings. The only case we can have
>>> non-ascii/non-utf-8 files being checked by the script are for patch
>>> files when the upstream file to be patched is not ascii or utf-8. There
>>> is currently one case in the tree:
>>> Signed-off-by: Ricardo Martincoski <ricardo.martincoski at gmail.com>
>>> Cc: Arnout Vandecappelle <arnout at mind.be>
>>> Changes v1 -> v2:
>>> - do not use an automated tool (modernize);
>>> - use absolute import;
>>> - drop list() added to .keys(), it's not needed (Arnout);
>>> - drop 'from __future__ import absolute_import' everywhere;
>>> - list the (not used) approach of opening files in binary mode in the
>>> commit message;
>> This patch looks good to me. I don't really know anything about
>> surrogateescape, but the script works on the urg package so seems ok.
>> Reviewed-by: Thomas De Schampheleire <thomas.de_schampheleire at nokia.com>
>> Tested-by: Thomas De Schampheleire <thomas.de_schampheleire at nokia.com>
>> [Tested with Python 2.7.x and Python 3.5.x]
Committed to 2018.02.x and 2018.11.x, thanks.
Bye, Peter Korsgaard
More information about the buildroot