mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	Issue9374 - Generic parsing of query and fragment portion of urls for any scheme
This commit is contained in:
		
							parent
							
								
									8d88604682
								
							
						
					
					
						commit
						1be320ebdd
					
				
					 3 changed files with 14 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -44,16 +44,9 @@
 | 
			
		|||
               'imap', 'wais', 'file', 'mms', 'https', 'shttp',
 | 
			
		||||
               'snews', 'prospero', 'rtsp', 'rtspu', 'rsync', '',
 | 
			
		||||
               'svn', 'svn+ssh', 'sftp', 'nfs', 'git', 'git+ssh']
 | 
			
		||||
non_hierarchical = ['gopher', 'hdl', 'mailto', 'news',
 | 
			
		||||
                    'telnet', 'wais', 'imap', 'snews', 'sip', 'sips']
 | 
			
		||||
uses_params = ['ftp', 'hdl', 'prospero', 'http', 'imap',
 | 
			
		||||
               'https', 'shttp', 'rtsp', 'rtspu', 'sip', 'sips',
 | 
			
		||||
               'mms', '', 'sftp']
 | 
			
		||||
uses_query = ['http', 'wais', 'imap', 'https', 'shttp', 'mms',
 | 
			
		||||
              'gopher', 'rtsp', 'rtspu', 'sip', 'sips', '']
 | 
			
		||||
uses_fragment = ['ftp', 'hdl', 'http', 'gopher', 'news',
 | 
			
		||||
                 'nntp', 'wais', 'https', 'shttp', 'snews',
 | 
			
		||||
                 'file', 'prospero', '']
 | 
			
		||||
 | 
			
		||||
# Characters valid in scheme names
 | 
			
		||||
scheme_chars = ('abcdefghijklmnopqrstuvwxyz'
 | 
			
		||||
| 
						 | 
				
			
			@ -357,9 +350,9 @@ def urlsplit(url, scheme='', allow_fragments=True):
 | 
			
		|||
        if (('[' in netloc and ']' not in netloc) or
 | 
			
		||||
                (']' in netloc and '[' not in netloc)):
 | 
			
		||||
            raise ValueError("Invalid IPv6 URL")
 | 
			
		||||
    if allow_fragments and scheme in uses_fragment and '#' in url:
 | 
			
		||||
    if allow_fragments and '#' in url:
 | 
			
		||||
        url, fragment = url.split('#', 1)
 | 
			
		||||
    if scheme in uses_query and '?' in url:
 | 
			
		||||
    if '?' in url:
 | 
			
		||||
        url, query = url.split('?', 1)
 | 
			
		||||
    v = SplitResult(scheme, netloc, url, query, fragment)
 | 
			
		||||
    _parse_cache[key] = v
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue