mirror of
https://github.com/davidhalter/typeshed.git
synced 2026-05-05 04:55:48 +08:00
159 lines
5.4 KiB
Python
159 lines
5.4 KiB
Python
import sys
|
|
from _typeshed import FileDescriptorLike, ReadOnlyBuffer, WriteableBuffer
|
|
from typing import Any, Final, Literal, overload
|
|
from typing_extensions import Buffer
|
|
|
|
if sys.platform != "win32":
|
|
FASYNC: Final[int]
|
|
FD_CLOEXEC: Final[int]
|
|
F_DUPFD: Final[int]
|
|
F_DUPFD_CLOEXEC: Final[int]
|
|
F_GETFD: Final[int]
|
|
F_GETFL: Final[int]
|
|
F_GETLK: Final[int]
|
|
F_GETOWN: Final[int]
|
|
F_RDLCK: Final[int]
|
|
F_SETFD: Final[int]
|
|
F_SETFL: Final[int]
|
|
F_SETLK: Final[int]
|
|
F_SETLKW: Final[int]
|
|
F_SETOWN: Final[int]
|
|
F_UNLCK: Final[int]
|
|
F_WRLCK: Final[int]
|
|
|
|
F_GETLEASE: Final[int]
|
|
F_SETLEASE: Final[int]
|
|
if sys.platform == "darwin":
|
|
F_FULLFSYNC: Final[int]
|
|
F_NOCACHE: Final[int]
|
|
F_GETPATH: Final[int]
|
|
if sys.platform == "linux":
|
|
F_SETLKW64: Final[int]
|
|
F_SETSIG: Final[int]
|
|
F_SHLCK: Final[int]
|
|
F_SETLK64: Final[int]
|
|
F_GETSIG: Final[int]
|
|
F_NOTIFY: Final[int]
|
|
F_EXLCK: Final[int]
|
|
F_GETLK64: Final[int]
|
|
F_ADD_SEALS: Final[int]
|
|
F_GET_SEALS: Final[int]
|
|
F_SEAL_GROW: Final[int]
|
|
F_SEAL_SEAL: Final[int]
|
|
F_SEAL_SHRINK: Final[int]
|
|
F_SEAL_WRITE: Final[int]
|
|
F_OFD_GETLK: Final[int]
|
|
F_OFD_SETLK: Final[int]
|
|
F_OFD_SETLKW: Final[int]
|
|
|
|
if sys.version_info >= (3, 10):
|
|
F_GETPIPE_SZ: Final[int]
|
|
F_SETPIPE_SZ: Final[int]
|
|
|
|
DN_ACCESS: Final[int]
|
|
DN_ATTRIB: Final[int]
|
|
DN_CREATE: Final[int]
|
|
DN_DELETE: Final[int]
|
|
DN_MODIFY: Final[int]
|
|
DN_MULTISHOT: Final[int]
|
|
DN_RENAME: Final[int]
|
|
|
|
LOCK_EX: Final[int]
|
|
LOCK_NB: Final[int]
|
|
LOCK_SH: Final[int]
|
|
LOCK_UN: Final[int]
|
|
if sys.platform == "linux":
|
|
LOCK_MAND: Final[int]
|
|
LOCK_READ: Final[int]
|
|
LOCK_RW: Final[int]
|
|
LOCK_WRITE: Final[int]
|
|
|
|
if sys.platform == "linux":
|
|
# Constants for the POSIX STREAMS interface. Present in glibc until 2.29 (released February 2019).
|
|
# Never implemented on BSD, and considered "obsolescent" starting in POSIX 2008.
|
|
# Probably still used on Solaris.
|
|
I_ATMARK: Final[int]
|
|
I_CANPUT: Final[int]
|
|
I_CKBAND: Final[int]
|
|
I_FDINSERT: Final[int]
|
|
I_FIND: Final[int]
|
|
I_FLUSH: Final[int]
|
|
I_FLUSHBAND: Final[int]
|
|
I_GETBAND: Final[int]
|
|
I_GETCLTIME: Final[int]
|
|
I_GETSIG: Final[int]
|
|
I_GRDOPT: Final[int]
|
|
I_GWROPT: Final[int]
|
|
I_LINK: Final[int]
|
|
I_LIST: Final[int]
|
|
I_LOOK: Final[int]
|
|
I_NREAD: Final[int]
|
|
I_PEEK: Final[int]
|
|
I_PLINK: Final[int]
|
|
I_POP: Final[int]
|
|
I_PUNLINK: Final[int]
|
|
I_PUSH: Final[int]
|
|
I_RECVFD: Final[int]
|
|
I_SENDFD: Final[int]
|
|
I_SETCLTIME: Final[int]
|
|
I_SETSIG: Final[int]
|
|
I_SRDOPT: Final[int]
|
|
I_STR: Final[int]
|
|
I_SWROPT: Final[int]
|
|
I_UNLINK: Final[int]
|
|
|
|
if sys.version_info >= (3, 12) and sys.platform == "linux":
|
|
FICLONE: Final[int]
|
|
FICLONERANGE: Final[int]
|
|
|
|
if sys.version_info >= (3, 13) and sys.platform == "linux":
|
|
F_OWNER_TID: Final = 0
|
|
F_OWNER_PID: Final = 1
|
|
F_OWNER_PGRP: Final = 2
|
|
F_SETOWN_EX: Final = 15
|
|
F_GETOWN_EX: Final = 16
|
|
F_SEAL_FUTURE_WRITE: Final = 16
|
|
F_GET_RW_HINT: Final = 1035
|
|
F_SET_RW_HINT: Final = 1036
|
|
F_GET_FILE_RW_HINT: Final = 1037
|
|
F_SET_FILE_RW_HINT: Final = 1038
|
|
RWH_WRITE_LIFE_NOT_SET: Final = 0
|
|
RWH_WRITE_LIFE_NONE: Final = 1
|
|
RWH_WRITE_LIFE_SHORT: Final = 2
|
|
RWH_WRITE_LIFE_MEDIUM: Final = 3
|
|
RWH_WRITE_LIFE_LONG: Final = 4
|
|
RWH_WRITE_LIFE_EXTREME: Final = 5
|
|
|
|
if sys.version_info >= (3, 11) and sys.platform == "darwin":
|
|
F_OFD_SETLK: Final = 90
|
|
F_OFD_SETLKW: Final = 91
|
|
F_OFD_GETLK: Final = 92
|
|
|
|
if sys.version_info >= (3, 13) and sys.platform != "linux":
|
|
# OSx and NetBSD
|
|
F_GETNOSIGPIPE: Final[int]
|
|
F_SETNOSIGPIPE: Final[int]
|
|
# OSx and FreeBSD
|
|
F_RDAHEAD: Final[int]
|
|
|
|
@overload
|
|
def fcntl(fd: FileDescriptorLike, cmd: int, arg: int = 0, /) -> int: ...
|
|
@overload
|
|
def fcntl(fd: FileDescriptorLike, cmd: int, arg: str | ReadOnlyBuffer, /) -> bytes: ...
|
|
# If arg is an int, return int
|
|
@overload
|
|
def ioctl(fd: FileDescriptorLike, request: int, arg: int = 0, mutate_flag: bool = True, /) -> int: ...
|
|
# The return type works as follows:
|
|
# - If arg is a read-write buffer, return int if mutate_flag is True, otherwise bytes
|
|
# - If arg is a read-only buffer, return bytes (and ignore the value of mutate_flag)
|
|
# We can't represent that precisely as we can't distinguish between read-write and read-only
|
|
# buffers, so we add overloads for a few unambiguous cases and use Any for the rest.
|
|
@overload
|
|
def ioctl(fd: FileDescriptorLike, request: int, arg: bytes, mutate_flag: bool = True, /) -> bytes: ...
|
|
@overload
|
|
def ioctl(fd: FileDescriptorLike, request: int, arg: WriteableBuffer, mutate_flag: Literal[False], /) -> bytes: ...
|
|
@overload
|
|
def ioctl(fd: FileDescriptorLike, request: int, arg: Buffer, mutate_flag: bool = True, /) -> Any: ...
|
|
def flock(fd: FileDescriptorLike, operation: int, /) -> None: ...
|
|
def lockf(fd: FileDescriptorLike, cmd: int, len: int = 0, start: int = 0, whence: int = 0, /) -> Any: ...
|