Cleaning up os/posix module constants (#13134)

This commit is contained in:
Stephen Morton
2024-11-27 21:23:44 -08:00
committed by GitHub
parent 8c666665f7
commit 0969d25a1f
7 changed files with 85 additions and 61 deletions

View File

@@ -162,7 +162,6 @@ wave.Wave_write.initfp
# ==========
# Platform differences that cannot be captured by the type system
os.O_[A-Z_]+
socket.AF_DECnet
# sys attributes that are not always defined

View File

@@ -20,8 +20,6 @@ select.POLLMSG # system dependent
(_gdbm)?
# Platform differences that cannot be captured by the type system
(posix.O_[A-Z_]+)?
(posix.ST_[A-Z]+)?
(termios.[A-Z0-9_]+)?
# ==========
@@ -42,10 +40,6 @@ winsound
# multiprocessing.popen_spawn_win32 exists on Darwin but fail to import
multiprocessing.popen_spawn_win32
# Platform differences that cannot be captured by the type system
os.SCHED_[A-Z_]+
posix.SCHED_[A-Z_]+
# Some of these exist on non-windows, but they are useless and this is not intended
stat.FILE_ATTRIBUTE_[A-Z_]+

View File

@@ -4,3 +4,8 @@ msilib(.[a-z]+)?
# doesn't exist in all installations
(nis)?
# These seem like they should be available on Linux, but they're not
# on GitHub Actions runners for some reason.
os.CLONE_NEWTIME
posix.CLONE_NEWTIME

View File

@@ -1,2 +1,7 @@
# TODO: triage these (new in py313)
posixpath.splitroot
# These seem like they should be available on Linux, but they're not
# on GitHub Actions runners for some reason.
os.CLONE_NEWTIME
posix.CLONE_NEWTIME

View File

@@ -25,11 +25,6 @@ multiprocessing.popen_spawn_win32
# Platform differences that cannot be captured by the type system
fcntl.I_[A-Z0-9_]+
os.SCHED_[A-Z_]+
posix.SCHED_[A-Z_]+
((os|posix).CLONE_[A-Z]+)? # Python 3.12+
(posix.O_[A-Z_]+)?
(posix.ST_[A-Z]+)?
(termios.[A-Z0-9_]+)?
# Some of these exist on non-windows, but they are useless and this is not intended

View File

@@ -564,15 +564,16 @@ if sys.platform != "win32":
CLD_KILLED: int
CLD_STOPPED: int
# TODO: SCHED_RESET_ON_FORK not available on darwin?
# TODO: SCHED_BATCH and SCHED_IDLE are linux only?
SCHED_OTHER: int # some flavors of Unix
SCHED_BATCH: int # some flavors of Unix
SCHED_IDLE: int # some flavors of Unix
SCHED_SPORADIC: int # some flavors of Unix
SCHED_FIFO: int # some flavors of Unix
SCHED_RR: int # some flavors of Unix
SCHED_RESET_ON_FORK: int # some flavors of Unix
SCHED_OTHER: int
SCHED_FIFO: int
SCHED_RR: int
if sys.platform != "darwin" and sys.platform != "linux":
SCHED_SPORADIC: int
if sys.platform == "linux":
SCHED_BATCH: int
SCHED_IDLE: int
SCHED_RESET_ON_FORK: int
if sys.platform != "win32":
RTLD_LAZY: int
@@ -597,8 +598,8 @@ SEEK_SET: int
SEEK_CUR: int
SEEK_END: int
if sys.platform != "win32":
SEEK_DATA: int # some flavors of Unix
SEEK_HOLE: int # some flavors of Unix
SEEK_DATA: int
SEEK_HOLE: int
O_RDONLY: int
O_WRONLY: int
@@ -607,34 +608,39 @@ O_APPEND: int
O_CREAT: int
O_EXCL: int
O_TRUNC: int
# We don't use sys.platform for O_* flags to denote platform-dependent APIs because some codes,
# including tests for mypy, use a more finer way than sys.platform before using these APIs
# See https://github.com/python/typeshed/pull/2286 for discussions
O_DSYNC: int # Unix only
O_RSYNC: int # Unix only
O_SYNC: int # Unix only
O_NDELAY: int # Unix only
O_NONBLOCK: int # Unix only
O_NOCTTY: int # Unix only
O_CLOEXEC: int # Unix only
O_SHLOCK: int # Unix only
O_EXLOCK: int # Unix only
O_BINARY: int # Windows only
O_NOINHERIT: int # Windows only
O_SHORT_LIVED: int # Windows only
O_TEMPORARY: int # Windows only
O_RANDOM: int # Windows only
O_SEQUENTIAL: int # Windows only
O_TEXT: int # Windows only
O_ASYNC: int # Gnu extension if in C library
O_DIRECT: int # Gnu extension if in C library
O_DIRECTORY: int # Gnu extension if in C library
O_NOFOLLOW: int # Gnu extension if in C library
O_NOATIME: int # Gnu extension if in C library
O_PATH: int # Gnu extension if in C library
O_TMPFILE: int # Gnu extension if in C library
O_LARGEFILE: int # Gnu extension if in C library
O_ACCMODE: int # TODO: when does this exist?
if sys.platform == "win32":
O_BINARY: int
O_NOINHERIT: int
O_SHORT_LIVED: int
O_TEMPORARY: int
O_RANDOM: int
O_SEQUENTIAL: int
O_TEXT: int
if sys.platform != "win32":
O_DSYNC: int
O_SYNC: int
O_NDELAY: int
O_NONBLOCK: int
O_NOCTTY: int
O_CLOEXEC: int
O_ASYNC: int # Gnu extension if in C library
O_DIRECTORY: int # Gnu extension if in C library
O_NOFOLLOW: int # Gnu extension if in C library
O_ACCMODE: int # TODO: when does this exist?
if sys.platform == "linux":
O_RSYNC: int
O_DIRECT: int # Gnu extension if in C library
O_NOATIME: int # Gnu extension if in C library
O_PATH: int # Gnu extension if in C library
O_TMPFILE: int # Gnu extension if in C library
O_LARGEFILE: int # Gnu extension if in C library
if sys.platform != "linux" and sys.platform != "win32":
O_SHLOCK: int
O_EXLOCK: int
if sys.platform == "darwin" and sys.version_info >= (3, 10):
O_EVTONLY: int
O_NOFOLLOW_ANY: int

View File

@@ -29,22 +29,20 @@ if sys.platform != "win32":
F_TLOCK as F_TLOCK,
F_ULOCK as F_ULOCK,
NGROUPS_MAX as NGROUPS_MAX,
O_ACCMODE as O_ACCMODE,
O_APPEND as O_APPEND,
O_ASYNC as O_ASYNC,
O_CLOEXEC as O_CLOEXEC,
O_CREAT as O_CREAT,
O_DIRECT as O_DIRECT,
O_DIRECTORY as O_DIRECTORY,
O_DSYNC as O_DSYNC,
O_EXCL as O_EXCL,
O_LARGEFILE as O_LARGEFILE,
O_NDELAY as O_NDELAY,
O_NOATIME as O_NOATIME,
O_NOCTTY as O_NOCTTY,
O_NOFOLLOW as O_NOFOLLOW,
O_NONBLOCK as O_NONBLOCK,
O_RDONLY as O_RDONLY,
O_RDWR as O_RDWR,
O_RSYNC as O_RSYNC,
O_SYNC as O_SYNC,
O_TRUNC as O_TRUNC,
O_WRONLY as O_WRONLY,
@@ -64,13 +62,9 @@ if sys.platform != "win32":
RTLD_NODELETE as RTLD_NODELETE,
RTLD_NOLOAD as RTLD_NOLOAD,
RTLD_NOW as RTLD_NOW,
SCHED_BATCH as SCHED_BATCH,
SCHED_FIFO as SCHED_FIFO,
SCHED_IDLE as SCHED_IDLE,
SCHED_OTHER as SCHED_OTHER,
SCHED_RESET_ON_FORK as SCHED_RESET_ON_FORK,
SCHED_RR as SCHED_RR,
SCHED_SPORADIC as SCHED_SPORADIC,
SEEK_DATA as SEEK_DATA,
SEEK_HOLE as SEEK_HOLE,
ST_NOSUID as ST_NOSUID,
@@ -233,6 +227,9 @@ if sys.platform != "win32":
if sys.version_info >= (3, 9):
from os import CLD_KILLED as CLD_KILLED, CLD_STOPPED as CLD_STOPPED, waitstatus_to_exitcode as waitstatus_to_exitcode
if sys.version_info >= (3, 10):
from os import O_FSYNC as O_FSYNC
if sys.version_info >= (3, 11):
from os import login_tty as login_tty
@@ -254,10 +251,13 @@ if sys.platform != "win32":
)
if sys.platform != "linux":
from os import chflags as chflags, lchflags as lchflags, lchmod as lchmod
from os import O_EXLOCK as O_EXLOCK, O_SHLOCK as O_SHLOCK, chflags as chflags, lchflags as lchflags, lchmod as lchmod
if sys.platform != "linux" and sys.platform != "darwin":
from os import EX_NOTFOUND as EX_NOTFOUND
from os import EX_NOTFOUND as EX_NOTFOUND, SCHED_SPORADIC as SCHED_SPORADIC
if sys.platform != "linux" and sys.version_info >= (3, 13):
from os import O_EXEC as O_EXEC, O_SEARCH as O_SEARCH
if sys.platform != "darwin":
from os import (
@@ -271,6 +271,15 @@ if sys.platform != "win32":
RWF_HIPRI as RWF_HIPRI,
RWF_NOWAIT as RWF_NOWAIT,
RWF_SYNC as RWF_SYNC,
ST_APPEND as ST_APPEND,
ST_MANDLOCK as ST_MANDLOCK,
ST_NOATIME as ST_NOATIME,
ST_NODEV as ST_NODEV,
ST_NODIRATIME as ST_NODIRATIME,
ST_NOEXEC as ST_NOEXEC,
ST_RELATIME as ST_RELATIME,
ST_SYNCHRONOUS as ST_SYNCHRONOUS,
ST_WRITE as ST_WRITE,
fdatasync as fdatasync,
getresgid as getresgid,
getresuid as getresuid,
@@ -315,7 +324,16 @@ if sys.platform != "win32":
MFD_HUGE_MASK as MFD_HUGE_MASK,
MFD_HUGE_SHIFT as MFD_HUGE_SHIFT,
MFD_HUGETLB as MFD_HUGETLB,
O_DIRECT as O_DIRECT,
O_LARGEFILE as O_LARGEFILE,
O_NOATIME as O_NOATIME,
O_PATH as O_PATH,
O_RSYNC as O_RSYNC,
O_TMPFILE as O_TMPFILE,
RTLD_DEEPBIND as RTLD_DEEPBIND,
SCHED_BATCH as SCHED_BATCH,
SCHED_IDLE as SCHED_IDLE,
SCHED_RESET_ON_FORK as SCHED_RESET_ON_FORK,
XATTR_CREATE as XATTR_CREATE,
XATTR_REPLACE as XATTR_REPLACE,
XATTR_SIZE_MAX as XATTR_SIZE_MAX,
@@ -373,6 +391,8 @@ if sys.platform != "win32":
PRIO_DARWIN_PROCESS as PRIO_DARWIN_PROCESS,
PRIO_DARWIN_THREAD as PRIO_DARWIN_THREAD,
)
if sys.platform == "darwin" and sys.version_info >= (3, 10):
from os import O_EVTONLY as O_EVTONLY, O_NOFOLLOW_ANY as O_NOFOLLOW_ANY, O_SYMLINK as O_SYMLINK
# Not same as os.environ or os.environb
# Because of this variable, we can't do "from posix import *" in os/__init__.pyi