Install & Compatibility
Where this runs
tested against v0.47.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.000s · 28.3MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 4.1s · import 0.000s · 30MB
28MB installed
● package 28MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
UPnPDevice
✓ from async_upnp_client import UPnPDevice
✗ from async_upnp_client import UPnPDevice
Basic setup to instantiate a UPnP factory and requester.
import asyncio
from async_upnp_client import UPnPFactory, UPnPRequester
async def main():
requester = UPnPRequester()
factory = UPnPFactory(requester)
# Discover devices, for example:
# device = await factory.create_device("http://192.168.1.1:49152/description.xml")
print("UPnP client ready")
asyncio.run(main())
Upgrade
Version history
0.47.0latest on PyPI · released Apr 19, 2026
Audit
Dependencies
aiohttprequiredHTTP client used for UPnP requests
async-timeoutrequiredTimeout handling for async operations
defusedxmlrequiredSafe XML parsing for UPnP responses
voluptuousoptionalSchema validation for device descriptions