From f24fa4d02e0fedae0a4dc931b1ec6f8a8abbcb34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?= <10796600+picnixz@users.noreply.github.com> Date: Sat, 22 Jun 2024 14:47:02 +0200 Subject: [PATCH 1/4] Update ``symtable`` stubs for 3.13 and 3.14 --- stdlib/symtable.pyi | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/stdlib/symtable.pyi b/stdlib/symtable.pyi index 0f080954ba2c..5202e15022ab 100644 --- a/stdlib/symtable.pyi +++ b/stdlib/symtable.pyi @@ -5,11 +5,29 @@ from typing import Any __all__ = ["symtable", "SymbolTable", "Class", "Function", "Symbol"] +if sys.version_info >= (3, 13): + __all__ += ["SymbolTableType"] + def symtable(code: str, filename: str, compile_type: str) -> SymbolTable: ... +if sys.version_info >= (3, 13): + from enum import StrEnum + + class SymbolTableType(StrEnum): + MODULE = "module" + FUNCTION = "function" + CLASS = "class" + ANNOTATION = "annotation" + TYPE_ALIAS = "type alias" + TYPE_PARAMETERS = "type parameters" + TYPE_VARIABLE = "type variable" + class SymbolTable: def __init__(self, raw_table: Any, filename: str) -> None: ... - def get_type(self) -> str: ... + if sys.version_info >= (3, 13): + def get_type(self) -> SymbolTableType: ... + else: + def get_type(self) -> str: ... def get_id(self) -> int: ... def get_name(self) -> str: ... def get_lineno(self) -> int: ... @@ -47,8 +65,13 @@ class Symbol: def is_local(self) -> bool: ... def is_annotated(self) -> bool: ... def is_free(self) -> bool: ... + if sys.version_info >= (3, 14): + def is_free_class(self) -> bool: ... def is_imported(self) -> bool: ... def is_assigned(self) -> bool: ... + if sys.version_info >= (3, 14): + def is_comp_iter(self) -> bool: ... + def is_comp_cell(self) -> bool: ... def is_namespace(self) -> bool: ... def get_namespaces(self) -> Sequence[SymbolTable]: ... def get_namespace(self) -> SymbolTable: ... From 97f5a446a334167ceaa56e6707ebac47eaa91227 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 22 Jun 2024 12:54:49 +0000 Subject: [PATCH 2/4] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/symtable.pyi | 3 +++ 1 file changed, 3 insertions(+) diff --git a/stdlib/symtable.pyi b/stdlib/symtable.pyi index 5202e15022ab..267741837606 100644 --- a/stdlib/symtable.pyi +++ b/stdlib/symtable.pyi @@ -28,6 +28,7 @@ class SymbolTable: def get_type(self) -> SymbolTableType: ... else: def get_type(self) -> str: ... + def get_id(self) -> int: ... def get_name(self) -> str: ... def get_lineno(self) -> int: ... @@ -67,11 +68,13 @@ class Symbol: def is_free(self) -> bool: ... if sys.version_info >= (3, 14): def is_free_class(self) -> bool: ... + def is_imported(self) -> bool: ... def is_assigned(self) -> bool: ... if sys.version_info >= (3, 14): def is_comp_iter(self) -> bool: ... def is_comp_cell(self) -> bool: ... + def is_namespace(self) -> bool: ... def get_namespaces(self) -> Sequence[SymbolTable]: ... def get_namespace(self) -> SymbolTable: ... From 4bf6911e6971013d341204122a4bcd3701812ac1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?= <10796600+picnixz@users.noreply.github.com> Date: Sat, 22 Jun 2024 14:58:22 +0200 Subject: [PATCH 3/4] add missing method introduced in 3.14 --- stdlib/symtable.pyi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stdlib/symtable.pyi b/stdlib/symtable.pyi index 5202e15022ab..5b98c127115b 100644 --- a/stdlib/symtable.pyi +++ b/stdlib/symtable.pyi @@ -60,6 +60,8 @@ class Symbol: def get_name(self) -> str: ... def is_referenced(self) -> bool: ... def is_parameter(self) -> bool: ... + if sys.version_info >= (3, 14): + def is_type_parameter(self) -> bool: ... def is_global(self) -> bool: ... def is_declared_global(self) -> bool: ... def is_local(self) -> bool: ... From 97f603a8ac67fcc35c5487ca5197da51e6848362 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?= <10796600+picnixz@users.noreply.github.com> Date: Sat, 22 Jun 2024 14:59:07 +0200 Subject: [PATCH 4/4] add missing method introduced in 3.14 --- stdlib/symtable.pyi | 1 + 1 file changed, 1 insertion(+) diff --git a/stdlib/symtable.pyi b/stdlib/symtable.pyi index cd7f796830f7..5481d4d1dd4a 100644 --- a/stdlib/symtable.pyi +++ b/stdlib/symtable.pyi @@ -63,6 +63,7 @@ class Symbol: def is_parameter(self) -> bool: ... if sys.version_info >= (3, 14): def is_type_parameter(self) -> bool: ... + def is_global(self) -> bool: ... def is_declared_global(self) -> bool: ... def is_local(self) -> bool: ...