* gnu/packages/patches/python-feedparser-missing-import.patch: New file. * gnu/local.mk: Add it. * gnu/packages/web.scm (python-feedparser): Use it.
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
Since feedparser messes with Python’s internals by assigning
 | 
						||
to __code__ it needs to import SGMLParseError too. It also
 | 
						||
expects SGMLParseError, which was turned into AssertionError by
 | 
						||
https://github.com/python/cpython/commit/e34bbfd61f405eef89e8aa50672b0b25022de320
 | 
						||
 | 
						||
--- feedparser-6.0.10/feedparser/sgml.py.orig	2023-03-18 09:24:50.976316932 +0100
 | 
						||
+++ feedparser-6.0.10/feedparser/sgml.py	2023-03-18 09:26:32.971928811 +0100
 | 
						||
@@ -28,6 +28,7 @@
 | 
						||
 import re
 | 
						||
 
 | 
						||
 import sgmllib
 | 
						||
+from sgmllib import SGMLParseError
 | 
						||
 
 | 
						||
 __all__ = [
 | 
						||
     'sgmllib',
 | 
						||
@@ -41,6 +42,7 @@
 | 
						||
     'shorttagopen',
 | 
						||
     'starttagopen',
 | 
						||
     'endbracket',
 | 
						||
+    'SGMLParseError',
 | 
						||
 ]
 | 
						||
 
 | 
						||
 # sgmllib defines a number of module-level regular expressions that are
 | 
						||
--- feedparser-6.0.10/feedparser/html.py.orig	2023-03-18 09:32:03.647114745 +0100
 | 
						||
+++ feedparser-6.0.10/feedparser/html.py	2023-03-18 09:46:05.021142671 +0100
 | 
						||
@@ -349,7 +349,7 @@
 | 
						||
 
 | 
						||
         try:
 | 
						||
             return sgmllib.SGMLParser.parse_declaration(self, i)
 | 
						||
-        except sgmllib.SGMLParseError:
 | 
						||
+        except AssertionError:
 | 
						||
             # Escape the doctype declaration and continue parsing.
 | 
						||
             self.handle_data('<')
 | 
						||
             return i+1
 |