select provides access to the following syscalls(?), if available:
select()
poll()
epoll()
kqueue() (most BSD)
devpoll() (Solaris and derivatives)
On Windows, it works for sockets only.
import select
for c in ['select', 'poll', 'epoll', 'kqueue', 'kevent', 'devpoll']:
print(f"{c:<10} is {'not' if not hasattr(select, c) else ' '} available")
See also
The selectors module is built upon the select module and the Python documentation recommends to use selectors (unless prices control over OS-level primities are needed).