forked from mrlan/EnglishPal
				
			
		
			
	
	
		
			26 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
		
		
			
		
	
	
			26 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
|  | import sys | ||
|  | 
 | ||
|  | from .compat import chardet | ||
|  | 
 | ||
|  | # This code exists for backwards compatibility reasons. | ||
|  | # I don't like it either. Just look the other way. :) | ||
|  | 
 | ||
|  | for package in ("urllib3", "idna"): | ||
|  |     vendored_package = "pip._vendor." + package | ||
|  |     locals()[package] = __import__(vendored_package) | ||
|  |     # This traversal is apparently necessary such that the identities are | ||
|  |     # preserved (requests.packages.urllib3.* is urllib3.*) | ||
|  |     for mod in list(sys.modules): | ||
|  |         if mod == vendored_package or mod.startswith(vendored_package + '.'): | ||
|  |             unprefixed_mod = mod[len("pip._vendor."):] | ||
|  |             sys.modules['pip._vendor.requests.packages.' + unprefixed_mod] = sys.modules[mod] | ||
|  | 
 | ||
|  | if chardet is not None: | ||
|  |     target = chardet.__name__ | ||
|  |     for mod in list(sys.modules): | ||
|  |         if mod == target or mod.startswith(f"{target}."): | ||
|  |             imported_mod = sys.modules[mod] | ||
|  |             sys.modules[f"requests.packages.{mod}"] = imported_mod | ||
|  |             mod = mod.replace(target, "chardet") | ||
|  |             sys.modules[f"requests.packages.{mod}"] = imported_mod |