From 00afd4468ec740d57a343d0e0944aaefb738295d Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 16 Oct 2018 07:18:57 +0200 Subject: [PATCH] Compat for Python 3.5 --- drafthorse/models/elements.py | 12 ++++++++++-- setup.py | 6 ++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/drafthorse/models/elements.py b/drafthorse/models/elements.py index f70f234..6525fa2 100644 --- a/drafthorse/models/elements.py +++ b/drafthorse/models/elements.py @@ -255,7 +255,10 @@ class DateTimeElement(StringElement): if self.format == '102': node.text = self.value.strftime("%Y%m%d") elif self.format == '616': - node.text = self.value.strftime("%G%V") + if sys.version_info < (3, 6): + node.text = '{}{}'.format(self.value.isocalendar()[0], self.value.isocalendar()[1]) + else: + node.text = self.value.strftime("%G%V") node.attrib['format'] = self.format t.append(node) return t @@ -269,7 +272,12 @@ class DateTimeElement(StringElement): if self.format == '102': self.value = datetime.strptime(root[0].text, '%Y%m%d').date() elif self.format == '616': - self.value = datetime.strptime(root[0].text + '1', '%G%V%u').date() + if sys.version_info < (3, 6): + from isoweek import Week + w = Week(int(root[0].text[:4]), int(root[0].text[4:])) + self.value = w.monday() + else: + self.value = datetime.strptime(root[0].text + '1', '%G%V%u').date() else: raise TypeError("Date format %s cannot be parsed" % root[0].attrib['format']) return self diff --git a/setup.py b/setup.py index 17178f3..0dbf14c 100644 --- a/setup.py +++ b/setup.py @@ -1,3 +1,5 @@ +import sys + from codecs import open from os import path @@ -35,8 +37,8 @@ setup( keywords='xml banking sepa', install_requires=[ - 'lxml' - ], + 'lxml' + ] + (['isoweek'] if sys.version_info < (3, 6) else []), packages=find_packages(include=['sepadd', 'sepadd.*']), ) -- 2.47.3