zim: version bump to 0.73.2
This commit is contained in:
		
							parent
							
								
									d604fdd3e3
								
							
						
					
					
						commit
						a1d695d130
					
				@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					Upstream: sent https://github.com/zim-desktop-wiki/zim-desktop-wiki/pull/1261
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					From 1e63570eb941b985dc70df31043c7f4279c6a935 Mon Sep 17 00:00:00 2001
 | 
				
			||||||
 | 
					From: Alexander Kapshuna <kapsh@kap.sh>
 | 
				
			||||||
 | 
					Date: Fri, 18 Sep 2020 01:15:16 +0300
 | 
				
			||||||
 | 
					Subject: [PATCH] Fix reading preformatted text under Python 3.9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					 zim/formats/__init__.py | 2 +-
 | 
				
			||||||
 | 
					 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					diff --git a/zim/formats/__init__.py b/zim/formats/__init__.py
 | 
				
			||||||
 | 
					index e1149f7f..f22b0b0b 100644
 | 
				
			||||||
 | 
					--- a/zim/formats/__init__.py
 | 
				
			||||||
 | 
					+++ b/zim/formats/__init__.py
 | 
				
			||||||
 | 
					@@ -822,7 +822,7 @@ class ParseTreeBuilder(Builder):
 | 
				
			||||||
 | 
					 		self._last_char = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 	def append(self, tag, attrib=None, text=None):
 | 
				
			||||||
 | 
					-		attrib = attrib.copy() if attrib is not None else None
 | 
				
			||||||
 | 
					+		attrib = attrib.copy() if attrib is not None else {}
 | 
				
			||||||
 | 
					 		if tag in BLOCK_LEVEL:
 | 
				
			||||||
 | 
					 			if text and not text.endswith('\n'):
 | 
				
			||||||
 | 
					 				text += '\n'
 | 
				
			||||||
 | 
					--
 | 
				
			||||||
 | 
					2.28.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -0,0 +1,239 @@
 | 
				
			|||||||
 | 
					Upstream: master
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					From 0c7d355a76236b0c687fb7c59cd974c2c7f35657 Mon Sep 17 00:00:00 2001
 | 
				
			||||||
 | 
					From: Robin Lee <cheeselee@fedoraproject.org>
 | 
				
			||||||
 | 
					Date: Thu, 10 Sep 2020 21:31:22 +0800
 | 
				
			||||||
 | 
					Subject: [PATCH] Replace usage of `getchildren` and `getiterator` with `list`
 | 
				
			||||||
 | 
					 or `iter`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Methods getchildren() and getiterator() of classes ElementTree and Element in
 | 
				
			||||||
 | 
					the ElementTree module have been deprecated since Python 3.2 and removed since
 | 
				
			||||||
 | 
					Python 3.9.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fixes #1258
 | 
				
			||||||
 | 
					Closes #1259
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					 tests/__init__.py       |  2 +-
 | 
				
			||||||
 | 
					 zim/formats/__init__.py | 44 ++++++++++++++++++++---------------------
 | 
				
			||||||
 | 
					 zim/gui/pageview.py     |  2 +-
 | 
				
			||||||
 | 
					 3 files changed, 24 insertions(+), 24 deletions(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					diff --git a/tests/__init__.py b/tests/__init__.py
 | 
				
			||||||
 | 
					index 20e5b8df..88f87f87 100644
 | 
				
			||||||
 | 
					--- a/tests/__init__.py
 | 
				
			||||||
 | 
					+++ b/tests/__init__.py
 | 
				
			||||||
 | 
					@@ -559,7 +559,7 @@ class _TestData(object):
 | 
				
			||||||
 | 
					 		tree = etree.ElementTree(file=root + '/tests/data/notebook-wiki.xml')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 		test_data = []
 | 
				
			||||||
 | 
					-		for node in tree.getiterator(tag='page'):
 | 
				
			||||||
 | 
					+		for node in tree.iter(tag='page'):
 | 
				
			||||||
 | 
					 			name = node.attrib['name']
 | 
				
			||||||
 | 
					 			text = str(node.text.lstrip('\n'))
 | 
				
			||||||
 | 
					 			test_data.append((name, text))
 | 
				
			||||||
 | 
					diff --git a/zim/formats/__init__.py b/zim/formats/__init__.py
 | 
				
			||||||
 | 
					index 9e00c169..e1149f7f 100644
 | 
				
			||||||
 | 
					--- a/zim/formats/__init__.py
 | 
				
			||||||
 | 
					+++ b/zim/formats/__init__.py
 | 
				
			||||||
 | 
					@@ -262,7 +262,7 @@ class ParseTree(object):
 | 
				
			||||||
 | 
					 		'''Returns True if the tree contains any content at all.'''
 | 
				
			||||||
 | 
					 		root = self._etree.getroot()
 | 
				
			||||||
 | 
					 		return root is not None and (
 | 
				
			||||||
 | 
					-			bool(root.getchildren()) or (root.text and not root.text.isspace())
 | 
				
			||||||
 | 
					+			bool(list(root)) or (root.text and not root.text.isspace())
 | 
				
			||||||
 | 
					 		)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 	@property
 | 
				
			||||||
 | 
					@@ -284,14 +284,14 @@ class ParseTree(object):
 | 
				
			||||||
 | 
					 		myroot = self._etree.getroot()
 | 
				
			||||||
 | 
					 		otherroot = tree._etree.getroot()
 | 
				
			||||||
 | 
					 		if otherroot.text:
 | 
				
			||||||
 | 
					-			children = myroot.getchildren()
 | 
				
			||||||
 | 
					+			children = list(myroot)
 | 
				
			||||||
 | 
					 			if children:
 | 
				
			||||||
 | 
					 				last = children[-1]
 | 
				
			||||||
 | 
					 				last.tail = (last.tail or '') + otherroot.text
 | 
				
			||||||
 | 
					 			else:
 | 
				
			||||||
 | 
					 				myroot.text = (myroot.text or '') + otherroot.text
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-		for element in otherroot.getchildren():
 | 
				
			||||||
 | 
					+		for element in iter(otherroot):
 | 
				
			||||||
 | 
					 			myroot.append(element)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 		return self
 | 
				
			||||||
 | 
					@@ -312,7 +312,7 @@ class ParseTree(object):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 		# HACK: Force sorting of attrib - else change in python3.8 breaks test cases
 | 
				
			||||||
 | 
					 		# Ensure all attrib are string, else ElementTree fails
 | 
				
			||||||
 | 
					-		for element in self._etree.getiterator('*'):
 | 
				
			||||||
 | 
					+		for element in self._etree.iter('*'):
 | 
				
			||||||
 | 
					 			myattrib = element.attrib.copy()
 | 
				
			||||||
 | 
					 			element.attrib.clear()
 | 
				
			||||||
 | 
					 			for key in sorted(myattrib.keys()):
 | 
				
			||||||
 | 
					@@ -342,8 +342,8 @@ class ParseTree(object):
 | 
				
			||||||
 | 
					 		from zim.notebook.page import HRef # XXX
 | 
				
			||||||
 | 
					 		seen = set()
 | 
				
			||||||
 | 
					 		for elt in itertools.chain(
 | 
				
			||||||
 | 
					-			self._etree.getiterator(LINK),
 | 
				
			||||||
 | 
					-			self._etree.getiterator(IMAGE)
 | 
				
			||||||
 | 
					+			self._etree.iter(LINK),
 | 
				
			||||||
 | 
					+			self._etree.iter(IMAGE)
 | 
				
			||||||
 | 
					 		):
 | 
				
			||||||
 | 
					 			href = elt.attrib.get('href')
 | 
				
			||||||
 | 
					 			if href and href not in seen:
 | 
				
			||||||
 | 
					@@ -359,7 +359,7 @@ class ParseTree(object):
 | 
				
			||||||
 | 
					 		@returns: yields an unordered list of tag names
 | 
				
			||||||
 | 
					 		'''
 | 
				
			||||||
 | 
					 		seen = set()
 | 
				
			||||||
 | 
					-		for elt in self._etree.getiterator(TAG):
 | 
				
			||||||
 | 
					+		for elt in self._etree.iter(TAG):
 | 
				
			||||||
 | 
					 			name = elt.text
 | 
				
			||||||
 | 
					 			if not name in seen:
 | 
				
			||||||
 | 
					 				seen.add(name)
 | 
				
			||||||
 | 
					@@ -367,7 +367,7 @@ class ParseTree(object):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 	def _get_heading_element(self, level=1):
 | 
				
			||||||
 | 
					 		root = self._etree.getroot()
 | 
				
			||||||
 | 
					-		children = root.getchildren()
 | 
				
			||||||
 | 
					+		children = list(root)
 | 
				
			||||||
 | 
					 		if root.text and not root.text.isspace():
 | 
				
			||||||
 | 
					 			return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@@ -424,7 +424,7 @@ class ParseTree(object):
 | 
				
			||||||
 | 
					 		'''
 | 
				
			||||||
 | 
					 		root = self._etree.getroot()
 | 
				
			||||||
 | 
					 		roottext = root.text and not root.text.isspace()
 | 
				
			||||||
 | 
					-		children = root.getchildren()
 | 
				
			||||||
 | 
					+		children = list(root)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 		if children and not roottext:
 | 
				
			||||||
 | 
					 			first = children[0]
 | 
				
			||||||
 | 
					@@ -442,7 +442,7 @@ class ParseTree(object):
 | 
				
			||||||
 | 
					 		and a max depth.
 | 
				
			||||||
 | 
					 		'''
 | 
				
			||||||
 | 
					 		path = []
 | 
				
			||||||
 | 
					-		for heading in self._etree.getiterator('h'):
 | 
				
			||||||
 | 
					+		for heading in self._etree.iter('h'):
 | 
				
			||||||
 | 
					 			level = int(heading.attrib['level'])
 | 
				
			||||||
 | 
					 			# find parent header in path using old level
 | 
				
			||||||
 | 
					 			while path and path[-1][0] >= level:
 | 
				
			||||||
 | 
					@@ -461,11 +461,11 @@ class ParseTree(object):
 | 
				
			||||||
 | 
					 		adds a '_src_file' attribute to the elements with the full file path.
 | 
				
			||||||
 | 
					 		'''
 | 
				
			||||||
 | 
					 		if notebook is None:
 | 
				
			||||||
 | 
					-			for element in self._etree.getiterator('img'):
 | 
				
			||||||
 | 
					+			for element in self._etree.iter('img'):
 | 
				
			||||||
 | 
					 				filepath = element.attrib['src']
 | 
				
			||||||
 | 
					 				element.attrib['_src_file'] = File(filepath)
 | 
				
			||||||
 | 
					 		else:
 | 
				
			||||||
 | 
					-			for element in self._etree.getiterator('img'):
 | 
				
			||||||
 | 
					+			for element in self._etree.iter('img'):
 | 
				
			||||||
 | 
					 				filepath = element.attrib['src']
 | 
				
			||||||
 | 
					 				element.attrib['_src_file'] = notebook.resolve_file(element.attrib['src'], path)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@@ -473,7 +473,7 @@ class ParseTree(object):
 | 
				
			||||||
 | 
					 		'''Undo effect of L{resolve_images()}, mainly intended for
 | 
				
			||||||
 | 
					 		testing.
 | 
				
			||||||
 | 
					 		'''
 | 
				
			||||||
 | 
					-		for element in self._etree.getiterator('img'):
 | 
				
			||||||
 | 
					+		for element in self._etree.iter('img'):
 | 
				
			||||||
 | 
					 			if '_src_file' in element.attrib:
 | 
				
			||||||
 | 
					 				element.attrib.pop('_src_file')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@@ -481,7 +481,7 @@ class ParseTree(object):
 | 
				
			||||||
 | 
					 		'''Calls encode_url() on all links that contain urls.
 | 
				
			||||||
 | 
					 		See zim.parsing for details. Modifies the parse tree.
 | 
				
			||||||
 | 
					 		'''
 | 
				
			||||||
 | 
					-		for link in self._etree.getiterator('link'):
 | 
				
			||||||
 | 
					+		for link in self._etree.iter('link'):
 | 
				
			||||||
 | 
					 			href = link.attrib['href']
 | 
				
			||||||
 | 
					 			if href and is_url_re.match(href):
 | 
				
			||||||
 | 
					 				link.attrib['href'] = url_encode(href, mode=mode)
 | 
				
			||||||
 | 
					@@ -492,7 +492,7 @@ class ParseTree(object):
 | 
				
			||||||
 | 
					 		'''Calls decode_url() on all links that contain urls.
 | 
				
			||||||
 | 
					 		See zim.parsing for details. Modifies the parse tree.
 | 
				
			||||||
 | 
					 		'''
 | 
				
			||||||
 | 
					-		for link in self._etree.getiterator('link'):
 | 
				
			||||||
 | 
					+		for link in self._etree.iter('link'):
 | 
				
			||||||
 | 
					 			href = link.attrib['href']
 | 
				
			||||||
 | 
					 			if href and is_url_re.match(href):
 | 
				
			||||||
 | 
					 				link.attrib['href'] = url_decode(href, mode=mode)
 | 
				
			||||||
 | 
					@@ -502,7 +502,7 @@ class ParseTree(object):
 | 
				
			||||||
 | 
					 	def count(self, text):
 | 
				
			||||||
 | 
					 		'''Returns the number of occurences of 'text' in this tree.'''
 | 
				
			||||||
 | 
					 		count = 0
 | 
				
			||||||
 | 
					-		for element in self._etree.getiterator():
 | 
				
			||||||
 | 
					+		for element in self._etree.iter():
 | 
				
			||||||
 | 
					 			if element.text:
 | 
				
			||||||
 | 
					 				count += element.text.count(text)
 | 
				
			||||||
 | 
					 			if element.tail:
 | 
				
			||||||
 | 
					@@ -515,7 +515,7 @@ class ParseTree(object):
 | 
				
			||||||
 | 
					 		in this tree.
 | 
				
			||||||
 | 
					 		'''
 | 
				
			||||||
 | 
					 		count = 0
 | 
				
			||||||
 | 
					-		for element in self._etree.getiterator():
 | 
				
			||||||
 | 
					+		for element in self._etree.iter():
 | 
				
			||||||
 | 
					 			if element.text:
 | 
				
			||||||
 | 
					 				newstring, n = regex.subn('', element.text)
 | 
				
			||||||
 | 
					 				count += n
 | 
				
			||||||
 | 
					@@ -535,7 +535,7 @@ class ParseTree(object):
 | 
				
			||||||
 | 
					 			elif element.tag in ('li', 'h'):
 | 
				
			||||||
 | 
					 				return True # implicit newline
 | 
				
			||||||
 | 
					 			else:
 | 
				
			||||||
 | 
					-				children = element.getchildren()
 | 
				
			||||||
 | 
					+				children = list(element)
 | 
				
			||||||
 | 
					 				if children:
 | 
				
			||||||
 | 
					 					return self._get_element_ends_with_newline(children[-1]) # recurs
 | 
				
			||||||
 | 
					 				elif element.text:
 | 
				
			||||||
 | 
					@@ -586,7 +586,7 @@ class ParseTree(object):
 | 
				
			||||||
 | 
					 		@param tag: tag name
 | 
				
			||||||
 | 
					 		@returns: yields L{Node} objects
 | 
				
			||||||
 | 
					 		'''
 | 
				
			||||||
 | 
					-		for elt in self._etree.getiterator(tag):
 | 
				
			||||||
 | 
					+		for elt in self._etree.iter(tag):
 | 
				
			||||||
 | 
					 			yield Element.new_from_etree(elt)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 	def replace(self, tag, func):
 | 
				
			||||||
 | 
					@@ -932,7 +932,7 @@ class OldParseTreeBuilder(object):
 | 
				
			||||||
 | 
					 		if len(self._stack) > 1 and not (
 | 
				
			||||||
 | 
					 			tag in (IMAGE, OBJECT, HEADDATA, TABLEDATA)
 | 
				
			||||||
 | 
					 			or (self._last.text and not self._last.text.isspace())
 | 
				
			||||||
 | 
					-			or self._last.getchildren()
 | 
				
			||||||
 | 
					+			or bool(list(self._last))
 | 
				
			||||||
 | 
					 		):
 | 
				
			||||||
 | 
					 			# purge empty tags
 | 
				
			||||||
 | 
					 			if self._last.text and self._last.text.isspace():
 | 
				
			||||||
 | 
					@@ -940,7 +940,7 @@ class OldParseTreeBuilder(object):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 			empty = self._stack.pop()
 | 
				
			||||||
 | 
					 			self._stack[-1].remove(empty)
 | 
				
			||||||
 | 
					-			children = self._stack[-1].getchildren()
 | 
				
			||||||
 | 
					+			children = list(self._stack[-1])
 | 
				
			||||||
 | 
					 			if children:
 | 
				
			||||||
 | 
					 				self._last = children[-1]
 | 
				
			||||||
 | 
					 				if not self._last.tail is None:
 | 
				
			||||||
 | 
					@@ -1053,7 +1053,7 @@ class OldParseTreeBuilder(object):
 | 
				
			||||||
 | 
					 	def _append_to_previous(self, text):
 | 
				
			||||||
 | 
					 		'''Add text before current element'''
 | 
				
			||||||
 | 
					 		parent = self._stack[-2]
 | 
				
			||||||
 | 
					-		children = parent.getchildren()[:-1]
 | 
				
			||||||
 | 
					+		children = list(parent)[:-1]
 | 
				
			||||||
 | 
					 		if children:
 | 
				
			||||||
 | 
					 			if children[-1].tail:
 | 
				
			||||||
 | 
					 				children[-1].tail = children[-1].tail + text
 | 
				
			||||||
 | 
					diff --git a/zim/gui/pageview.py b/zim/gui/pageview.py
 | 
				
			||||||
 | 
					index 84fe99b4..c2c29cc5 100644
 | 
				
			||||||
 | 
					--- a/zim/gui/pageview.py
 | 
				
			||||||
 | 
					+++ b/zim/gui/pageview.py
 | 
				
			||||||
 | 
					@@ -857,7 +857,7 @@ class TextBuffer(Gtk.TextBuffer):
 | 
				
			||||||
 | 
					 				if not iter.starts_line():
 | 
				
			||||||
 | 
					 					self.insert_at_cursor('\n')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-		for element in node.getchildren():
 | 
				
			||||||
 | 
					+		for element in iter(node):
 | 
				
			||||||
 | 
					 			if element.tag in ('p', 'div'):
 | 
				
			||||||
 | 
					 				# No force line start here on purpose
 | 
				
			||||||
 | 
					 				if 'indent' in element.attrib:
 | 
				
			||||||
 | 
					--
 | 
				
			||||||
 | 
					2.28.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -25,14 +25,14 @@ DEPENDENCIES="
 | 
				
			|||||||
    recommendation:
 | 
					    recommendation:
 | 
				
			||||||
        dev-python/pyxdg[python_abis:*(-)?]
 | 
					        dev-python/pyxdg[python_abis:*(-)?]
 | 
				
			||||||
    suggestion:
 | 
					    suggestion:
 | 
				
			||||||
        app-text/dvipng
 | 
					        app-text/dvipng [[ note = [ equation plugin ] ]]
 | 
				
			||||||
        app-text/texlive-core
 | 
					        app-text/texlive-core [[ note = [ equation plugin ] ]]
 | 
				
			||||||
        dev-libs/zeitgeist:2.0
 | 
					        dev-libs/zeitgeist:2.0
 | 
				
			||||||
        dev-scm/bzr
 | 
					        dev-scm/bzr [[ note = [ version control plugin ] ]]
 | 
				
			||||||
        media-gfx/ImageMagick
 | 
					        media-gfx/graphviz [[ note = [ diagram editor plugin ] ]]
 | 
				
			||||||
        media-gfx/graphviz
 | 
					        media-gfx/ImageMagick [[ note = [ screenshot plugin ] ]]
 | 
				
			||||||
        media-gfx/scrot
 | 
					        media-gfx/scrot [[ note = [ screenshot plugin ] ]]
 | 
				
			||||||
        media-sound/lilypond
 | 
					        media-sound/lilypond [[ note = [ music score plugin ] ]]
 | 
				
			||||||
        sci-apps/gnuplot
 | 
					        sci-apps/gnuplot
 | 
				
			||||||
"
 | 
					"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -41,6 +41,11 @@ RESTRICT="test"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
WORK=${WORKBASE}/${PNV/_rc/-rc}
 | 
					WORK=${WORKBASE}/${PNV/_rc/-rc}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEFAULT_SRC_PREPARE_PATCHES=(
 | 
				
			||||||
 | 
					    "${FILES}"/Fix-reading-preformatted-text-under-Python-3.9.patch
 | 
				
			||||||
 | 
					    "${FILES}"/Replace-usage-of-getchildren-and-getiterator-with-li.patch
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pkg_setup() {
 | 
					pkg_setup() {
 | 
				
			||||||
    unset DISPLAY  # tries to access X socket
 | 
					    unset DISPLAY  # tries to access X socket
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user