Format: application/octet-stream
⬇ Download File (3.9 KB)
   1  import sys
   2  from _typeshed import ReadableBuffer
   3  from typing import AnyStr, ContextManager, Generic, Iterable, Iterator, Optional, Sequence, Sized, Union, overload
   4  
   5  ACCESS_DEFAULT: int
   6  ACCESS_READ: int
   7  ACCESS_WRITE: int
   8  ACCESS_COPY: int
   9  
  10  ALLOCATIONGRANULARITY: int
  11  
  12  if sys.platform != "win32":
  13      MAP_ANON: int
  14      MAP_ANONYMOUS: int
  15      MAP_DENYWRITE: int
  16      MAP_EXECUTABLE: int
  17      MAP_PRIVATE: int
  18      MAP_SHARED: int
  19      PROT_EXEC: int
  20      PROT_READ: int
  21      PROT_WRITE: int
  22  
  23      PAGESIZE: int
  24  
  25  class _mmap(Generic[AnyStr]):
  26      if sys.platform == "win32":
  27          def __init__(
  28              self, fileno: int, length: int, tagname: Optional[str] = ..., access: int = ..., offset: int = ...
  29          ) -> None: ...
  30      else:
  31          def __init__(
  32              self, fileno: int, length: int, flags: int = ..., prot: int = ..., access: int = ..., offset: int = ...
  33          ) -> None: ...
  34      def close(self) -> None: ...
  35      if sys.version_info >= (3, 8):
  36          def flush(self, offset: int = ..., size: int = ...) -> None: ...
  37      else:
  38          def flush(self, offset: int = ..., size: int = ...) -> int: ...
  39      def move(self, dest: int, src: int, count: int) -> None: ...
  40      def read_byte(self) -> AnyStr: ...
  41      def readline(self) -> AnyStr: ...
  42      def resize(self, newsize: int) -> None: ...
  43      def seek(self, pos: int, whence: int = ...) -> None: ...
  44      def size(self) -> int: ...
  45      def tell(self) -> int: ...
  46      def write_byte(self, byte: AnyStr) -> None: ...
  47      def __len__(self) -> int: ...
  48  
  49  if sys.version_info >= (3,):
  50      class mmap(_mmap[bytes], ContextManager[mmap], Iterable[bytes], Sized):
  51          closed: bool
  52          if sys.version_info >= (3, 8) and sys.platform != "win32":
  53              def madvise(self, option: int, start: int = ..., length: int = ...) -> None: ...
  54          def find(self, sub: ReadableBuffer, start: int = ..., stop: int = ...) -> int: ...
  55          def rfind(self, sub: ReadableBuffer, start: int = ..., stop: int = ...) -> int: ...
  56          def read(self, n: Optional[int] = ...) -> bytes: ...
  57          if sys.version_info >= (3, 6):
  58              def write(self, bytes: ReadableBuffer) -> int: ...
  59          else:
  60              def write(self, bytes: ReadableBuffer) -> None: ...
  61          @overload
  62          def __getitem__(self, index: int) -> int: ...
  63          @overload
  64          def __getitem__(self, index: slice) -> bytes: ...
  65          def __delitem__(self, index: Union[int, slice]) -> None: ...
  66          @overload
  67          def __setitem__(self, index: int, object: int) -> None: ...
  68          @overload
  69          def __setitem__(self, index: slice, object: bytes) -> None: ...
  70          # Doesn't actually exist, but the object is actually iterable because it has __getitem__ and
  71          # __len__, so we claim that there is also an __iter__ to help type checkers.
  72          def __iter__(self) -> Iterator[bytes]: ...
  73  
  74  else:
  75      class mmap(_mmap[bytes], Sequence[bytes]):
  76          def find(self, string: bytes, start: int = ..., end: int = ...) -> int: ...
  77          def rfind(self, string: bytes, start: int = ..., stop: int = ...) -> int: ...
  78          def read(self, num: int) -> bytes: ...
  79          def write(self, string: bytes) -> None: ...
  80          def __getitem__(self, index: Union[int, slice]) -> bytes: ...
  81          def __getslice__(self, i: Optional[int], j: Optional[int]) -> bytes: ...
  82          def __delitem__(self, index: Union[int, slice]) -> None: ...
  83          def __setitem__(self, index: Union[int, slice], object: bytes) -> None: ...
  84  
  85  if sys.version_info >= (3, 8):
  86      MADV_NORMAL: int
  87      MADV_RANDOM: int
  88      MADV_SEQUENTIAL: int
  89      MADV_WILLNEED: int
  90      MADV_DONTNEED: int
  91      MADV_REMOVE: int
  92      MADV_DONTFORK: int
  93      MADV_DOFORK: int
  94      MADV_HWPOISON: int
  95      MADV_MERGEABLE: int
  96      MADV_UNMERGEABLE: int
  97      MADV_SOFT_OFFLINE: int
  98      MADV_HUGEPAGE: int
  99      MADV_NOHUGEPAGE: int
 100      MADV_DONTDUMP: int
 101      MADV_DODUMP: int
 102      MADV_FREE: int
 103      MADV_NOSYNC: int
 104      MADV_AUTOSYNC: int
 105      MADV_NOCORE: int
 106      MADV_CORE: int
 107      MADV_PROTECT: int
 108