marshal: specify allowed types (#9165)

This commit is contained in:
Jelle Zijlstra
2022-11-24 22:54:09 -08:00
committed by GitHub
parent 680d8857d7
commit 8da1e8c31d

View File

@@ -1,9 +1,33 @@
import builtins
import types
from _typeshed import ReadableBuffer, SupportsRead, SupportsWrite
from typing import Any
from typing import Any, Union
from typing_extensions import TypeAlias
version: int
def dump(__value: Any, __file: SupportsWrite[bytes], __version: int = ...) -> None: ...
_Marshallable: TypeAlias = Union[
# handled in w_object() in marshal.c
None,
type[StopIteration],
builtins.ellipsis,
bool,
# handled in w_complex_object() in marshal.c
int,
float,
complex,
bytes,
str,
tuple[_Marshallable, ...],
list[Any],
dict[Any, Any],
set[Any],
frozenset[_Marshallable],
types.CodeType,
ReadableBuffer,
]
def dump(__value: _Marshallable, __file: SupportsWrite[bytes], __version: int = ...) -> None: ...
def load(__file: SupportsRead[bytes]) -> Any: ...
def dumps(__value: Any, __version: int = ...) -> bytes: ...
def dumps(__value: _Marshallable, __version: int = ...) -> bytes: ...
def loads(__bytes: ReadableBuffer) -> Any: ...