mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-10 05:39:12 +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: Literal[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