Skip to content

Commit 81eff74

Browse files
Restrict ast.parse to only take bytes instead of Buffer as filename.
1 parent 0cf0227 commit 81eff74

File tree

1 file changed

+85
-7
lines changed

1 file changed

+85
-7
lines changed

stdlib/ast.pyi

Lines changed: 85 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1747,7 +1747,7 @@ if sys.version_info >= (3, 13):
17471747
@overload
17481748
def parse(
17491749
source: _T,
1750-
filename: str | ReadableBuffer | os.PathLike[Any] = "<unknown>",
1750+
filename: str | bytes | os.PathLike[Any] = "<unknown>",
17511751
mode: Literal["exec", "eval", "func_type", "single"] = "exec",
17521752
*,
17531753
type_comments: bool = False,
@@ -1757,7 +1757,7 @@ if sys.version_info >= (3, 13):
17571757
@overload
17581758
def parse(
17591759
source: str | ReadableBuffer,
1760-
filename: str | ReadableBuffer | os.PathLike[Any] = "<unknown>",
1760+
filename: str | bytes | os.PathLike[Any] = "<unknown>",
17611761
mode: Literal["exec"] = "exec",
17621762
*,
17631763
type_comments: bool = False,
@@ -1767,7 +1767,7 @@ if sys.version_info >= (3, 13):
17671767
@overload
17681768
def parse(
17691769
source: str | ReadableBuffer,
1770-
filename: str | ReadableBuffer | os.PathLike[Any],
1770+
filename: str | bytes | os.PathLike[Any],
17711771
mode: Literal["eval"],
17721772
*,
17731773
type_comments: bool = False,
@@ -1777,7 +1777,7 @@ if sys.version_info >= (3, 13):
17771777
@overload
17781778
def parse(
17791779
source: str | ReadableBuffer,
1780-
filename: str | ReadableBuffer | os.PathLike[Any],
1780+
filename: str | bytes | os.PathLike[Any],
17811781
mode: Literal["func_type"],
17821782
*,
17831783
type_comments: bool = False,
@@ -1787,7 +1787,7 @@ if sys.version_info >= (3, 13):
17871787
@overload
17881788
def parse(
17891789
source: str | ReadableBuffer,
1790-
filename: str | ReadableBuffer | os.PathLike[Any],
1790+
filename: str | bytes | os.PathLike[Any],
17911791
mode: Literal["single"],
17921792
*,
17931793
type_comments: bool = False,
@@ -1824,14 +1824,92 @@ if sys.version_info >= (3, 13):
18241824
@overload
18251825
def parse(
18261826
source: str | ReadableBuffer,
1827-
filename: str | ReadableBuffer | os.PathLike[Any] = "<unknown>",
1827+
filename: str | bytes | os.PathLike[Any] = "<unknown>",
18281828
mode: str = "exec",
18291829
*,
18301830
type_comments: bool = False,
18311831
feature_version: None | int | tuple[int, int] = None,
18321832
optimize: Literal[-1, 0, 1, 2] = -1,
18331833
) -> mod: ...
1834-
1834+
elif sys.version_info >= (3, 12):
1835+
@overload
1836+
def parse(
1837+
source: _T,
1838+
filename: str | bytes | os.PathLike[Any] = "<unknown>",
1839+
mode: Literal["exec", "eval", "func_type", "single"] = "exec",
1840+
*,
1841+
type_comments: bool = False,
1842+
feature_version: None | int | tuple[int, int] = None,
1843+
) -> _T: ...
1844+
@overload
1845+
def parse(
1846+
source: str | ReadableBuffer,
1847+
filename: str | bytes | os.PathLike[Any] = "<unknown>",
1848+
mode: Literal["exec"] = "exec",
1849+
*,
1850+
type_comments: bool = False,
1851+
feature_version: None | int | tuple[int, int] = None,
1852+
) -> Module: ...
1853+
@overload
1854+
def parse(
1855+
source: str | ReadableBuffer,
1856+
filename: str | bytes | os.PathLike[Any],
1857+
mode: Literal["eval"],
1858+
*,
1859+
type_comments: bool = False,
1860+
feature_version: None | int | tuple[int, int] = None,
1861+
) -> Expression: ...
1862+
@overload
1863+
def parse(
1864+
source: str | ReadableBuffer,
1865+
filename: str | bytes | os.PathLike[Any],
1866+
mode: Literal["func_type"],
1867+
*,
1868+
type_comments: bool = False,
1869+
feature_version: None | int | tuple[int, int] = None,
1870+
) -> FunctionType: ...
1871+
@overload
1872+
def parse(
1873+
source: str | ReadableBuffer,
1874+
filename: str | bytes | os.PathLike[Any],
1875+
mode: Literal["single"],
1876+
*,
1877+
type_comments: bool = False,
1878+
feature_version: None | int | tuple[int, int] = None,
1879+
) -> Interactive: ...
1880+
@overload
1881+
def parse(
1882+
source: str | ReadableBuffer,
1883+
*,
1884+
mode: Literal["eval"],
1885+
type_comments: bool = False,
1886+
feature_version: None | int | tuple[int, int] = None,
1887+
) -> Expression: ...
1888+
@overload
1889+
def parse(
1890+
source: str | ReadableBuffer,
1891+
*,
1892+
mode: Literal["func_type"],
1893+
type_comments: bool = False,
1894+
feature_version: None | int | tuple[int, int] = None,
1895+
) -> FunctionType: ...
1896+
@overload
1897+
def parse(
1898+
source: str | ReadableBuffer,
1899+
*,
1900+
mode: Literal["single"],
1901+
type_comments: bool = False,
1902+
feature_version: None | int | tuple[int, int] = None,
1903+
) -> Interactive: ...
1904+
@overload
1905+
def parse(
1906+
source: str | ReadableBuffer,
1907+
filename: str | bytes | os.PathLike[Any] = "<unknown>",
1908+
mode: str = "exec",
1909+
*,
1910+
type_comments: bool = False,
1911+
feature_version: None | int | tuple[int, int] = None,
1912+
) -> mod: ...
18351913
else:
18361914
@overload
18371915
def parse(

0 commit comments

Comments
 (0)