forked from hasufell/hasufell-repository
Merge remote-tracking branch 'kapsh/zim' into master
This commit is contained in:
commit
1d265ec71c
@ -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:
|
||||
dev-python/pyxdg[python_abis:*(-)?]
|
||||
suggestion:
|
||||
app-text/dvipng
|
||||
app-text/texlive-core
|
||||
app-text/dvipng [[ note = [ equation plugin ] ]]
|
||||
app-text/texlive-core [[ note = [ equation plugin ] ]]
|
||||
dev-libs/zeitgeist:2.0
|
||||
dev-scm/bzr
|
||||
media-gfx/ImageMagick
|
||||
media-gfx/graphviz
|
||||
media-gfx/scrot
|
||||
media-sound/lilypond
|
||||
dev-scm/bzr [[ note = [ version control plugin ] ]]
|
||||
media-gfx/graphviz [[ note = [ diagram editor plugin ] ]]
|
||||
media-gfx/ImageMagick [[ note = [ screenshot plugin ] ]]
|
||||
media-gfx/scrot [[ note = [ screenshot plugin ] ]]
|
||||
media-sound/lilypond [[ note = [ music score plugin ] ]]
|
||||
sci-apps/gnuplot
|
||||
"
|
||||
|
||||
@ -41,6 +41,11 @@ RESTRICT="test"
|
||||
|
||||
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() {
|
||||
unset DISPLAY # tries to access X socket
|
||||
}
|
Loading…
Reference in New Issue
Block a user