[edk2-devel] [PATCH] BaseTools: Fix python3.8 SyntaxWarning

Bob Feng bob.c.feng at intel.com
Sat Jul 13 02:54:00 UTC 2019


I tested this patch on python2.7 and 3.7. It works fine.

Reviewed-by: Bob Feng <bob.c.feng at intel.com>

-----Original Message-----
From: Laszlo Ersek [mailto:lersek at redhat.com] 
Sent: Saturday, July 13, 2019 5:03 AM
To: Cole Robinson <crobinso at redhat.com>; devel at edk2.groups.io
Cc: Feng, Bob C <bob.c.feng at intel.com>; Gao, Liming <liming.gao at intel.com>
Subject: Re: [PATCH] BaseTools: Fix python3.8 SyntaxWarning

On 07/12/19 19:29, Cole Robinson wrote:
> Building with python3.8 shows a warning like:
> 
> SyntaxWarning: invalid escape sequence \(
>   GuidName = re.compile("\(GUID=[-a-fA-F0-9]+")
> 
> It seems harmless, but it's easy enough to fix: mark the string as raw 
> with the 'r' prefix like is used elsewhere in the file

I think the intent is to escape the opening paren '(' so that it lose its special regex meaning. Is that correct?

And, the issue is that the backslash, meant for escaping the paren, in effect introduces a *string literal* escape sequence. Is that correct?

If so, would it be correct to replace '\(' with '\\('?

(IOW, use the string literal escape sequence \\ to encode a raw \, and then let the raw \ escape the ( on the regex level.)

Anyway, after reading up a bit on raw string literals, the patch appears to do the same, only more readably. :)

Reviewed-by: Laszlo Ersek <lersek at redhat.com>

(CC'ing BaseTools maintainers Bob and Liming.)

Thanks!
Laszlo

> 
> Signed-off-by: Cole Robinson <crobinso at redhat.com>
> ---
>  BaseTools/Source/Python/build/build.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/BaseTools/Source/Python/build/build.py 
> b/BaseTools/Source/Python/build/build.py
> index 8c3315619a..d6006b651f 100644
> --- a/BaseTools/Source/Python/build/build.py
> +++ b/BaseTools/Source/Python/build/build.py
> @@ -1499,7 +1499,7 @@ class Build():
>          if self.Fdf:
>              # First get the XIP base address for FV map file.
>              GuidPattern = re.compile("[-a-fA-F0-9]+")
> -            GuidName = re.compile("\(GUID=[-a-fA-F0-9]+")
> +            GuidName = re.compile(r"\(GUID=[-a-fA-F0-9]+")
>              for FvName in Wa.FdfProfile.FvDict:
>                  FvMapBuffer = os.path.join(Wa.FvDir, FvName + '.Fv.map')
>                  if not os.path.exists(FvMapBuffer):
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#43688): https://edk2.groups.io/g/devel/message/43688
Mute This Topic: https://groups.io/mt/32445092/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list