mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-07 12:44:28 +08:00
Apply stub fixes from o11c.
These are extracted from https://github.com/JukkaL/mypy/pull/721
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
# based on http://docs.python.org/3.2/library/sys.html
|
||||
|
||||
from typing import (
|
||||
List, Sequence, Any, Dict, Tuple, TextIO, overload, Optional
|
||||
List, Sequence, Any, Dict, Tuple, TextIO, overload, Optional, Union
|
||||
)
|
||||
from types import TracebackType
|
||||
|
||||
@@ -115,7 +115,7 @@ def displayhook(value: Optional[int]) -> None: ...
|
||||
def excepthook(type_: type, value: BaseException,
|
||||
traceback: TracebackType) -> None: ...
|
||||
def exc_info() -> Tuple[type, BaseException, TracebackType]: ...
|
||||
def exit(arg: int = None) -> None: ...
|
||||
def exit(arg: Union[int, str] = ...) -> None: ...
|
||||
def getcheckinterval() -> int: ... # deprecated
|
||||
def getdefaultencoding() -> str: ...
|
||||
def getdlopenflags() -> int: ... # Unix only
|
||||
|
||||
@@ -1,31 +1,194 @@
|
||||
from typing import Any, BinaryIO, Callable, IO
|
||||
# Better codecs stubs hand-written by o11c.
|
||||
# https://docs.python.org/3/library/codecs.html
|
||||
from typing import (
|
||||
BinaryIO,
|
||||
Callable,
|
||||
Iterable,
|
||||
Iterator,
|
||||
List,
|
||||
Tuple,
|
||||
Union,
|
||||
)
|
||||
|
||||
BOM_UTF8 = b''
|
||||
from abc import abstractmethod
|
||||
|
||||
class Codec: ...
|
||||
class StreamWriter(Codec): ...
|
||||
|
||||
class CodecInfo(tuple):
|
||||
def __init__(self, *args) -> None: ...
|
||||
# TODO: this only satisfies the most common interface, where
|
||||
# bytes is the raw form and str is the cooked form.
|
||||
# In the long run, both should become template parameters maybe?
|
||||
# There *are* bytes->bytes and str->str encodings in the standard library.
|
||||
# Python 3.5 supposedly might change something there.
|
||||
|
||||
_decoded = str
|
||||
_encoded = bytes
|
||||
|
||||
# TODO: It is not possible to specify these signatures correctly, because
|
||||
# they have an optional positional or keyword argument for errors=.
|
||||
_encode_type = Callable[[_decoded], _encoded] # signature of Codec().encode
|
||||
_decode_type = Callable[[_encoded], _decoded] # signature of Codec().decode
|
||||
_stream_reader_type = Callable[[BinaryIO], 'StreamReader'] # signature of StreamReader __init__
|
||||
_stream_writer_type = Callable[[BinaryIO], 'StreamWriter'] # signature of StreamWriter __init__
|
||||
_incremental_encoder_type = Callable[[], 'IncrementalEncoder'] # signature of IncrementalEncoder __init__
|
||||
_incremental_decode_type = Callable[[], 'IncrementalDecoder'] # signature of IncrementalDecoder __init__
|
||||
|
||||
|
||||
def encode(obj: _decoded, encoding: str = 'utf-8', errors: str = 'strict') -> _encoded:
|
||||
...
|
||||
def decode(obj: _encoded, encoding: str = 'utf-8', errors: str = 'strict') -> _decoded:
|
||||
...
|
||||
|
||||
def lookup(encoding: str) -> 'CodecInfo':
|
||||
...
|
||||
class CodecInfo(Tuple[_encode_type, _decode_type, _stream_reader_type, _stream_writer_type]):
|
||||
def __init__(self, encode: _encode_type, decode: _decode_type, streamreader: _stream_reader_type = None, streamwriter: _stream_writer_type = None, incrementalencoder: _incremental_encoder_type = None, incrementaldecoder: _incremental_decode_type = None, name: str = None) -> None:
|
||||
self.encode = encode
|
||||
self.decode = decode
|
||||
self.streamreader = streamreader
|
||||
self.streamwriter = streamwriter
|
||||
self.incrementalencoder = incrementalencoder
|
||||
self.incrementaldecoder = incrementaldecoder
|
||||
self.name = name
|
||||
|
||||
def getencoder(encoding: str) -> _encode_type:
|
||||
...
|
||||
def getdecoder(encoding: str) -> _encode_type:
|
||||
...
|
||||
def getincrementalencoder(encoding: str) -> _incremental_encoder_type:
|
||||
...
|
||||
def getincrementaldecoder(encoding: str) -> _incremental_encoder_type:
|
||||
...
|
||||
def getreader(encoding: str) -> _stream_reader_type:
|
||||
...
|
||||
def getwriter(encoding: str) -> _stream_writer_type:
|
||||
...
|
||||
|
||||
def register(search_function: Callable[[str], CodecInfo]) -> None:
|
||||
...
|
||||
|
||||
def register_error(name: str, error_handler: Callable[[UnicodeError], Any]) -> None: ...
|
||||
|
||||
def lookup(encoding: str) -> CodecInfo:
|
||||
def open(filename: str, mode: str = 'r', encoding: str = None, errors: str = 'strict', buffering: int = 1) -> StreamReaderWriter:
|
||||
...
|
||||
|
||||
# TODO This Callable is actually a StreamWriter constructor
|
||||
def getwriter(encoding: str) -> Callable[[BinaryIO], StreamWriter]: ...
|
||||
def EncodedFile(file: BinaryIO, data_encoding: str, file_encoding: str = None, errors = 'strict') -> 'StreamRecoder':
|
||||
...
|
||||
|
||||
def iterencode(iterator: Iterable[_decoded], encoding: str, errors: str = 'strict') -> Iterator[_encoded]:
|
||||
...
|
||||
def iterdecode(iterator: Iterable[_encoded], encoding: str, errors: str = 'strict') -> Iterator[_decoded]:
|
||||
...
|
||||
|
||||
BOM = b''
|
||||
BOM_BE = b''
|
||||
BOM_LE = b''
|
||||
BOM_UTF8 = b''
|
||||
BOM_UTF16 = b''
|
||||
BOM_UTF16_BE = b''
|
||||
BOM_UTF16_LE = b''
|
||||
BOM_UTF32 = b''
|
||||
BOM_UTF32_BE = b''
|
||||
BOM_UTF32_LE = b''
|
||||
|
||||
# It is expected that different actions be taken depending on which of the
|
||||
# three subclasses of `UnicodeError` is actually ...ed. However, the Union
|
||||
# is still needed for at least one of the cases.
|
||||
def register_error(name: str, error_handler: Callable[[UnicodeError], Tuple[Union[str, bytes], int]]) -> None:
|
||||
...
|
||||
def lookup_error(name: str) -> Callable[[UnicodeError], Tuple[Union[str, bytes], int]]:
|
||||
...
|
||||
|
||||
def strict_errors(exception: UnicodeError) -> Tuple[Union[str, bytes], int]:
|
||||
...
|
||||
def replace_errors(exception: UnicodeError) -> Tuple[Union[str, bytes], int]:
|
||||
...
|
||||
def ignore_errors(exception: UnicodeError) -> Tuple[Union[str, bytes], int]:
|
||||
...
|
||||
def xmlcharrefreplace_errors(exception: UnicodeError) -> Tuple[Union[str, bytes], int]:
|
||||
...
|
||||
def backslashreplace_errors(exception: UnicodeError) -> Tuple[Union[str, bytes], int]:
|
||||
...
|
||||
|
||||
class Codec:
|
||||
# These are sort of @abstractmethod but sort of not.
|
||||
# The StreamReader and StreamWriter subclasses only implement one.
|
||||
def encode(self, input: _decoded, errors: str = 'strict') -> Tuple[_encoded, int]:
|
||||
...
|
||||
def decode(self, input: _encoded, errors: str = 'strict') -> Tuple[_decoded, int]:
|
||||
...
|
||||
|
||||
class IncrementalEncoder:
|
||||
def __init__(self, errors: str = 'strict') -> None:
|
||||
self.errors = errors
|
||||
@abstractmethod
|
||||
def encode(self, object: _decoded, final: bool = False) -> _encoded:
|
||||
...
|
||||
def reset(self) -> None:
|
||||
...
|
||||
# documentation says int but str is needed for the subclass.
|
||||
def getstate(self) -> Union[int, _decoded]:
|
||||
...
|
||||
def setstate(self, state: Union[int, _decoded]) -> None:
|
||||
...
|
||||
|
||||
class IncrementalDecoder:
|
||||
errors = ... # type: Any
|
||||
def __init__(self, errors=''): ...
|
||||
def decode(self, input, final=False): ...
|
||||
def reset(self): ...
|
||||
def getstate(self): ...
|
||||
def setstate(self, state): ...
|
||||
def __init__(self, errors: str = 'strict') -> None:
|
||||
self.errors = errors
|
||||
@abstractmethod
|
||||
def decode(self, object: _encoded, final: bool = False) -> _decoded:
|
||||
...
|
||||
def reset(self) -> None:
|
||||
...
|
||||
def getstate(self) -> Tuple[_encoded, int]:
|
||||
...
|
||||
def setstate(self, state: Tuple[_encoded, int]) -> None:
|
||||
...
|
||||
|
||||
def open(filename: str, mode: str='rb', encoding: str=None, errors: str='strict', buffering: int=1) -> IO[Any]:
|
||||
...
|
||||
# These are not documented but used in encodings/*.py implementations.
|
||||
class BufferedIncrementalEncoder(IncrementalEncoder):
|
||||
def __init__(self, errors: str = 'strict') -> None:
|
||||
IncrementalEncoder.__init__(self, errors)
|
||||
self.buffer = ''
|
||||
@abstractmethod
|
||||
def _buffer_encode(self, input: _decoded, errors: str, final: bool) -> _encoded:
|
||||
...
|
||||
def encode(self, input: _decoded, final: bool = False) -> _encoded:
|
||||
...
|
||||
class BufferedIncrementalDecoder(IncrementalDecoder):
|
||||
def __init__(self, errors: str = 'strict') -> None:
|
||||
IncrementalDecoder.__init__(self, errors)
|
||||
self.buffer = b''
|
||||
@abstractmethod
|
||||
def _buffer_decode(self, input: _encoded, errors: str, final: bool) -> Tuple[_decoded, int]:
|
||||
...
|
||||
def decode(self, object: _encoded, final: bool = False) -> _decoded:
|
||||
...
|
||||
|
||||
# TODO: it is not possible to specify the requirement that all other
|
||||
# attributes and methods are passed-through from the stream.
|
||||
class StreamWriter(Codec):
|
||||
def __init__(self, stream: BinaryIO, errors: str = 'strict') -> None:
|
||||
self.errors = errors
|
||||
def write(self, obj: _decoded) -> None:
|
||||
...
|
||||
def writelines(self, list: List[str]) -> None:
|
||||
...
|
||||
def reset(self) -> None:
|
||||
...
|
||||
|
||||
class StreamReader(Codec):
|
||||
def __init__(self, stream: BinaryIO, errors: str = 'strict') -> None:
|
||||
self.errors = errors
|
||||
def read(self, size: int = -1, chars: int = -1, firstline: bool = False) -> _decoded:
|
||||
...
|
||||
def readline(self, size: int = -1, keepends: bool = True) -> _decoded:
|
||||
...
|
||||
def readlines(self, sizehint: int = -1, keepends: bool = True) -> List[_decoded]:
|
||||
...
|
||||
def reset(self) -> None:
|
||||
...
|
||||
|
||||
class StreamReaderWriter:
|
||||
def __init__(self, stream: BinaryIO, Reader: _stream_reader_type, Writer: _stream_writer_type, errors: str = 'strict') -> None:
|
||||
...
|
||||
|
||||
class StreamRecoder(BinaryIO):
|
||||
def __init__(self, stream: BinaryIO, encode: _encode_type, decode: _decode_type, Reader: _stream_reader_type, Writer: _stream_writer_type, errors: str = 'strict') -> None:
|
||||
...
|
||||
|
||||
15
stdlib/3/encodings/utf_8.pyi
Normal file
15
stdlib/3/encodings/utf_8.pyi
Normal file
@@ -0,0 +1,15 @@
|
||||
import codecs
|
||||
|
||||
class IncrementalEncoder(codecs.IncrementalEncoder):
|
||||
pass
|
||||
class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
|
||||
pass
|
||||
class StreamWriter(codecs.StreamWriter):
|
||||
pass
|
||||
class StreamReader(codecs.StreamReader):
|
||||
pass
|
||||
|
||||
def getregentry() -> codecs.CodecInfo: pass
|
||||
def encode(input: str, errors: str = 'strict') -> bytes: pass
|
||||
def decode(input: bytes, errors: str = 'strict') -> str: pass
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
from typing import (
|
||||
Mapping, MutableMapping, Dict, List, Any, Tuple, Iterator, overload, Union, AnyStr,
|
||||
Optional, Generic
|
||||
Optional, Generic, Set
|
||||
)
|
||||
from builtins import OSError as error
|
||||
import os.path as path
|
||||
@@ -336,3 +336,11 @@ def confstr(name: str) -> str: ... # Unix only
|
||||
def getloadavg() -> Tuple[float, float, float]: ... # Unix only
|
||||
def sysconf(name: str) -> int: ... # Unix only
|
||||
def urandom(n: int) -> bytes: ...
|
||||
|
||||
def sched_getaffinity(id: int) -> Set[int]: ...
|
||||
class waitresult:
|
||||
si_pid = 0
|
||||
def waitid(idtype: int, id: int, options: int) -> waitresult: ...
|
||||
P_ALL = 0
|
||||
WEXITED = 0
|
||||
WNOWAIT = 0
|
||||
|
||||
63
stdlib/3/token.pyi
Normal file
63
stdlib/3/token.pyi
Normal file
@@ -0,0 +1,63 @@
|
||||
from typing import Dict
|
||||
|
||||
ENDMARKER = 0
|
||||
NAME = 0
|
||||
NUMBER = 0
|
||||
STRING = 0
|
||||
NEWLINE = 0
|
||||
INDENT = 0
|
||||
DEDENT = 0
|
||||
LPAR = 0
|
||||
RPAR = 0
|
||||
LSQB = 0
|
||||
RSQB = 0
|
||||
COLON = 0
|
||||
COMMA = 0
|
||||
SEMI = 0
|
||||
PLUS = 0
|
||||
MINUS = 0
|
||||
STAR = 0
|
||||
SLASH = 0
|
||||
VBAR = 0
|
||||
AMPER = 0
|
||||
LESS = 0
|
||||
GREATER = 0
|
||||
EQUAL = 0
|
||||
DOT = 0
|
||||
PERCENT = 0
|
||||
LBRACE = 0
|
||||
RBRACE = 0
|
||||
EQEQUAL = 0
|
||||
NOTEQUAL = 0
|
||||
LESSEQUAL = 0
|
||||
GREATEREQUAL = 0
|
||||
TILDE = 0
|
||||
CIRCUMFLEX = 0
|
||||
LEFTSHIFT = 0
|
||||
RIGHTSHIFT = 0
|
||||
DOUBLESTAR = 0
|
||||
PLUSEQUAL = 0
|
||||
MINEQUAL = 0
|
||||
STAREQUAL = 0
|
||||
SLASHEQUAL = 0
|
||||
PERCENTEQUAL = 0
|
||||
AMPEREQUAL = 0
|
||||
VBAREQUAL = 0
|
||||
CIRCUMFLEXEQUAL = 0
|
||||
LEFTSHIFTEQUAL = 0
|
||||
RIGHTSHIFTEQUAL = 0
|
||||
DOUBLESTAREQUAL = 0
|
||||
DOUBLESLASH = 0
|
||||
DOUBLESLASHEQUAL = 0
|
||||
AT = 0
|
||||
RARROW = 0
|
||||
ELLIPSIS = 0
|
||||
OP = 0
|
||||
ERRORTOKEN = 0
|
||||
N_TOKENS = 0
|
||||
NT_OFFSET = 0
|
||||
tok_name = {} # type: Dict[int, str]
|
||||
|
||||
def ISTERMINAL(x: int) -> bool: pass
|
||||
def ISNONTERMINAL(x: int) -> bool: pass
|
||||
def ISEOF(x: int) -> bool: pass
|
||||
Reference in New Issue
Block a user