Skip to main content

Fast websocket client and server for asyncio

Project description

Introduction

Latest PyPI package version Downloads count Latest Read The Docs

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.

https://raw.githubusercontent.com/tarasko/picows/master/docs/source/_static/picows_benchmark.png

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

https://picows.readthedocs.io/en/stable/

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

picows-1.1.1.tar.gz (21.5 kB view details)

Uploaded Source

Built Distributions

picows-1.1.1-cp313-cp313-win_amd64.whl (413.5 kB view details)

Uploaded CPython 3.13 Windows x86-64

picows-1.1.1-cp313-cp313-win32.whl (395.3 kB view details)

Uploaded CPython 3.13 Windows x86

picows-1.1.1-cp313-cp313-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13 musllinux: musl 1.2+ x86-64

picows-1.1.1-cp313-cp313-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13 musllinux: musl 1.2+ ARM64

picows-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64

picows-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ ARM64

picows-1.1.1-cp313-cp313-macosx_11_0_arm64.whl (181.3 kB view details)

Uploaded CPython 3.13 macOS 11.0+ ARM64

picows-1.1.1-cp313-cp313-macosx_10_13_x86_64.whl (195.5 kB view details)

Uploaded CPython 3.13 macOS 10.13+ x86-64

picows-1.1.1-cp312-cp312-win_amd64.whl (413.5 kB view details)

Uploaded CPython 3.12 Windows x86-64

picows-1.1.1-cp312-cp312-win32.whl (395.4 kB view details)

Uploaded CPython 3.12 Windows x86

picows-1.1.1-cp312-cp312-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

picows-1.1.1-cp312-cp312-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARM64

picows-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

picows-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

picows-1.1.1-cp312-cp312-macosx_11_0_arm64.whl (183.2 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

picows-1.1.1-cp312-cp312-macosx_10_9_x86_64.whl (198.1 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

picows-1.1.1-cp311-cp311-win_amd64.whl (418.7 kB view details)

Uploaded CPython 3.11 Windows x86-64

picows-1.1.1-cp311-cp311-win32.whl (399.5 kB view details)

Uploaded CPython 3.11 Windows x86

picows-1.1.1-cp311-cp311-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

picows-1.1.1-cp311-cp311-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

picows-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

picows-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

picows-1.1.1-cp311-cp311-macosx_11_0_arm64.whl (181.9 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

picows-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl (199.0 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

picows-1.1.1-cp310-cp310-win_amd64.whl (417.1 kB view details)

Uploaded CPython 3.10 Windows x86-64

picows-1.1.1-cp310-cp310-win32.whl (399.2 kB view details)

Uploaded CPython 3.10 Windows x86

picows-1.1.1-cp310-cp310-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

picows-1.1.1-cp310-cp310-musllinux_1_2_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARM64

picows-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

picows-1.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

picows-1.1.1-cp310-cp310-macosx_11_0_arm64.whl (180.2 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

picows-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl (196.5 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

picows-1.1.1-cp39-cp39-win_amd64.whl (417.3 kB view details)

Uploaded CPython 3.9 Windows x86-64

picows-1.1.1-cp39-cp39-win32.whl (399.3 kB view details)

Uploaded CPython 3.9 Windows x86

picows-1.1.1-cp39-cp39-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

picows-1.1.1-cp39-cp39-musllinux_1_2_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARM64

picows-1.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

picows-1.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

picows-1.1.1-cp39-cp39-macosx_11_0_arm64.whl (180.0 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

picows-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl (196.3 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

picows-1.1.1-cp38-cp38-win_amd64.whl (418.8 kB view details)

Uploaded CPython 3.8 Windows x86-64

picows-1.1.1-cp38-cp38-win32.whl (400.4 kB view details)

Uploaded CPython 3.8 Windows x86

picows-1.1.1-cp38-cp38-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ x86-64

picows-1.1.1-cp38-cp38-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ ARM64

picows-1.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

picows-1.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

picows-1.1.1-cp38-cp38-macosx_11_0_arm64.whl (180.6 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

picows-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl (196.5 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

Details for the file picows-1.1.1.tar.gz.

File metadata

  • Download URL: picows-1.1.1.tar.gz
  • Upload date:
  • Size: 21.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for picows-1.1.1.tar.gz
Algorithm Hash digest
SHA256 9fb549d4e71b3d58347941407f6dc03612842d2b27ddd2897c5d092a565501cc
MD5 1437c482d2f607abc4c999f3cd9b9521
BLAKE2b-256 64892ebcc9db457dcb80ba20e25f5a5a12ecef839743e68f320d2f6093343003

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: picows-1.1.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 413.5 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for picows-1.1.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0e8a6863fd87e22cc961722267c0f6f5a3d96e506cecebc96def6ec443a121e2
MD5 c9e35e1ea28b10f2271516d3a511bd41
BLAKE2b-256 c909fcb26c94e1e42483030bd2e7dafa4d786af4c5f9e6c1a9da52e4b535002c

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp313-cp313-win32.whl.

File metadata

  • Download URL: picows-1.1.1-cp313-cp313-win32.whl
  • Upload date:
  • Size: 395.3 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for picows-1.1.1-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 94bba3ed926720600b1c59601b886e0f5c6667e1f088dee2f8fd5126b326176a
MD5 5cce2fb4f8f306de0da942f310b8e1e1
BLAKE2b-256 9ea283c8da298bc4a2fb594c9ddf68807aaf7e3439b11c1b2515194eca2d2868

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ed1cd77803a8cdebfe47776e6a4c3a79c1e297b69436c171c3a297e1d862eae1
MD5 adf678e17ed2aad5003d0c084c6a6ca0
BLAKE2b-256 68bc9233b3830ea83f8af3f753f8fc2c02d2f2707c282db733735b997c57470a

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 60cace6a6e7ebac8245fecd01cb2136652f749191a55078e714c07164a78a004
MD5 016d259e38c6872d8beb38c11844f17f
BLAKE2b-256 be22bf2c102544f729364a08cbe4c3cdcacc4b7d531920cf9c7ece5e523cf383

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c70adc16aa6d75c3dd80e6c657fbc49d486575adbd393db9b2ef8be695f8b08d
MD5 64c11166ba7a800595858364b2c1d7c8
BLAKE2b-256 78ea572870e24273d564e2d5a88fb0fd2add61f4cf41c7130e9bc7e5f892fb95

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f8001cef6ea459832f7d62327cdf7cfc3da163ef2060a542fdb16ea510de584b
MD5 28a5e9fa3cd533ee486da852260ac8ea
BLAKE2b-256 712490048ad613ad2d4350a0cfb7a8b529664c84437ec60f753ad6063c6c5594

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 73be396461fa2fca28b91e5025c8caac62668f6b97c1fd0d7acf94bb22f235f3
MD5 9c1ba29fab707eeba40736ad884b6ada
BLAKE2b-256 c612ac7746cec42ea82366f744d383fca22085fbc6fca551641fa317634390ff

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 a10c5ea617c406f2058b3a18988be7df127ee4da2c3c42cd29687d0288339f00
MD5 a8bdd1da636b267ca8620254ea7a7742
BLAKE2b-256 82940154f6bf84223a6a5a8f5afbb1311f9f95168b49dc5a4ae4c8bbda21bf17

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: picows-1.1.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 413.5 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for picows-1.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 45f6b4df4da5c083896e3e49152c23095ecbb55c7a2b85c34d2ad0447464dab7
MD5 826b3abd94d0f01fab7b6d1c8af31113
BLAKE2b-256 13d4a3125526f1247ae638e1952de337757e2ca12a39f61fc7ac9b7f5955965d

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp312-cp312-win32.whl.

File metadata

  • Download URL: picows-1.1.1-cp312-cp312-win32.whl
  • Upload date:
  • Size: 395.4 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for picows-1.1.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 84b8d8da5f44a1bb125209b02c8fc87fab1bc4b11a96a7afa3a83218d4103fbd
MD5 ef0c75d4b96993be7268c010d4d8601b
BLAKE2b-256 a1a06acda693f95b9fbfa7b093cf2c6a062e949a6f6cdcf91ffef9790d542251

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 56ce624352776d3e3721c6c642e3c0945d614bc94bdc538a35e9573d97338d77
MD5 9e7dc11dcbe3eff2a41613b9f09c1cfa
BLAKE2b-256 4ff9291f8e1d912ec4df41ffe718023d6f189b93af7f9fce25cc449d5addf545

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fcceaad826b3e9140fab708d758a339d09d9d43cc338ac9c8e31be4dd4d9c036
MD5 73e821de93b6523dc7e7a1db3affbc63
BLAKE2b-256 77d89aba0c23067f79de42f9155c9fcaa0c0e29cb7318b9c5a914cda47298c12

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 46da7db697fb9ee42af29125f110b1a5a97bdf3194f59687aaaa711ff31c61d3
MD5 aac4c1542ee21dcce3aa0b37f13bb1a8
BLAKE2b-256 fe15753180ff6a02d66b979d387180740b5d4e15faf5bcf8e36b54f96e9d1084

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2a339c4bf822106004cf497da531c477790d2746cda1c7c47bb3ca22de17282c
MD5 c2201e102b7684f55d56aa287b5fdd34
BLAKE2b-256 f1d1322894cbd91171c672d2cc748ceca1f6674b3b28dd5b2ce8b5230ff53c5a

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7c53b11c118fb30b89a78992a3a2500ac4807201c073e9e97587b9a21acb1b9e
MD5 64baaa41262bea677165e583d9dd11db
BLAKE2b-256 00d2b02b0c0bb9dfc5d29b916a281100cf0a9d5f41e31e7e78d1620e5efd6097

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1abbe9c0d85f6bb44ef1e4acd3e85abce8a385ddd634b32c08c9c673a44d98b0
MD5 db343212c255f9123258f91390cc2a00
BLAKE2b-256 8bafc32c0dc3b410a231a02744b25edccc6d49583f18dd4ee1d456569275f53f

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: picows-1.1.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 418.7 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for picows-1.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fdee3c0fff3dfbc74a08c102be0a26632c8abf0122f921b1ad918ec412851573
MD5 d6812ba54b2a9502a0cd1bef13e3c68c
BLAKE2b-256 6eed910dbef40b513b2dc2c4f9bbb8af737ce697b581c6fc6861936b58d31977

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp311-cp311-win32.whl.

File metadata

  • Download URL: picows-1.1.1-cp311-cp311-win32.whl
  • Upload date:
  • Size: 399.5 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for picows-1.1.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 b7cb61a40e1af965f7d6c69e4b8edc84e519e229799399aa7f3b2272250f35e5
MD5 adf6350c052b7e65924e25e8a2c3a418
BLAKE2b-256 0266e6e492257917145555f8ed84eac4e7001c6d1d117276eede20cb5a1a7374

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 69e8e8a6aaa70f808376c14786358af6512a5ec7973a39929ea0d5ab85a7840e
MD5 d82b1c3cafb3e4c4482c0a0db4dfd33e
BLAKE2b-256 65ac878881932aa0648a8d8cc31ce92ca735ccfe3feb01a35cbf6d9d3cdf36bd

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4ec839efd00384a0728d9f16bfc9ae31bc6aa8d107bc4e99738b28ac1fca9377
MD5 581976dff67b0a88c2b6daa0e715169b
BLAKE2b-256 eadd6643b90bc19513d805565d674db3f4c65dec1c51ba24550a358c4ce674fc

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9bdccc7bfeff8a74b7741887e819761ff3457eb8e3625a0d1956f5824fee5b61
MD5 06ea9960c59fe75d72531121c9f2cf86
BLAKE2b-256 4caefe208a5d1d2b95d388a51eb3060bc5dc754d925dfaaee8a210cd63874434

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ec899fbc250cc392090f3d001cc9737acd758c62f92529bed5418ce8c930d08b
MD5 188725d9cb8ff8e3130f8d8cf4d72c54
BLAKE2b-256 1aec5c183be6bf92f49343e5b94afce8d614b45db9f3cbdfde1df692c487ac63

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bf642498b5475f494e887e8fe7f6a7da99bebe09a33e2b61de51c5a6f74318b3
MD5 a4bb49a40b4b699448c49fbee4179101
BLAKE2b-256 7fcd432275bf3304844a8e79e24f3099f5bf9a567144b71a87215a126c742b1e

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 86db5136409662da80176098e938984a85eba67065eddf78d8b61d05b536b52e
MD5 3b3b5b90b2db5c2cc53bb942505e864e
BLAKE2b-256 aacf87c75fcec4beed6f9fe4424134a67a01e1c93a1a84f872593c9814a21ebd

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: picows-1.1.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 417.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for picows-1.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f9f5e18eb208eba95fd003c6f695acd5491a164fc9275f91995301c3d2805ffb
MD5 7568e1e5a24e9dae2739e53a94ad52bf
BLAKE2b-256 7f33f777c26ed3a6bc106ae668f489f4ddcddd09165a585e29c856e6ae515479

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp310-cp310-win32.whl.

File metadata

  • Download URL: picows-1.1.1-cp310-cp310-win32.whl
  • Upload date:
  • Size: 399.2 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for picows-1.1.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 09814c69b04f618c379da8ba6a9dea604412a5683627e4cbecaf8072ef3b0427
MD5 4903d71d80a3c227938ec23de563b79d
BLAKE2b-256 ed5a83a34421f00ed86ed56120aecc9e5be003f80fb37eb6975a4b060779d660

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 aad2f4ad5344347259b1c9524b96a8a6e1368d71e7b50ae945256a984cd132aa
MD5 ce46fde25e30fe23315be2fd210643d4
BLAKE2b-256 696e1b072376616408c6a36bd0e4e58c1837c746aa990afd5046a46b21888092

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c020aeb2ba4f22808394870e20c686190b2032d24ef29b3f31e478afb8bb2f31
MD5 e5506b155b63dffc81690f4730f60d45
BLAKE2b-256 806571973ffebc3af91f163cda9bb59b57c00d034ba07bd61a82f328b22d6ec2

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7dd2b426456585b4cfd6df2f973af9ddfd48cf98971b46303b2496d70ee63dee
MD5 8af15f5287b946a0bdb280d1119a124f
BLAKE2b-256 375c3816a686056c86c039c90b8716d9297bc94a2500e31ecff54354fb23b0cf

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0320dc7988a68ce7e466eb877c69c614519ac0cd4451ebcc25ecc67de59cf0e2
MD5 50e470b4cbe5c72dfbe210a1a0f38652
BLAKE2b-256 be5ebc86de03375e884b823218d533fac4652e897fe06e6b0470ed22721ec0b4

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dab7fa9f0874bb81a9ba1ee5f1f6d6080651353375ba862dfda083035417a1ce
MD5 53fe3c159fcf8a028b211ef50a2b815a
BLAKE2b-256 66e1037ae045c18789e5cdd00ff9c88de6b0bbeb81b8d491894a9a709c317bc8

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 26e549c80dd7a133724cb281df09d8f1e46bc84c67d4df17fb6e49dc8d21dac1
MD5 db4522fd1e74ca37a8ee42a57fe65810
BLAKE2b-256 2ead8a71d7325087dc922be5d5446ebf76670f0a4603d81d33503e823a076e90

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: picows-1.1.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 417.3 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for picows-1.1.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c6b9b87816ed4cce4eb2c76c37bac55cae7fea9cebcce4899576e03b3d61a2d9
MD5 e43e896d2c788dd633da6c0fa9b74ebc
BLAKE2b-256 79f0926fe18df6337a0cd5e33d7e7b95492e2080af13153fc419f3f4ed90c626

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp39-cp39-win32.whl.

File metadata

  • Download URL: picows-1.1.1-cp39-cp39-win32.whl
  • Upload date:
  • Size: 399.3 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for picows-1.1.1-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 3d87ee15304c9861d2b8219593d2e09e8e7a5788bf50ed85c2efaac9c86d6067
MD5 1d6ff1e111dc2b97164e6157d4298ac7
BLAKE2b-256 189f2d650b03bf9df4868a67ca661470931618c57bd43b6df6a267d339e3ae41

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0ee11c607e06323e6dba6c111817607fb8e396336bd3295a5662ba38566d83a4
MD5 bad76278b00054b8387d8a002a748bfc
BLAKE2b-256 bc3ce772fd0d618d3cf60f14dc1e5e792d9e75c8f3e1baabd351dfe7ee967113

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a7ce371a0651bcaccd0f8f6ab58e923a00affd24d0d2bfc75ef25d2832deebad
MD5 f4af3f0d2c4a0a85fd49e85332d3227a
BLAKE2b-256 5e4c3c9b9ec60dcfa6adb48c9a71a7d1e9369ba6d0996a5d105cf03e5f437442

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 01a92742916639eea9ef695da92f97de25e69eef8195362d0b3141d4d7788fc1
MD5 65a66978b7a53880bce22f404f96a43f
BLAKE2b-256 af3db42e96d45a32d0af30d356f140be3e412453d876eaf92ac7d67aede9af08

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5544cb8354d10aede6e51fc8f05eb64c2e02d7427c198efe7637a463e68e4cff
MD5 d0228ea832a82cde816205a6daea0c1d
BLAKE2b-256 45139d178d508084134e740351030384f30f8f552aa91df79e29a87d8e37afd0

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3ea048e1b9e46a729009748e9ca68aca511e74f05672c83b70530b69628426a3
MD5 1f2f0039e21924cfda194a4263505893
BLAKE2b-256 f4f96df48ad346080886d5f07877a144ab30c31b94f10c12bed810746f543e65

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1aa731176ca5702e1b2062613f1deac5eeb97000f197810a5f2a2895b95ec6af
MD5 b18a89bc3c4f9280faf1b5852a8828cb
BLAKE2b-256 cee2121601403415177681ed40c26913f15ad5a3950023de91d8c2d0320dda26

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: picows-1.1.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 418.8 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for picows-1.1.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 809b70db18888eb8f30a082dd3dc75a8c8eaf6d1bfa5a43604f3a53255065ab3
MD5 f4aca0ae4ca41ab1265c3e0c4451cf59
BLAKE2b-256 2949576b85aa6062a8ce1a7fc61d34c4d8d4b70dbc32757a147025cfa10a01ea

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp38-cp38-win32.whl.

File metadata

  • Download URL: picows-1.1.1-cp38-cp38-win32.whl
  • Upload date:
  • Size: 400.4 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for picows-1.1.1-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 5b80dca8725408c36af652c6605f795c6240d1d22396110d75d3a7fab928b42d
MD5 6d5426cfcde9abe575fcdf383278f8f4
BLAKE2b-256 be6bd442c14ac541e4af5fa2f44eedfa4fb7075777b0125e19c36b6b99dd759f

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d00e1758c2890b21047a41984f29b71737eb36c015d6c5552896604693df0cb9
MD5 baed08227191a26b1d9b62990fa9f375
BLAKE2b-256 0575ecaca21eb7a4d9a61a9acf2fd5113f92d931305d6eca69a3e68b53f71063

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 57e2f31ea05023d674d30d581eac70438ae16177e86ef02919b948ce54a80ae0
MD5 770614792c4fc2fe6a93176445b1e426
BLAKE2b-256 270260798f736af18746ec74714f44190f349ea71a85bb0e854d6725fc981ec0

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7bd980392a1481d20dfe6f5922c29239cd65f4bf1f6b9f37f92aa1fb1eb287a8
MD5 4bf84ad0e37d914428ada4ed5a2ffb7f
BLAKE2b-256 b1a3353ab7db9da82db8d90fe0554616f430c792ae9302d68cc29804f1d93c2c

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b982d8eef9beddbcc1d95eb0006addeb85a2b0a117281d884c33bb2d35206164
MD5 05d6682d8277373658c286e2719a248a
BLAKE2b-256 92f6908d8dbd989f77fd9f7e4cf876b681fc2be639049a159cabbd53c16ea0c4

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a241eee47d53c391090e01d9c640948f7714db3ca6c2affec5209e65460744e8
MD5 d9fbc057a022f868e6cbc5cd4b4963e6
BLAKE2b-256 7028657f7f8ad97e50beb7e698767c167eae417b379464599cec4a96a5147d8e

See more details on using hashes here.

File details

Details for the file picows-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for picows-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e19a06b35f86d1c680f88d91a48937a837470fb25e0da830db26e91da0aaa856
MD5 5909d8a2844b0c29317deb557774088b
BLAKE2b-256 f688f918e694e8dfb73dfa5e3085dbf5e10dce475b9b33620c566848e0299686

See more details on using hashes here.

Supported by

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