Skip to main content

No project description provided

Project description

Implementation of select.poll for Windows.

  • Pure Python; no C extensions (uses ctypes.windll)
  • Drop-in-compatible API
  • Clean "ponyfill"; no monkeypatching
  • No dependencies (besides Windows Vista or newer)
  • Python 3.6+ compatible

Usage

try:
  from select import POLLIN, POLLOUT, poll
except ImportError:
  # https://github.com/python/cpython/issues/60711
  from winpoll import POLLIN, POLLOUT, wsapoll as poll

p = poll()

p.register(sock1, POLLIN)
p.register(sock2, POLLIN | POLLOUT)
p.unregister(sock1)

for sock, events in p.poll(timeout=3):
    print(f"Socket {sock} is ready with {events}")

# like select.poll objects, winpoll.wsapoll objects acquire no resources
# thus have no cleanup requirement besides plain garbage collection

Limitations / Bugs

  • Does not work before Windows Vista.

  • Outbound TCP connections don't correctly report failure-to-connect ((POLLHUP | POLLERR | POLLWRNORM)) before Windows 10 Version 2004 (OS build 19041).

Installation

Command-line

pip install winpoll

requirements.txt

winpoll

pyproject.toml

[project]
dependencies = [
  ...,
  "winpoll",
]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

winpoll-0.20287.1.tar.gz (8.4 kB view details)

Uploaded Source

File details

Details for the file winpoll-0.20287.1.tar.gz.

File metadata

  • Download URL: winpoll-0.20287.1.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for winpoll-0.20287.1.tar.gz
Algorithm Hash digest
SHA256 96699b6d4d2b6a40e80fbeae88b52f3d389cd4186530915ddf608e038035a48e
MD5 7a05d36a84ae166e5bcb05645bb6b7e9
BLAKE2b-256 8cb24f0953ec990e0fb3d35a59c564828d249ef1410bc1600e07348f59e1862e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page