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: