mirror of
				https://github.com/astral-sh/ruff.git
				synced 2025-11-03 21:24:29 +00:00 
			
		
		
		
	
		
			
				
	
	
	
	
		
			1.3 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			1.3 KiB
		
	
	
	
	
	
	
	
Builtins
Importing builtin module
Builtin symbols can be explicitly imported:
import builtins
reveal_type(builtins.chr)  # revealed: def chr(i: SupportsIndex, /) -> str
Implicit use of builtin
Or used implicitly:
reveal_type(chr)  # revealed: def chr(i: SupportsIndex, /) -> str
reveal_type(str)  # revealed: <class 'str'>
Builtin symbol from custom typeshed
If we specify a custom typeshed, we can use the builtin symbol from it, and no longer access the builtins from the "actual" vendored typeshed:
[environment]
typeshed = "/typeshed"
/typeshed/stdlib/builtins.pyi:
class Custom: ...
custom_builtin: Custom
/typeshed/stdlib/typing_extensions.pyi:
def reveal_type(obj, /): ...
reveal_type(custom_builtin)  # revealed: Custom
# error: [unresolved-reference]
reveal_type(str)  # revealed: Unknown
Unknown builtin (later defined)
foo has a type of Unknown in this example, as it relies on bar which has not been defined at
that point:
[environment]
typeshed = "/typeshed"
/typeshed/stdlib/builtins.pyi:
foo = bar
bar = 1
/typeshed/stdlib/typing_extensions.pyi:
def reveal_type(obj, /): ...
reveal_type(foo)  # revealed: Unknown