mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[compat] add compat_etree_register_namespace
This commit is contained in:
		| @@ -2529,6 +2529,24 @@ else: | ||||
|                 el.text = el.text.decode('utf-8') | ||||
|         return doc | ||||
|  | ||||
| if hasattr(etree, 'register_namespace'): | ||||
|     compat_etree_register_namespace = etree.register_namespace | ||||
| else: | ||||
|     def compat_etree_register_namespace(prefix, uri): | ||||
|         """Register a namespace prefix. | ||||
|         The registry is global, and any existing mapping for either the | ||||
|         given prefix or the namespace URI will be removed. | ||||
|         *prefix* is the namespace prefix, *uri* is a namespace uri. Tags and | ||||
|         attributes in this namespace will be serialized with prefix if possible. | ||||
|         ValueError is raised if prefix is reserved or is invalid. | ||||
|         """ | ||||
|         if re.match(r"ns\d+$", prefix): | ||||
|             raise ValueError("Prefix format reserved for internal use") | ||||
|         for k, v in list(etree._namespace_map.items()): | ||||
|             if k == uri or v == prefix: | ||||
|                 del etree._namespace_map[k] | ||||
|         etree._namespace_map[uri] = prefix | ||||
|  | ||||
| if sys.version_info < (2, 7): | ||||
|     # Here comes the crazy part: In 2.6, if the xpath is a unicode, | ||||
|     # .//node does not match if a node is a direct child of . ! | ||||
|   | ||||
		Reference in New Issue
	
	Block a user