diff mbox

qapi: Fix cgen() for Python older than 2.7

Message ID 1441640755-23902-1-git-send-email-armbru@redhat.com
State New
Headers show

Commit Message

Markus Armbruster Sept. 7, 2015, 3:45 p.m. UTC
A feature new in Python 2.7 crept into commit 77e703b: re.subn()'s
fifth argument.  Avoid that, use re.compile().

Reported-by: Laurent Desnogues <laurent.desnogues@gmail.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 scripts/qapi.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Eric Blake Sept. 8, 2015, 2:55 a.m. UTC | #1
On 09/07/2015 09:45 AM, Markus Armbruster wrote:
> A feature new in Python 2.7 crept into commit 77e703b: re.subn()'s
> fifth argument.  Avoid that, use re.compile().
> 
> Reported-by: Laurent Desnogues <laurent.desnogues@gmail.com>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  scripts/qapi.py | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)

Reviewed-by: Eric Blake <eblake@redhat.com>

> 
> diff --git a/scripts/qapi.py b/scripts/qapi.py
> index 817d824..88fa073 100644
> --- a/scripts/qapi.py
> +++ b/scripts/qapi.py
> @@ -944,7 +944,9 @@ def cgen(code, **kwds):
>      raw = code % kwds
>      if indent_level:
>          indent = genindent(indent_level)
> -        raw = re.subn("^.", indent + r'\g<0>', raw, 0, re.MULTILINE)
> +        # re.subn() lacks flags support before Python 2.7, use re.compile()
> +        raw = re.subn(re.compile("^.", re.MULTILINE),
> +                      indent + r'\g<0>', raw)
>          raw = raw[0]
>      return re.sub(re.escape(eatspace) + ' *', '', raw)
>  
>
Laurent Desnogues Sept. 8, 2015, 5:17 a.m. UTC | #2
On Mon, Sep 7, 2015 at 5:45 PM, Markus Armbruster <armbru@redhat.com> wrote:
> A feature new in Python 2.7 crept into commit 77e703b: re.subn()'s
> fifth argument.  Avoid that, use re.compile().
>
> Reported-by: Laurent Desnogues <laurent.desnogues@gmail.com>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Tested-by: Laurent Desnogues <laurent.desnogues@gmail.com>

Works fine here. Thanks,

Laurent

> ---
>  scripts/qapi.py | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/qapi.py b/scripts/qapi.py
> index 817d824..88fa073 100644
> --- a/scripts/qapi.py
> +++ b/scripts/qapi.py
> @@ -944,7 +944,9 @@ def cgen(code, **kwds):
>      raw = code % kwds
>      if indent_level:
>          indent = genindent(indent_level)
> -        raw = re.subn("^.", indent + r'\g<0>', raw, 0, re.MULTILINE)
> +        # re.subn() lacks flags support before Python 2.7, use re.compile()
> +        raw = re.subn(re.compile("^.", re.MULTILINE),
> +                      indent + r'\g<0>', raw)
>          raw = raw[0]
>      return re.sub(re.escape(eatspace) + ' *', '', raw)
Markus Armbruster Sept. 8, 2015, 6:38 a.m. UTC | #3
Peter, are you willing to commit this directly as a build fix?  Or would
you prefer a pull request?
Peter Maydell Sept. 8, 2015, 8:20 a.m. UTC | #4
On 7 September 2015 at 16:45, Markus Armbruster <armbru@redhat.com> wrote:
> A feature new in Python 2.7 crept into commit 77e703b: re.subn()'s
> fifth argument.  Avoid that, use re.compile().
>
> Reported-by: Laurent Desnogues <laurent.desnogues@gmail.com>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Should we cc: stable on this?

thanks
-- PMM
Markus Armbruster Sept. 8, 2015, 8:43 a.m. UTC | #5
Peter Maydell <peter.maydell@linaro.org> writes:

> On 7 September 2015 at 16:45, Markus Armbruster <armbru@redhat.com> wrote:
>> A feature new in Python 2.7 crept into commit 77e703b: re.subn()'s
>> fifth argument.  Avoid that, use re.compile().
>>
>> Reported-by: Laurent Desnogues <laurent.desnogues@gmail.com>
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>
> Should we cc: stable on this?

Not needed: commit 77e703b is not in any release, and not meant for
stable.
Peter Maydell Sept. 14, 2015, 5:50 p.m. UTC | #6
On 8 September 2015 at 07:38, Markus Armbruster <armbru@redhat.com> wrote:
> Peter, are you willing to commit this directly as a build fix?  Or would
> you prefer a pull request?

Applied to master, thanks (sorry I missed this email earlier).

-- PMM
diff mbox

Patch

diff --git a/scripts/qapi.py b/scripts/qapi.py
index 817d824..88fa073 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -944,7 +944,9 @@  def cgen(code, **kwds):
     raw = code % kwds
     if indent_level:
         indent = genindent(indent_level)
-        raw = re.subn("^.", indent + r'\g<0>', raw, 0, re.MULTILINE)
+        # re.subn() lacks flags support before Python 2.7, use re.compile()
+        raw = re.subn(re.compile("^.", re.MULTILINE),
+                      indent + r'\g<0>', raw)
         raw = raw[0]
     return re.sub(re.escape(eatspace) + ' *', '', raw)