You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
from pathlib import Path
 | 
						|
 | 
						|
from jedi.inference.gradual.typeshed import TYPESHED_PATH, create_stub_module
 | 
						|
 | 
						|
 | 
						|
def load_proper_stub_module(inference_state, grammar, file_io, import_names, module_node):
 | 
						|
    """
 | 
						|
    This function is given a random .pyi file and should return the proper
 | 
						|
    module.
 | 
						|
    """
 | 
						|
    path = file_io.path
 | 
						|
    path = Path(path)
 | 
						|
    assert path.suffix == '.pyi'
 | 
						|
    try:
 | 
						|
        relative_path = path.relative_to(TYPESHED_PATH)
 | 
						|
    except ValueError:
 | 
						|
        pass
 | 
						|
    else:
 | 
						|
        # /[...]/stdlib/3/os/__init__.pyi -> stdlib/3/os/__init__
 | 
						|
        rest = relative_path.with_suffix('')
 | 
						|
        # Remove the stdlib/3 or third_party/3.6 part
 | 
						|
        import_names = rest.parts[2:]
 | 
						|
        if rest.name == '__init__':
 | 
						|
            import_names = import_names[:-1]
 | 
						|
 | 
						|
    if import_names is not None:
 | 
						|
        actual_value_set = inference_state.import_module(import_names, prefer_stubs=False)
 | 
						|
 | 
						|
        stub = create_stub_module(
 | 
						|
            inference_state, grammar, actual_value_set,
 | 
						|
            module_node, file_io, import_names
 | 
						|
        )
 | 
						|
        inference_state.stub_module_cache[import_names] = stub
 | 
						|
        return stub
 | 
						|
    return None
 |