Skip to content

Commit 27e037f

Browse files
committed
allows system cython packages to work
1 parent 7c7ba04 commit 27e037f

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

build/pkgs/cython/patches/5690.patch

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
diff --git a/Cython/Debugger/DebugWriter.py b/Cython/Debugger/DebugWriter.py
2+
index 8b1fb75b027..2c3c310fc64 100644
3+
--- a/Cython/Debugger/DebugWriter.py
4+
+++ b/Cython/Debugger/DebugWriter.py
5+
@@ -18,6 +18,21 @@
6+
etree = None
7+
8+
from ..Compiler import Errors
9+
+from ..Compiler.StringEncoding import EncodedString
10+
+
11+
+
12+
+def is_valid_tag(name):
13+
+ """
14+
+ Names like '.0' are used internally for arguments
15+
+ to functions creating generator expressions,
16+
+ however they are not identifiers.
17+
+
18+
+ See https://github.com/cython/cython/issues/5552
19+
+ """
20+
+ if isinstance(name, EncodedString):
21+
+ if name.startswith(".") and name[1:].isdecimal():
22+
+ return False
23+
+ return True
24+
25+
26+
class CythonDebugWriter(object):
27+
@@ -39,14 +54,17 @@ def __init__(self, output_dir):
28+
self.start('cython_debug', attrs=dict(version='1.0'))
29+
30+
def start(self, name, attrs=None):
31+
- self.tb.start(name, attrs or {})
32+
+ if is_valid_tag(name):
33+
+ self.tb.start(name, attrs or {})
34+
35+
def end(self, name):
36+
- self.tb.end(name)
37+
+ if is_valid_tag(name):
38+
+ self.tb.end(name)
39+
40+
def add_entry(self, name, **attrs):
41+
- self.tb.start(name, attrs)
42+
- self.tb.end(name)
43+
+ if is_valid_tag(name):
44+
+ self.tb.start(name, attrs)
45+
+ self.tb.end(name)
46+
47+
def serialize(self):
48+
self.tb.end('Module')

0 commit comments

Comments
 (0)