Author: ivan
Date: Thu Jul 16 11:22:07 2026
New Revision: 1936200

Log:
Make l10n-report.py work with Python3.

* tools/po/l10n-report.py
  (l10nReport.safe_command): Decode and encode stdin/stdout/stderr streams.
  (l10nReport.match): Use isinstance(str) instead of isinstance(basestring).
  (bar_graph): Explicitly cast to int.
  (main): Properly escape string literal.

Modified:
   subversion/trunk/tools/po/l10n-report.py

Modified: subversion/trunk/tools/po/l10n-report.py
==============================================================================
--- subversion/trunk/tools/po/l10n-report.py    Thu Jul 16 10:50:26 2026        
(r1936199)
+++ subversion/trunk/tools/po/l10n-report.py    Thu Jul 16 11:22:07 2026        
(r1936200)
@@ -77,11 +77,11 @@ class l10nReport:
         [stdout, stderr] = subprocess.Popen(cmd_and_args, \
                            stdin=subprocess.PIPE, \
                            stdout=subprocess.PIPE, \
-                           stderr=subprocess.PIPE).communicate(input=cmd_in)
-        return stdout, stderr
+                           
stderr=subprocess.PIPE).communicate(input=cmd_in.encode('UTF-8'))
+        return stdout.decode('UTF-8'), stderr.decode('UTF-8')
 
     def match(self, pattern, string):
-        if isinstance(pattern, basestring):
+        if isinstance(pattern, str):
             pattern = re.compile(pattern)
         match = re.compile(pattern).search(string)
         if match and match.groups():
@@ -146,7 +146,7 @@ def bar_graph(nominal_length, trans, unt
     for count, letter in [(trans, '+'), (untrans, 'U'), (fuzzy, '~'),
                           (obsolete, 'o')]:
         accum_count += count
-        new_bar_end = nominal_length * accum_count / total_count
+        new_bar_end = int(nominal_length * accum_count / total_count)
         s += letter * (new_bar_end - accum_bar)
         accum_bar = new_bar_end
     return s
@@ -179,7 +179,7 @@ def main():
         sys.exit(0)
 
     po_dir = 'subversion/po'
-    branch_name = l10n.match('URL:.*/asf/subversion/(\S+)', info_out)
+    branch_name = l10n.match('URL:.*/asf/subversion/(\\S+)', info_out)
     [info_out, info_err] = l10n.safe_command(['svnversion', po_dir])
     if info_err:
         sys.stderr.write("\nError: %s\n" % info_err)

Reply via email to