[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#942953: debian-timeline: Python2 removal in sid/bullseye



Hi,

I have created a merge request on salsa to migrate debian-timeline to
python3
https://salsa.debian.org/publicity-team/debian-timeline/merge_requests/16.

The same changes are also attached as a patch.

cheers,
Birger
>From 321cdb108f86eb9becd21cd573d294dc0f44cf07 Mon Sep 17 00:00:00 2001
From: Birger Schacht <birger@rantanplan.org>
Date: Thu, 24 Oct 2019 09:43:03 +0200
Subject: [PATCH] Migrate to python3

This is based on lambys patch to port the tails-timeline to python3
(see
https://salsa.debian.org/tails-team/tails-timeline/commit/053b85c715f4d752d1e5c91e2e1498e3a1eec19b)
---
 Makefile       |  2 +-
 build.py       | 41 +++++++++++++++++++++++++----------------
 debian/control |  6 +++---
 3 files changed, 29 insertions(+), 20 deletions(-)

diff --git a/Makefile b/Makefile
index 104dbfd..26381b8 100644
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@ INSMEDIA := $(addprefix ${DESTDIR}${datadir}/,$(wildcard media/debian*) media/ti
 
 xml/%.xml: data/% data/%/* build.py
 	@mkdir -p xml
-	python build.py $< >$@
+	python3 build.py $< >$@
 
 media/timeline_js: /usr/share/javascript/timeline_js
 	ln -sf /usr/share/javascript/timeline_js $@
diff --git a/build.py b/build.py
index ec5fd95..c20a256 100755
--- a/build.py
+++ b/build.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 import os
 import sys
@@ -22,16 +22,18 @@ def main(basedir):
 
     for filename in sorted(filenames):
         if e:
-            print >>sys.stderr
-        print >>sys.stderr, "Reading events from %s" % filename,
-        input = file(filename).read().decode('utf-8').split('\n')
+            print(file=sys.stderr)
+        print("Reading events from {}".format(filename), end='', file=sys.stderr)
+        with open(filename) as f:
+            input = f.read().split('\n')
 
         e = []
         para_num = 0
         for para in deb822.Deb822.iter_paragraphs(input, use_apt_pkg=False):
             if 'Title' not in para:
-                title = "para %s" % para_num
-                e.append("Start-Date should be before End-Date for %s" % title)
+                title = "para {}".format(para_num)
+                e.append("Start-Date should be before End-Date for {}".format(
+                         title))
             else:
                 title = para['Title']
             dates = {}
@@ -41,31 +43,35 @@ def main(basedir):
                 try:
                     dates[header] = date_parse(para[header])
                 except (TypeError, ValueError):
-                    e.append("Invalid date header %s for %s" % (header, title))
+                    e.append("Invalid date header {} for {}".format(
+                        header, title,
+                    ))
             if 'Start-Date' in para and 'End-Date' in para:
                 if 'Start-Date' in dates and 'End-Date' in dates:
                     if dates['Start-Date'] > dates['End-Date']:
-                        e.append("Start-Date is after End-Date for %s" % title)
+                        e.append("Start-Date is after End-Date for {}".format(
+                                 title))
             elif 'Start-Date' in para or 'End-Date' in para:
-                e.append("Missing Start-Date or End-Date for %s" % title)
+                e.append("Missing Start-Date or End-Date for {}".format(
+                         title))
             elif 'Date' not in para:
-                e.append("Missing date or date range for %s" % title)
+                e.append("Missing date or date range for {}".format(title))
             events.appendChild(create_event(doc, para))
             sys.stderr.write('.')
             num += 1
             para_num += 1
-        print >>sys.stderr
+        print(file=sys.stderr)
         if e:
             for error in e:
-                print >>sys.stderr, error
+                print(error, file=sys.stderr)
             error = True
 
     if error:
         return 1
-    print >>sys.stderr, "Writing %s events" % num
+    print("Writing {} events".format(num), file=sys.stderr)
 
-    print '<!-- Generated from %s/* - do not edit -->' % basedir
-    print events.toprettyxml(indent='  ').encode('utf-8')
+    print('<!-- Generated from {}/* - do not edit -->'.format(basedir))
+    print(events.toprettyxml(indent='  '))
 
 
 def create_event(doc, para):
@@ -80,10 +86,13 @@ def create_event(doc, para):
         entry.setAttribute('start', para['Date'])
 
     if 'Source' in para:
-        text = doc.createTextNode('<a href="%s" target="debian-timeline-source">Source</a>' % para['Source'])
+        text = doc.createTextNode(
+            '<a href="{}" target="debian-timeline-source">Source</a>'
+            .format(para['Source']))
         entry.appendChild(text)
 
     return entry
 
+
 if __name__ == '__main__':
     sys.exit(main(sys.argv[1]))
diff --git a/debian/control b/debian/control
index ee15799..5b87b5e 100644
--- a/debian/control
+++ b/debian/control
@@ -6,9 +6,9 @@ Priority: optional
 Build-Depends: debhelper-compat (= 12)
 Build-Depends-Indep: libjs-simile-timeline,
                      libjs-jquery,
-                     python,
-                     python-dateutil,
-                     python-debian
+                     python3,
+                     python3-dateutil,
+                     python3-debian
 Standards-Version: 4.4.0
 Vcs-Browser: https://salsa.debian.org/publicity-team/debian-timeline
 Vcs-Git: https://salsa.debian.org/publicity-team/debian-timeline.git
-- 
2.23.0


Reply to: