# ==========================================
# Modules that do not exist on Linux systems
# ==========================================

_winapi
asyncio.windows_events
asyncio.windows_utils
encodings.oem
encodings.mbcs
msvcrt
nt
winreg
winsound


# ==========================================================
# Other allowlist entries that cannot or should not be fixed
# ==========================================================

_?curses.ACS_.*  # ACS codes are initialized only after initscr call
curses.COLORS  # Initialized after start_color
curses.COLOR_PAIRS  # Initialized after start_color
curses.COLS  # Initialized only after initscr call
curses.LINES  # Initialized only after initscr call
fcntl.I_[A-Z0-9_]+  # Platform differences that cannot be captured by the type system
multiprocessing.popen_spawn_win32  # exists on Linux but fails to import
select.poll  # Actually a function; we have a class so it can be used as a type

# Bluetooth constants which aren't on the GitHub Actions runners, see #15207
(_?socket\.AF_BLUETOOTH)?
(_?socket\.BDADDR_ANY)?
(_?socket\.BDADDR_BREDR)?
(_?socket\.BDADDR_LE_PUBLIC)?
(_?socket\.BDADDR_LE_RANDOM)?
(_?socket\.BDADDR_LOCAL)?
(_?socket\.BT_CHANNEL_POLICY)?
(_?socket\.BT_CHANNEL_POLICY_BREDR_ONLY)?
(_?socket\.BT_CHANNEL_POLICY_BREDR_PREFERRED)?
(_?socket\.BT_CODEC)?
(_?socket\.BT_DEFER_SETUP)?
(_?socket\.BT_FLUSHABLE)?
(_?socket\.BT_FLUSHABLE_OFF)?
(_?socket\.BT_FLUSHABLE_ON)?
(_?socket\.BT_ISO_QOS)?
(_?socket\.BT_MODE)?
(_?socket\.BT_MODE_BASIC)?
(_?socket\.BT_MODE_ERTM)?
(_?socket\.BT_MODE_EXT_FLOWCTL)?
(_?socket\.BT_MODE_LE_FLOWCTL)?
(_?socket\.BT_MODE_STREAMING)?
(_?socket\.BT_PHY)?
(_?socket\.BT_PHY_BR_1M_1SLOT)?
(_?socket\.BT_PHY_BR_1M_3SLOT)?
(_?socket\.BT_PHY_BR_1M_5SLOT)?
(_?socket\.BT_PHY_EDR_2M_1SLOT)?
(_?socket\.BT_PHY_EDR_2M_3SLOT)?
(_?socket\.BT_PHY_EDR_2M_5SLOT)?
(_?socket\.BT_PHY_EDR_3M_1SLOT)?
(_?socket\.BT_PHY_EDR_3M_3SLOT)?
(_?socket\.BT_PHY_EDR_3M_5SLOT)?
(_?socket\.BT_PHY_LE_1M_RX)?
(_?socket\.BT_PHY_LE_1M_TX)?
(_?socket\.BT_PHY_LE_2M_RX)?
(_?socket\.BT_PHY_LE_2M_TX)?
(_?socket\.BT_PHY_LE_CODED_RX)?
(_?socket\.BT_PHY_LE_CODED_TX)?
(_?socket\.BT_PKT_STATUS)?
(_?socket\.BT_POWER)?
(_?socket\.BT_POWER_FORCE_ACTIVE_OFF)?
(_?socket\.BT_POWER_FORCE_ACTIVE_ON)?
(_?socket\.BT_RCVMTU)?
(_?socket\.BT_SECURITY)?
(_?socket\.BT_SECURITY_FIPS)?
(_?socket\.BT_SECURITY_HIGH)?
(_?socket\.BT_SECURITY_LOW)?
(_?socket\.BT_SECURITY_MEDIUM)?
(_?socket\.BT_SECURITY_SDP)?
(_?socket\.BT_SNDMTU)?
(_?socket\.BT_VOICE)?
(_?socket\.BT_VOICE_CVSD_16BIT)?
(_?socket\.BT_VOICE_TRANSPARENT)?
(_?socket\.BT_VOICE_TRANSPARENT_16BIT)?
(_?socket\.BTPROTO_HCI)?
(_?socket\.BTPROTO_L2CAP)?
(_?socket\.BTPROTO_RFCOMM)?
(_?socket\.BTPROTO_SCO)?
(_?socket\.HCI_CHANNEL_CONTROL)?
(_?socket\.HCI_CHANNEL_LOGGING)?
(_?socket\.HCI_CHANNEL_MONITOR)?
(_?socket\.HCI_CHANNEL_RAW)?
(_?socket\.HCI_CHANNEL_USER)?
(_?socket\.HCI_DEV_NONE)?
(_?socket\.L2CAP_LM)?
(_?socket\.L2CAP_LM_AUTH)?
(_?socket\.L2CAP_LM_ENCRYPT)?
(_?socket\.L2CAP_LM_MASTER)?
(_?socket\.L2CAP_LM_RELIABLE)?
(_?socket\.L2CAP_LM_SECURE)?
(_?socket\.L2CAP_LM_TRUSTED)?
(_?socket\.SOL_BLUETOOTH)?
(_?socket\.SOL_L2CAP)?
(_?socket\.SOL_RFCOMM)?
(_?socket\.SOL_SCO)?

# These seem like they should be available on Linux, but they're not
# on GitHub Actions runners for some reason.
_?socket.IPX_TYPE
_?socket.RDS_CANCEL_SENT_TO
_?socket.RDS_CMSG_RDMA_ARGS
_?socket.RDS_CMSG_RDMA_DEST
_?socket.RDS_CMSG_RDMA_MAP
_?socket.RDS_CMSG_RDMA_STATUS
_?socket.RDS_CONG_MONITOR
_?socket.RDS_FREE_MR
_?socket.RDS_GET_MR
_?socket.RDS_GET_MR_FOR_DEST
_?socket.RDS_RDMA_DONTWAIT
_?socket.RDS_RDMA_FENCE
_?socket.RDS_RDMA_INVALIDATE
_?socket.RDS_RDMA_NOTIFY_ME
_?socket.RDS_RDMA_READWRITE
_?socket.RDS_RDMA_SILENT
_?socket.RDS_RDMA_USE_ONCE
_?socket.RDS_RECVERR
_?socket.SOL_ATALK
_?socket.SOL_AX25
_?socket.SOL_HCI
_?socket.SOL_IPX
_?socket.SOL_NETROM
_?socket.SOL_ROSE

# This is available on Linux, but it's documented as for kernel debugging and
# not present on GitHub Actions runners.
termios.TIOCTTYGSTRUCT

tkinter.Tk.createfilehandler  # Methods that come from __getattr__() at runtime
tkinter.Tk.deletefilehandler  # Methods that come from __getattr__() at runtime
