Ultra-fast websocket client and server for asyncio
Project description
Introduction
picows is a high-performance python library designed for building asyncio WebSocket clients and servers. Implemented in Cython, it offers exceptional speed and efficiency, surpassing other popular WebSocket python libraries.
The above chart shows the performance of echo clients communicating with a server through a loopback interface using popular Python libraries. boost.beast client is also included for reference. Typically, picows is ~1.5-2 times faster than aiohttp. All Python clients use uvloop. Please find the benchmark sources here.
Installation
picows requires Python 3.8 or greater and is available on PyPI. Use pip to install it:
$ pip install picows
Rationale
Popular WebSocket libraries attempt to provide high-level interfaces. They take care of timeouts, flow control, optional compression/decompression, assembling WebSocket messages from frames, as well as implementing async iteration interfaces. These features are often implemented in pure Python and come with a significant cost even when messages are small, unfragmented (every WebSocket frame is final), and uncompressed. The async iteration interface is done using Futures, which adds extra work for the event loop and introduces delays. Furthermore, it is not always possible to check if more messages have already arrived; sometimes, only the last message matters.
API Design
The API follows the low-level transport/protocol design from asyncio. It passes frames instead of messages to a user handler. A message can potentially consist of multiple frames but it is up to user to choose the best strategy for merging them. Same principle applies for compression and flow control. User can implement their own strategies using the most appropriate tools.
That being said the most common use-case is when messages and frames are the same, i.e. a message consists of only a single frame, and no compression is being used.
Getting started
Echo client
Connects to an echo server, sends a message and disconnect upon reply.
import asyncio
import uvloop
from picows import ws_connect, WSFrame, WSTransport, WSListener, WSMsgType, WSCloseCode
class ClientListener(WSListener):
def on_ws_connected(self, transport: WSTransport):
self.transport = transport
transport.send(WSMsgType.TEXT, b"Hello world")
def on_ws_frame(self, transport: WSTransport, frame: WSFrame):
print(f"Echo reply: {frame.get_payload_as_ascii_text()}")
transport.send_close(WSCloseCode.OK)
transport.disconnect()
async def main(url):
(_, client) = await ws_connect(ClientListener, url)
await client.transport.wait_disconnected()
if __name__ == '__main__':
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
asyncio.run(main("ws://127.0.0.1:9001"))
This prints:
Echo reply: Hello world
Echo server
import asyncio
import uvloop
from picows import ws_create_server, WSFrame, WSTransport, WSListener, WSMsgType, WSUpgradeRequest
class ServerClientListener(WSListener):
def on_ws_connected(self, transport: WSTransport):
print("New client connected")
def on_ws_frame(self, transport: WSTransport, frame: WSFrame):
if frame.msg_type == WSMsgType.PING:
transport.send_pong(frame.get_payload_as_bytes())
elif frame.msg_type == WSMsgType.CLOSE:
transport.send_close(frame.get_close_code(), frame.get_close_message())
transport.disconnect()
else:
transport.send(frame.msg_type, frame.get_payload_as_bytes())
async def main():
def listener_factory(r: WSUpgradeRequest):
# Routing can be implemented here by analyzing request content
return ServerClientListener()
server: asyncio.Server = await ws_create_server(listener_factory, "127.0.0.1", 9001)
for s in server.sockets:
print(f"Server started on {s.getsockname()}")
await server.serve_forever()
if __name__ == '__main__':
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
asyncio.run(main())
Features
Maximally efficient WebSocket frame parser and builder implemented in Cython
Re-use memory as much as possible, avoid reallocations, and avoid unnecessary Python object creations
Provide Cython .pxd for efficient integration of user Cythonized code with picows
Ability to check if a frame is the last one in the receiving buffer
Support both secure and unsecure protocols (ws and wss schemes)
Documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
File details
Details for the file picows-1.2.2.tar.gz
.
File metadata
- Download URL: picows-1.2.2.tar.gz
- Upload date:
- Size: 23.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c125214e0c07b035d95af038b107c7beb8178ece1f17c7086abea9da73dff852 |
|
MD5 | 5f3717ce6076abf4c1f995b49416f84c |
|
BLAKE2b-256 | 3dc626dd1cada377d3ffa423fc4565395335497867e6d44200b1aec4604739f3 |
File details
Details for the file picows-1.2.2-cp313-cp313-win_amd64.whl
.
File metadata
- Download URL: picows-1.2.2-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 418.9 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 761519055727b48ce5d42c1d9f4d4e23cba5605e8a6dc693fd839ddd2c3f6b5b |
|
MD5 | d1a8bc74e61efcf1da8c1e7971aa8bc1 |
|
BLAKE2b-256 | 5979666bcbb8cde40b48e77d118c1446e373906db77b8b129408e2968ec0067a |
File details
Details for the file picows-1.2.2-cp313-cp313-win32.whl
.
File metadata
- Download URL: picows-1.2.2-cp313-cp313-win32.whl
- Upload date:
- Size: 399.7 kB
- Tags: CPython 3.13, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b49ded89c7416ebb21d0ee245422244651641a9eea103a323164689a287be464 |
|
MD5 | c0a079ee46003800528ace4a44777480 |
|
BLAKE2b-256 | 5cfae332fd37e38e3406668642a919ca53bcf1435955ea153aa7eb01b3ff0ecf |
File details
Details for the file picows-1.2.2-cp313-cp313-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0f1023c71392f2f3d683da76b0029f578639bf3bbec02cde9cb2b0e4e6ea423 |
|
MD5 | 8b057d2b93e056a1529a5350309ca4ff |
|
BLAKE2b-256 | f4ed2f91683dc49504a9bea6ef723c36e3067ea209ec89a00dee13d2476fd2a6 |
File details
Details for the file picows-1.2.2-cp313-cp313-musllinux_1_2_aarch64.whl
.
File metadata
- Download URL: picows-1.2.2-cp313-cp313-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8821cfa7398b28b97d588da2bea6e4bc5cca4b48c9d476803821f5def143ffa0 |
|
MD5 | e9fe5aa8bdf91d57456931555dc84ef3 |
|
BLAKE2b-256 | aed1dc5eafc5025c1ab2e0709269f88ccd06432249dcd239efcc7c5a874d1e6e |
File details
Details for the file picows-1.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67a8d665454d9206c2ee114ff77f6644c0499734ea5d9dcae2654108436037d9 |
|
MD5 | be3b0753d8b96d1fbbce43295938dd0f |
|
BLAKE2b-256 | f6dadf7439f00bda8b3e0071dcc49fee76d7248a853687336ec269ab9da1f322 |
File details
Details for the file picows-1.2.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: picows-1.2.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3634e2d3ffbdd988d489e90ee69b80a22a6990818524599dd13bc297f0d306b2 |
|
MD5 | 1d5d6edfb42889274f7a914dfe82a538 |
|
BLAKE2b-256 | cb0a3e76b597be04d3884a73898514edb0c4bb1b82287de72d55f5924b80e51e |
File details
Details for the file picows-1.2.2-cp313-cp313-macosx_11_0_arm64.whl
.
File metadata
- Download URL: picows-1.2.2-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 184.5 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8be326dd798ccdef3e0066627217654912eb198f2a8898fc2d338d083308bd83 |
|
MD5 | ab8efe8f5fc5dc05bae956da61ce5a4c |
|
BLAKE2b-256 | a8ce84d9923b19b884e0e70d9da91e29f59c01158f26a0435c46e670a88c3dbc |
File details
Details for the file picows-1.2.2-cp313-cp313-macosx_10_13_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp313-cp313-macosx_10_13_x86_64.whl
- Upload date:
- Size: 198.4 kB
- Tags: CPython 3.13, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d53915037b992e34f4f759f39de44ad4182d7e7f9bd562e8208153aa996aaeb3 |
|
MD5 | a7873f947c02f69072eb9d6db784ea6d |
|
BLAKE2b-256 | 23e91fa9b16c922950bec8ce8b1a81600b597bb8968d56cfd51f6cd779517f2e |
File details
Details for the file picows-1.2.2-cp312-cp312-win_amd64.whl
.
File metadata
- Download URL: picows-1.2.2-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 419.0 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84373adbe1340533acf6480cc01b4a1c6f108561868575c931cbcf018a7296ff |
|
MD5 | 8cca383a6bd5616a893b8be3cbf1c741 |
|
BLAKE2b-256 | 0fa628a7382f6fdcf5abcb06c90a320a3ac2860234047bbcaa390a474de739c6 |
File details
Details for the file picows-1.2.2-cp312-cp312-win32.whl
.
File metadata
- Download URL: picows-1.2.2-cp312-cp312-win32.whl
- Upload date:
- Size: 400.2 kB
- Tags: CPython 3.12, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f14681409ccced8ad4b9c93ca3de720f5d5b5afbdfeb6be7187fc257a10f0e92 |
|
MD5 | 57f0ee18aa8d3056b3056727ca5a34c5 |
|
BLAKE2b-256 | 4fafeb59f882034dcc0ddceadd45026de392ffbdb9c6453b343290e3110bb4ff |
File details
Details for the file picows-1.2.2-cp312-cp312-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06623b284378d0de59440cf22a5f00a78c6c81e41857a60cb7509969a6b4eea1 |
|
MD5 | 8be8a8930dc0c10e14100b000a9b6133 |
|
BLAKE2b-256 | c1445499bd74264aa6009864f787119a252a4adf8838926d470024e3861fa4b1 |
File details
Details for the file picows-1.2.2-cp312-cp312-musllinux_1_2_aarch64.whl
.
File metadata
- Download URL: picows-1.2.2-cp312-cp312-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c5beac1fe30ee5f930b25032f2cae18c8d5f3569317653749781777a8c871c9 |
|
MD5 | 9c0913a40c052370a0e7e3e0004ba5c3 |
|
BLAKE2b-256 | 8f2adc7939d326d8628dfa1f9dc352f046defff9c4702034874bf5d5286e9bf6 |
File details
Details for the file picows-1.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9465f47ce65c181518c2d9aeddf91cc5a44c1b6a7cfc67b055cccda42edaec6f |
|
MD5 | 64c367efcfd9695a0dc9792a75ecbc10 |
|
BLAKE2b-256 | 71bd2dbb96046fcfcb10ad050497f2db01adbac27645a72a731f8797048366e1 |
File details
Details for the file picows-1.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: picows-1.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fdfd7189789e8e40e05cd148c660229ccc53a8ea49152e286ebefd25137eec9d |
|
MD5 | 44ec411f946894519b894106ced586ec |
|
BLAKE2b-256 | b67cf2b4725e6c4ddded74a07b6a1baabb41d8726244f20963f017c3577d4a64 |
File details
Details for the file picows-1.2.2-cp312-cp312-macosx_11_0_arm64.whl
.
File metadata
- Download URL: picows-1.2.2-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 186.2 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a2cce6fe2a2bdf816fa08e8dfef1e26189fa5c2fa02c45a2ac19f0c14c6744f |
|
MD5 | 3a6231ece2c85be4c18618ca79b183bb |
|
BLAKE2b-256 | c5e6372744069bdf3b7c88bd7ecccd898890a67d2cc9e705f3f866640abec354 |
File details
Details for the file picows-1.2.2-cp312-cp312-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp312-cp312-macosx_10_9_x86_64.whl
- Upload date:
- Size: 201.2 kB
- Tags: CPython 3.12, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 538ca23abc1334ad00267ac561769e44a5d50e8edc4f4072de00c8639d426f5a |
|
MD5 | 33d2bbbca154049df366f2af26ad3def |
|
BLAKE2b-256 | 2eab259a10a568bc481319fb52a6a8f1f03baed90afea896ed87dadc45d46293 |
File details
Details for the file picows-1.2.2-cp311-cp311-win_amd64.whl
.
File metadata
- Download URL: picows-1.2.2-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 424.7 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a32bc2786cfef5d19f9306e118094538e838953fc9fd7114842cdf1e9a1334b4 |
|
MD5 | ad3e2b81700b1ee4378ec2d7fd1020d9 |
|
BLAKE2b-256 | 8056e57ce51d57eeda2ad06007c1200b4209ff51ecee2ad476fc8e96c7fb4603 |
File details
Details for the file picows-1.2.2-cp311-cp311-win32.whl
.
File metadata
- Download URL: picows-1.2.2-cp311-cp311-win32.whl
- Upload date:
- Size: 404.9 kB
- Tags: CPython 3.11, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51b82a7d30a276f01335295fc1a9040910899481835becdc5cc571b1d39df096 |
|
MD5 | 6b8de344b80c342e1440d38d780eeec3 |
|
BLAKE2b-256 | f6a764372588365d8dd7e60885c1800131e20d17d5a64603f052d127a3ba894d |
File details
Details for the file picows-1.2.2-cp311-cp311-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | be54b70dbf5189c3a5a9d94ba4fb8aeac37b368fe49f2686d7f4f0033874bd32 |
|
MD5 | d77f89c2c13f921ecb339005f4892142 |
|
BLAKE2b-256 | 1880f7dbec0fc5f9e47a648a7a6aaeff5ac7a33e08a6eb36d3b27386c5d6dcfd |
File details
Details for the file picows-1.2.2-cp311-cp311-musllinux_1_2_aarch64.whl
.
File metadata
- Download URL: picows-1.2.2-cp311-cp311-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29a5329d305bb00122b4cc01971ec65a5d38734478f8303f14896b567d8a6ec6 |
|
MD5 | 5a474bcd928390fc4153317ab4c46013 |
|
BLAKE2b-256 | 7748120ec79ab7a981edb764c03a03cd5912f9822a9e9fd6b62d034e35fa8d3e |
File details
Details for the file picows-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0204f21ca1f4a42cad3139e25fba7da33f949d8b325e9293fb2d316d15e31051 |
|
MD5 | b6659e9131cb2f27d5d5d1751184dc9d |
|
BLAKE2b-256 | 44241e7211d95e747979a47ef1cd3bcdbc117786250cd70b333ffc75a85b353a |
File details
Details for the file picows-1.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: picows-1.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11dff8fc2f35505eb7f5027abd0c020181caa6f7f7e3e6316f6e42c9105a3f1c |
|
MD5 | 5a5d9cfe0a5c11d3a9e8b97e61640779 |
|
BLAKE2b-256 | 743fac311393126cbc1eac0b7162c16121ad98b63279c859ce7987b2f6a6ab30 |
File details
Details for the file picows-1.2.2-cp311-cp311-macosx_11_0_arm64.whl
.
File metadata
- Download URL: picows-1.2.2-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 185.1 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ea4400721f99d0045602b00b1a6d3008e01de52eeac5fb0f26c2342086378f4 |
|
MD5 | 3149d0306714ec3c70c9fd2b243249ef |
|
BLAKE2b-256 | 4f05d8178256fb2ab99aea7b4942a890e8d3b761d0681d23aaca39d0b7018c04 |
File details
Details for the file picows-1.2.2-cp311-cp311-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp311-cp311-macosx_10_9_x86_64.whl
- Upload date:
- Size: 202.0 kB
- Tags: CPython 3.11, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4ad0fabb8bf593415d2984ffe2baf9fa9bf70924273f2878b80efc3fe11ce02 |
|
MD5 | 86f32616c5548831d03111b9756055d2 |
|
BLAKE2b-256 | 617e40615264405bc58bb96731df3d4851fa247ea99faff26541267f9b8002a5 |
File details
Details for the file picows-1.2.2-cp310-cp310-win_amd64.whl
.
File metadata
- Download URL: picows-1.2.2-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 423.3 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b15536cacec4f8828e230250d43a5e716d8fb5dfbd7863e4c0272146a7c789c |
|
MD5 | 63219ca5afdaf658b3ecdfae3cd0ee3b |
|
BLAKE2b-256 | f9b859ccca22cf94b096535cc5242263fbc7896ee0f4a3ff2426c5406e7dca11 |
File details
Details for the file picows-1.2.2-cp310-cp310-win32.whl
.
File metadata
- Download URL: picows-1.2.2-cp310-cp310-win32.whl
- Upload date:
- Size: 404.6 kB
- Tags: CPython 3.10, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b24b860eeb9cb700ad5a7354b97ba68bd3811d0f40239c96c0d252aa5affabf |
|
MD5 | 8b358983ca35129dd42feb27eba81ab4 |
|
BLAKE2b-256 | 160ee27a5a7ce2ea3b756c5d536a358c6ac245a689bfa6a5422527bf642f0fa9 |
File details
Details for the file picows-1.2.2-cp310-cp310-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 35ab7c4e8032403336da03835e845a44994de596133ceea702e8cedde7e2aa40 |
|
MD5 | fe9e1e03e1698cf1e03ccce62ead3abf |
|
BLAKE2b-256 | b435dba328215e17da39f515fdb27d1ff8e9b0108183d32ef43615b4a0950527 |
File details
Details for the file picows-1.2.2-cp310-cp310-musllinux_1_2_aarch64.whl
.
File metadata
- Download URL: picows-1.2.2-cp310-cp310-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa654c6e7db768d19794aa3d2f0532cc786898faaaa37306217fd040ba1585f5 |
|
MD5 | 34e486a52f978a64d2fb389c1aa8e80e |
|
BLAKE2b-256 | 523033cdbbb19e623f8fd91232676c2ca0cd9d334a69ecc1e51b856e63348f30 |
File details
Details for the file picows-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4924836b8aa515e90d20a4889b12391ab4bfeb7bbedb8e42ff2d3728ba33f5c9 |
|
MD5 | 68e9061feb7b5081575cec125dd6dcd2 |
|
BLAKE2b-256 | 1455e73a5823ebd89c534b97ad97302ec672ccf9345df1adf8ba3c958c7e1324 |
File details
Details for the file picows-1.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: picows-1.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5570441fecebfa1efae477048b68669517260e049407eb119ab9e9fd9972296 |
|
MD5 | 3ce7706b5e800844d7439f7a52ee5c02 |
|
BLAKE2b-256 | aa20e6d8dd7e64c582ee08264c5b4ec3cf4f95c6130cbe3a19d72f566870a9d7 |
File details
Details for the file picows-1.2.2-cp310-cp310-macosx_11_0_arm64.whl
.
File metadata
- Download URL: picows-1.2.2-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 183.7 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0989c4987e7ec41cd40b8b475870d2e097651f3f2f751187e12428ea87dee2e |
|
MD5 | d813626ef94e590e3ea067fb8db1a693 |
|
BLAKE2b-256 | 07113d86ba7f57c58d0bbc8ad382353ebdda3067a113939b74067dded1d6d7fd |
File details
Details for the file picows-1.2.2-cp310-cp310-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp310-cp310-macosx_10_9_x86_64.whl
- Upload date:
- Size: 199.5 kB
- Tags: CPython 3.10, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6bb1073d369eecfb8ace31cd671f01d054699a23b196e315a5f990189eb4d3b1 |
|
MD5 | 141392336202ad1bdc79120c8f93fe38 |
|
BLAKE2b-256 | 6c1be855e0442c509ebd02cd8152afb137da4f1d67f80a895e4a8d2f56157c40 |
File details
Details for the file picows-1.2.2-cp39-cp39-win_amd64.whl
.
File metadata
- Download URL: picows-1.2.2-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 423.5 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | be9dbf303dd3f48061ea779ee4dbc50ad4479673ad4ab5401f168d82482210ee |
|
MD5 | 73d61a81a6cf63f0997eb52bfadb0671 |
|
BLAKE2b-256 | 8e26260920e327bfb8e3498f1e82027fb86d3c1c3537c35c289de2ad53bc3d14 |
File details
Details for the file picows-1.2.2-cp39-cp39-win32.whl
.
File metadata
- Download URL: picows-1.2.2-cp39-cp39-win32.whl
- Upload date:
- Size: 404.7 kB
- Tags: CPython 3.9, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c888302383245d79365c4177c7a515c1c172efa70f1c0b9bee5db0e912964d5 |
|
MD5 | e873a0c7f021b2d4cbd043a7650bf9cd |
|
BLAKE2b-256 | 58eaa05aa0aabffce02e3bfef32d3e0dc24d9740ba62b8e73bdeaea7f6851d4b |
File details
Details for the file picows-1.2.2-cp39-cp39-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp39-cp39-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.9, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b8f9a445ff5db00a70e49210083c6f35cc61e432a2b7542dac27e0de5b5a327 |
|
MD5 | 1ab431731524989483c7ad1ce0633f09 |
|
BLAKE2b-256 | df50ce28250d720b0cb0b6d42e4e09282ef3253faf86df81aef8b5fbf0213bca |
File details
Details for the file picows-1.2.2-cp39-cp39-musllinux_1_2_aarch64.whl
.
File metadata
- Download URL: picows-1.2.2-cp39-cp39-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.9, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f93f471a5238463bb13ce68524978d5be17a54ade413592d34d494223a6b9627 |
|
MD5 | d99c63ac2bba4510fdbb2a4e8e898aeb |
|
BLAKE2b-256 | e0f46235733e9575ad5db0e56306138ec040c334be2fdf6a4f4b863ea67bcd49 |
File details
Details for the file picows-1.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66abf1f39a528b0d67ef0c4fac104ff95230fdf2822108b428b5253c9f3a882b |
|
MD5 | c3ff2b3de9686217e07e3c97ad7c1d04 |
|
BLAKE2b-256 | 92af31e1ba48e8ca61ada2b99b570738287ec033f6b067704afa4db03fb18b8d |
File details
Details for the file picows-1.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: picows-1.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33eef1e7192b006e6763cd5f7405217d8458cf5a014f50d122d989e233b6033a |
|
MD5 | adbed58fc6ababe700fd2ff3ea5f55c4 |
|
BLAKE2b-256 | 69ad3c4087bf7681324952af4386ea5a20132d97d1368bd7928c03e5fc35c9ba |
File details
Details for the file picows-1.2.2-cp39-cp39-macosx_11_0_arm64.whl
.
File metadata
- Download URL: picows-1.2.2-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 183.6 kB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8cfe13731f166da2213d4b7bfa6731a953e240f64e4b465e2a303336fb5347c |
|
MD5 | e090633575755412593663753772cc36 |
|
BLAKE2b-256 | c9ce49366d591df9fcccdf11374e86d30f1262346f373f58c41d3086b0117e74 |
File details
Details for the file picows-1.2.2-cp39-cp39-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp39-cp39-macosx_10_9_x86_64.whl
- Upload date:
- Size: 199.4 kB
- Tags: CPython 3.9, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c88173d294036ee3da74fee8e2e267e72be3b5d4a092e4feba8c649c8dbff06d |
|
MD5 | 93c2d84227ad0b8e627bab0ff864851b |
|
BLAKE2b-256 | 22d015714ef0ed0aeed1ddf9a2a907fbf39e5f6a96edf4d0b2eee6fac185f03d |
File details
Details for the file picows-1.2.2-cp38-cp38-win_amd64.whl
.
File metadata
- Download URL: picows-1.2.2-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 424.9 kB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6928b9b5cf50de813c06d974f710cc6b157b745ba4d90413dc152be8c7e30339 |
|
MD5 | fcb0a06a35f2048f857aa905a88ddfe3 |
|
BLAKE2b-256 | c93f7ffc5e32639cc143a3869a3be315555345c7a42fc9f3d73b6054fadb46e8 |
File details
Details for the file picows-1.2.2-cp38-cp38-win32.whl
.
File metadata
- Download URL: picows-1.2.2-cp38-cp38-win32.whl
- Upload date:
- Size: 405.9 kB
- Tags: CPython 3.8, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67bdbcad0e5df863a50e312f5d79a1facea6fcd238c7719634ccc80c5930bb4b |
|
MD5 | 87f59166b0061c470cfcf36605d233f0 |
|
BLAKE2b-256 | 1a6cbb43f9d17954f46fbbb2af32d8f0d1d02d1821adf2741fca904da397b82a |
File details
Details for the file picows-1.2.2-cp38-cp38-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp38-cp38-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.8, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 895a51a81ea3060337f91b60b044b327e4cf965dec3cf89a7c25b9750680858a |
|
MD5 | 0de50e31056c25707e9e1d9c6b7087f0 |
|
BLAKE2b-256 | 759ab340d2356f91bc471d0417a3bf334cd61d8bf59da0d8f2f881ce8c5a1191 |
File details
Details for the file picows-1.2.2-cp38-cp38-musllinux_1_2_aarch64.whl
.
File metadata
- Download URL: picows-1.2.2-cp38-cp38-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.8, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1245bbae9db001727ae160106fa8292aa62b7e0e9c7b188f19b7e5544013d7cc |
|
MD5 | 152ddb27f35740e6e8fd9ab7683894df |
|
BLAKE2b-256 | f07c230dbfa237606eb58b297b2310dc4da3fde15f8425082a588290663386ca |
File details
Details for the file picows-1.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f4bfe1ea20ceb3b2ab63fa919e07ab95514f3c737d4b53666b1803f6095c0b0 |
|
MD5 | 4519332a6ead4e146a6cd85ffc400fa7 |
|
BLAKE2b-256 | 2b881a5a1e9dee6f467b7cb4f968772e19cbbc66bcb94b8c36ce3eb688f0b405 |
File details
Details for the file picows-1.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: picows-1.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.8, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b047eb8a7804dbd3e6cb25c1a94d5400cd60684251c32f4c90df360dce4b000 |
|
MD5 | 8a9d723f1c2bb92908909b95dce6906b |
|
BLAKE2b-256 | d4a5845f472c68041e9800260e3a90c4047216a595bff7b48457ad45376e2bff |
File details
Details for the file picows-1.2.2-cp38-cp38-macosx_11_0_arm64.whl
.
File metadata
- Download URL: picows-1.2.2-cp38-cp38-macosx_11_0_arm64.whl
- Upload date:
- Size: 183.7 kB
- Tags: CPython 3.8, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87c95ca41b9d43f82e967fc082b2a1da62cee243eda46feaf81b778b2c85e343 |
|
MD5 | cf36e869bae93a4a7092afad4a537f8d |
|
BLAKE2b-256 | 9c35b229d1044864adbfa14f5aa9a639b835c165c7cde34ecf25574e3373aced |
File details
Details for the file picows-1.2.2-cp38-cp38-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: picows-1.2.2-cp38-cp38-macosx_10_9_x86_64.whl
- Upload date:
- Size: 199.7 kB
- Tags: CPython 3.8, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0613a3e4ff306f28d83a249e55ba905772a8a6f381a2581e89b04b10f5dd3e0b |
|
MD5 | 87fdee46fa717b2b892518004e8e5dca |
|
BLAKE2b-256 | b6c9b2ba9dea675f960be8c9d9d22a925b92156b293dcac27f5a2bc3b9a6fc65 |