public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Bob Feng" <bob.c.feng@intel.com>
To: Laszlo Ersek <lersek@redhat.com>,
	Cole Robinson <crobinso@redhat.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Gao, Liming" <liming.gao@intel.com>
Subject: Re: [PATCH] BaseTools: Fix python3.8 SyntaxWarning
Date: Sat, 13 Jul 2019 02:54:00 +0000	[thread overview]
Message-ID: <08650203BA1BD64D8AD9B6D5D74A85D160B3F643@SHSMSX105.ccr.corp.intel.com> (raw)
In-Reply-To: <1425e3e8-a476-49c1-7692-61445caf7c3c@redhat.com>

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):
> 


  reply	other threads:[~2019-07-13  2:54 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-12 17:29 [PATCH] BaseTools: Fix python3.8 SyntaxWarning Cole Robinson
2019-07-12 21:03 ` Laszlo Ersek
2019-07-13  2:54   ` Bob Feng [this message]
2019-07-15 14:46     ` [edk2-devel] " Laszlo Ersek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=08650203BA1BD64D8AD9B6D5D74A85D160B3F643@SHSMSX105.ccr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox