From a3d2b847dbaca798d02f1d1b88d335613e1255cf Mon Sep 17 00:00:00 2001 From: Xano Trevisan Kothe Date: Thu, 9 Jul 2020 18:52:42 +0200 Subject: [PATCH] fix: #609 support for python 2.6 Backtrace of the issue: from docx import Document Traceback (most recent call last): File , line 1, in File /usr/lib/python2.6/site-packages/docx/init.py, line 3, in from docx.api import Document # noqa File /usr/lib/python2.6/site-packages/docx/api.py, line 14, in from docx.package import Package File /usr/lib/python2.6/site-packages/docx/package.py, line 9, in from docx.opc.package import OpcPackage File /usr/lib/python2.6/site-packages/docx/opc/package.py, line 116 partnames = {part.partname for part in self.iter_parts()} ^ SyntaxError: invalid syntax --- docx/opc/package.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docx/opc/package.py b/docx/opc/package.py index 7ba87bab5..c203d3963 100644 --- a/docx/opc/package.py +++ b/docx/opc/package.py @@ -113,7 +113,10 @@ def next_partname(self, template): containing a single replacement item, a '%d' to be used to insert the integer portion of the partname. Example: "/word/header%d.xml" """ - partnames = {part.partname for part in self.iter_parts()} + partnames = {} + for part in self.iter_parts(): + partnames.append(part.partname) + for n in range(1, len(partnames) + 2): candidate_partname = template % n if candidate_partname not in partnames: