diff mbox series

tuna: Fix string syntax warnings with raw strings

Message ID 20241025190146.149123-1-jwyatt@redhat.com
State Superseded
Headers show
Series tuna: Fix string syntax warnings with raw strings | expand

Commit Message

John B. Wyatt IV Oct. 25, 2024, 7:01 p.m. UTC
tuna save <filename> allows you to save your kthreads tunables to
a file to be used by rtctl. There were several backslashes that produce
an error that pylint and Python (at least 3.12) gives a `SyntaxWarning:
invalid escape sequence`.

Convert the strings written to the file with raw strings to resolve the
warnings.

Tested by comparing the diffs of the files outputted by save.

Signed-off-by: John B. Wyatt IV <jwyatt@redhat.com>
Signed-off-by: John B. Wyatt IV <sageofredondo@gmail.com>
---
 tuna/tuna.py | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

Comments

John Kacur Oct. 28, 2024, 3:21 p.m. UTC | #1
On Fri, 25 Oct 2024, John B. Wyatt IV wrote:

> tuna save <filename> allows you to save your kthreads tunables to
> a file to be used by rtctl. There were several backslashes that produce
> an error that pylint and Python (at least 3.12) gives a `SyntaxWarning:
> invalid escape sequence`.
> 
> Convert the strings written to the file with raw strings to resolve the
> warnings.
> 
> Tested by comparing the diffs of the files outputted by save.
> 
> Signed-off-by: John B. Wyatt IV <jwyatt@redhat.com>
> Signed-off-by: John B. Wyatt IV <sageofredondo@gmail.com>
> ---
>  tuna/tuna.py | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/tuna/tuna.py b/tuna/tuna.py
> index bd678e2..2dbc6cb 100755
> --- a/tuna/tuna.py
> +++ b/tuna/tuna.py
> @@ -669,7 +669,8 @@ def generate_rtgroups(filename, kthreads, nr_cpus):
>  # The regex is matched against process names as printed by "ps -eo cmd".
>  
>  ''' % filename)
> -    f.write("kthreads:*:1:*:\[.*\]$\n\n")
> +    f.write(r"kthreads:*:1:*:\[.*\]$")
> +    f.write("\n\n")

You can concatenate the raw string with the new lines like this, so that 
we don't increase the number of lines

f.write(r"kthreads:*:1:*:\[.*\]$" + "\n\n")

>  
>      per_cpu_kthreads = []
>      names = list(kthreads.keys())
> @@ -688,7 +689,7 @@ def generate_rtgroups(filename, kthreads, nr_cpus):
>              elif common[:8] == "softirq-":
>                  common = "(sirq|softirq)" + common[7:]
>                  name = "s" + name[4:]
> -            regex = common + "\/.*"
> +            regex = common + r"\/.*"
>          except:
>              idx = 0
>              regex = name
> @@ -701,9 +702,10 @@ def generate_rtgroups(filename, kthreads, nr_cpus):
>          else:
>              mask = ",".join([hex(a) for a in \
>                       procfs.hexbitmask(kt.affinity, nr_cpus)])
> -        f.write("%s:%c:%d:%s:\[%s\]$\n" % (name, \
> +        f.write(r"%s:%c:%d:%s:\[%s\]$" % (name, \
>                             tuna_sched.sched_str(kt.policy)[6].lower(), \
>                              kt.rtprio, mask, regex))
> +        f.write("\n")

Same thing here


>      f.close()
>  
>  
> -- 

There are more files than this one that exhibit the new SyntaxWarning
in tuna, check tuna-cmd.py and all the files in the tuna dir, and please 
fix them all at once.

John Kacur
John B. Wyatt IV Oct. 28, 2024, 7:52 p.m. UTC | #2
On Mon, Oct 28, 2024 at 11:21:18AM -0400, John Kacur wrote:
> 
> 
> On Fri, 25 Oct 2024, John B. Wyatt IV wrote:
> 
> > tuna save <filename> allows you to save your kthreads tunables to
> > a file to be used by rtctl. There were several backslashes that produce
> > an error that pylint and Python (at least 3.12) gives a `SyntaxWarning:
> > invalid escape sequence`.
> > 
> > Convert the strings written to the file with raw strings to resolve the
> > warnings.
> > 
> > Tested by comparing the diffs of the files outputted by save.
> > 
> > Signed-off-by: John B. Wyatt IV <jwyatt@redhat.com>
> > Signed-off-by: John B. Wyatt IV <sageofredondo@gmail.com>
> > ---
> >  tuna/tuna.py | 8 +++++---
> >  1 file changed, 5 insertions(+), 3 deletions(-)
> > 
> > diff --git a/tuna/tuna.py b/tuna/tuna.py
> > index bd678e2..2dbc6cb 100755
> > --- a/tuna/tuna.py
> > +++ b/tuna/tuna.py
> > @@ -669,7 +669,8 @@ def generate_rtgroups(filename, kthreads, nr_cpus):
> >  # The regex is matched against process names as printed by "ps -eo cmd".
> >  
> >  ''' % filename)
> > -    f.write("kthreads:*:1:*:\[.*\]$\n\n")
> > +    f.write(r"kthreads:*:1:*:\[.*\]$")
> > +    f.write("\n\n")
> 
> You can concatenate the raw string with the new lines like this, so that 
> we don't increase the number of lines
> 
> f.write(r"kthreads:*:1:*:\[.*\]$" + "\n\n")
> 

Great idea.

> >  
> >      per_cpu_kthreads = []
> >      names = list(kthreads.keys())
> > @@ -688,7 +689,7 @@ def generate_rtgroups(filename, kthreads, nr_cpus):
> >              elif common[:8] == "softirq-":
> >                  common = "(sirq|softirq)" + common[7:]
> >                  name = "s" + name[4:]
> > -            regex = common + "\/.*"
> > +            regex = common + r"\/.*"
> >          except:
> >              idx = 0
> >              regex = name
> > @@ -701,9 +702,10 @@ def generate_rtgroups(filename, kthreads, nr_cpus):
> >          else:
> >              mask = ",".join([hex(a) for a in \
> >                       procfs.hexbitmask(kt.affinity, nr_cpus)])
> > -        f.write("%s:%c:%d:%s:\[%s\]$\n" % (name, \
> > +        f.write(r"%s:%c:%d:%s:\[%s\]$" % (name, \
> >                             tuna_sched.sched_str(kt.policy)[6].lower(), \
> >                              kt.rtprio, mask, regex))
> > +        f.write("\n")
> 
> Same thing here

ack

> 
> 
> >      f.close()
> >  
> >  
> > -- 
> 
> There are more files than this one that exhibit the new SyntaxWarning
> in tuna, check tuna-cmd.py and all the files in the tuna dir, and please 
> fix them all at once.
> 
> John Kacur
> 

I doubled checked; I could not find anymore instances of the problem.
Tested Fedora 40 with the current rpm packaged version of pylint.

Will send a v2 with the concatenated strings.
diff mbox series

Patch

diff --git a/tuna/tuna.py b/tuna/tuna.py
index bd678e2..2dbc6cb 100755
--- a/tuna/tuna.py
+++ b/tuna/tuna.py
@@ -669,7 +669,8 @@  def generate_rtgroups(filename, kthreads, nr_cpus):
 # The regex is matched against process names as printed by "ps -eo cmd".
 
 ''' % filename)
-    f.write("kthreads:*:1:*:\[.*\]$\n\n")
+    f.write(r"kthreads:*:1:*:\[.*\]$")
+    f.write("\n\n")
 
     per_cpu_kthreads = []
     names = list(kthreads.keys())
@@ -688,7 +689,7 @@  def generate_rtgroups(filename, kthreads, nr_cpus):
             elif common[:8] == "softirq-":
                 common = "(sirq|softirq)" + common[7:]
                 name = "s" + name[4:]
-            regex = common + "\/.*"
+            regex = common + r"\/.*"
         except:
             idx = 0
             regex = name
@@ -701,9 +702,10 @@  def generate_rtgroups(filename, kthreads, nr_cpus):
         else:
             mask = ",".join([hex(a) for a in \
                      procfs.hexbitmask(kt.affinity, nr_cpus)])
-        f.write("%s:%c:%d:%s:\[%s\]$\n" % (name, \
+        f.write(r"%s:%c:%d:%s:\[%s\]$" % (name, \
                            tuna_sched.sched_str(kt.policy)[6].lower(), \
                             kt.rtprio, mask, regex))
+        f.write("\n")
     f.close()