Skip to content

Commit a2dc301

Browse files
committed
corefud.Delete bugfix: Functor may refere even to nodes outside DEPS
1 parent c28dfd3 commit a2dc301

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

udapi/block/corefud/delete.py

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -61,17 +61,16 @@ def process_document(self, doc):
6161
if self.empty:
6262
for node in root.descendants:
6363
# process only the nodes dependent on empty nodes
64-
if not '.' in node.raw_deps:
65-
continue
66-
# just remove empty parents if the root remains reachable
67-
if self.is_root_reachable_by_deps(node, root.empty_nodes):
68-
node.deps = [dep for dep in node.deps if not dep['parent'] in root.empty_nodes]
69-
# otherwise propagate to non-empty ancestors
70-
else:
71-
newdeps = self._deps_ignore_nodes(node, root.empty_nodes)
72-
newdeps_sorted = sorted(set((dep['parent'].ord, dep['deprel']) for dep in newdeps))
73-
node.raw_deps = '|'.join(f"{p}:{r}" for p, r in newdeps_sorted)
74-
64+
if '.' in node.raw_deps:
65+
# just remove empty parents if the root remains reachable
66+
if self.is_root_reachable_by_deps(node, root.empty_nodes):
67+
node.deps = [dep for dep in node.deps if not dep['parent'] in root.empty_nodes]
68+
# otherwise propagate to non-empty ancestors
69+
else:
70+
newdeps = self._deps_ignore_nodes(node, root.empty_nodes)
71+
newdeps_sorted = sorted(set((dep['parent'].ord, dep['deprel']) for dep in newdeps))
72+
node.raw_deps = '|'.join(f"{p}:{r}" for p, r in newdeps_sorted)
73+
# This needs to be done even if '.' not in node.raw_deps.
7574
if '.' in node.misc['Functor'].split(':')[0]:
7675
del node.misc['Functor']
7776
root.empty_nodes = []

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy