Bug#942953: debian-timeline: Python2 removal in sid/bullseye
Hi Birger,
Merged and added to debian/changelog.
Thanks! Bye,
Joost
On Sat, Oct 26, 2019 at 09:21:22AM +0200, Birger Schacht wrote:
> 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: