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

Cole Robinson posted 1 patch 4 years, 9 months ago
Failed in applying to current master (apply log)
BaseTools/Source/Python/build/build.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[edk2-devel] [PATCH] BaseTools: Fix python3.8 SyntaxWarning
Posted by Cole Robinson 4 years, 9 months ago
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

Signed-off-by: Cole Robinson <crobinso@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):
-- 
2.21.0


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

View/Reply Online (#43668): https://edk2.groups.io/g/devel/message/43668
Mute This Topic: https://groups.io/mt/32445092/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH] BaseTools: Fix python3.8 SyntaxWarning
Posted by Laszlo Ersek 4 years, 9 months ago
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@redhat.com>

(CC'ing BaseTools maintainers Bob and Liming.)

Thanks!
Laszlo

> 
> Signed-off-by: Cole Robinson <crobinso@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 (#43671): https://edk2.groups.io/g/devel/message/43671
Mute This Topic: https://groups.io/mt/32445092/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH] BaseTools: Fix python3.8 SyntaxWarning
Posted by Bob Feng 4 years, 9 months ago
I tested this patch on python2.7 and 3.7. It works fine.

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

-----Original Message-----
From: Laszlo Ersek [mailto:lersek@redhat.com] 
Sent: Saturday, July 13, 2019 5:03 AM
To: Cole Robinson <crobinso@redhat.com>; devel@edk2.groups.io
Cc: Feng, Bob C <bob.c.feng@intel.com>; Gao, Liming <liming.gao@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@redhat.com>

(CC'ing BaseTools maintainers Bob and Liming.)

Thanks!
Laszlo

> 
> Signed-off-by: Cole Robinson <crobinso@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/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH] BaseTools: Fix python3.8 SyntaxWarning
Posted by Laszlo Ersek 4 years, 9 months ago
On 07/13/19 04:54, Bob Feng wrote:
> I tested this patch on python2.7 and 3.7. It works fine.
> 
> Reviewed-by: Bob Feng <bob.c.feng@intel.com>

(This is commit eebc135ffb21 now, thanks!)
Laszlo

> -----Original Message-----
> From: Laszlo Ersek [mailto:lersek@redhat.com] 
> Sent: Saturday, July 13, 2019 5:03 AM
> To: Cole Robinson <crobinso@redhat.com>; devel@edk2.groups.io
> Cc: Feng, Bob C <bob.c.feng@intel.com>; Gao, Liming <liming.gao@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@redhat.com>
> 
> (CC'ing BaseTools maintainers Bob and Liming.)
> 
> Thanks!
> Laszlo
> 
>>
>> Signed-off-by: Cole Robinson <crobinso@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 (#43724): https://edk2.groups.io/g/devel/message/43724
Mute This Topic: https://groups.io/mt/32445092/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-