Skip to main content

Ultra-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.2.2.tar.gz (23.8 kB view details)

Uploaded Source

Built Distributions

picows-1.2.2-cp313-cp313-win_amd64.whl (418.9 kB view details)

Uploaded CPython 3.13 Windows x86-64

picows-1.2.2-cp313-cp313-win32.whl (399.7 kB view details)

Uploaded CPython 3.13 Windows x86

picows-1.2.2-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.2.2-cp313-cp313-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13 musllinux: musl 1.2+ ARM64

picows-1.2.2-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.2.2-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.2.2-cp313-cp313-macosx_11_0_arm64.whl (184.5 kB view details)

Uploaded CPython 3.13 macOS 11.0+ ARM64

picows-1.2.2-cp313-cp313-macosx_10_13_x86_64.whl (198.4 kB view details)

Uploaded CPython 3.13 macOS 10.13+ x86-64

picows-1.2.2-cp312-cp312-win_amd64.whl (419.0 kB view details)

Uploaded CPython 3.12 Windows x86-64

picows-1.2.2-cp312-cp312-win32.whl (400.2 kB view details)

Uploaded CPython 3.12 Windows x86

picows-1.2.2-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.2.2-cp312-cp312-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARM64

picows-1.2.2-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.2.2-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.2.2-cp312-cp312-macosx_11_0_arm64.whl (186.2 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

picows-1.2.2-cp312-cp312-macosx_10_9_x86_64.whl (201.2 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

picows-1.2.2-cp311-cp311-win_amd64.whl (424.7 kB view details)

Uploaded CPython 3.11 Windows x86-64

picows-1.2.2-cp311-cp311-win32.whl (404.9 kB view details)

Uploaded CPython 3.11 Windows x86

picows-1.2.2-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.2.2-cp311-cp311-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

picows-1.2.2-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.2.2-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.2.2-cp311-cp311-macosx_11_0_arm64.whl (185.1 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

picows-1.2.2-cp311-cp311-macosx_10_9_x86_64.whl (202.0 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

picows-1.2.2-cp310-cp310-win_amd64.whl (423.3 kB view details)

Uploaded CPython 3.10 Windows x86-64

picows-1.2.2-cp310-cp310-win32.whl (404.6 kB view details)

Uploaded CPython 3.10 Windows x86

picows-1.2.2-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.2.2-cp310-cp310-musllinux_1_2_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARM64

picows-1.2.2-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.2.2-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.2.2-cp310-cp310-macosx_11_0_arm64.whl (183.7 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

picows-1.2.2-cp310-cp310-macosx_10_9_x86_64.whl (199.5 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

picows-1.2.2-cp39-cp39-win_amd64.whl (423.5 kB view details)

Uploaded CPython 3.9 Windows x86-64

picows-1.2.2-cp39-cp39-win32.whl (404.7 kB view details)

Uploaded CPython 3.9 Windows x86

picows-1.2.2-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.2.2-cp39-cp39-musllinux_1_2_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARM64

picows-1.2.2-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.2.2-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.2.2-cp39-cp39-macosx_11_0_arm64.whl (183.6 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

picows-1.2.2-cp39-cp39-macosx_10_9_x86_64.whl (199.4 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

picows-1.2.2-cp38-cp38-win_amd64.whl (424.9 kB view details)

Uploaded CPython 3.8 Windows x86-64

picows-1.2.2-cp38-cp38-win32.whl (405.9 kB view details)

Uploaded CPython 3.8 Windows x86

picows-1.2.2-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.2.2-cp38-cp38-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ ARM64

picows-1.2.2-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.2.2-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.2.2-cp38-cp38-macosx_11_0_arm64.whl (183.7 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

picows-1.2.2-cp38-cp38-macosx_10_9_x86_64.whl (199.7 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

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

Hashes for picows-1.2.2.tar.gz
Algorithm Hash digest
SHA256 c125214e0c07b035d95af038b107c7beb8178ece1f17c7086abea9da73dff852
MD5 5f3717ce6076abf4c1f995b49416f84c
BLAKE2b-256 3dc626dd1cada377d3ffa423fc4565395335497867e6d44200b1aec4604739f3

See more details on using hashes here.

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

Hashes for picows-1.2.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 761519055727b48ce5d42c1d9f4d4e23cba5605e8a6dc693fd839ddd2c3f6b5b
MD5 d1a8bc74e61efcf1da8c1e7971aa8bc1
BLAKE2b-256 5979666bcbb8cde40b48e77d118c1446e373906db77b8b129408e2968ec0067a

See more details on using hashes here.

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

Hashes for picows-1.2.2-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 b49ded89c7416ebb21d0ee245422244651641a9eea103a323164689a287be464
MD5 c0a079ee46003800528ace4a44777480
BLAKE2b-256 5cfae332fd37e38e3406668642a919ca53bcf1435955ea153aa7eb01b3ff0ecf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a0f1023c71392f2f3d683da76b0029f578639bf3bbec02cde9cb2b0e4e6ea423
MD5 8b057d2b93e056a1529a5350309ca4ff
BLAKE2b-256 f4ed2f91683dc49504a9bea6ef723c36e3067ea209ec89a00dee13d2476fd2a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8821cfa7398b28b97d588da2bea6e4bc5cca4b48c9d476803821f5def143ffa0
MD5 e9fe5aa8bdf91d57456931555dc84ef3
BLAKE2b-256 aed1dc5eafc5025c1ab2e0709269f88ccd06432249dcd239efcc7c5a874d1e6e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 67a8d665454d9206c2ee114ff77f6644c0499734ea5d9dcae2654108436037d9
MD5 be3b0753d8b96d1fbbce43295938dd0f
BLAKE2b-256 f6dadf7439f00bda8b3e0071dcc49fee76d7248a853687336ec269ab9da1f322

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3634e2d3ffbdd988d489e90ee69b80a22a6990818524599dd13bc297f0d306b2
MD5 1d5d6edfb42889274f7a914dfe82a538
BLAKE2b-256 cb0a3e76b597be04d3884a73898514edb0c4bb1b82287de72d55f5924b80e51e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8be326dd798ccdef3e0066627217654912eb198f2a8898fc2d338d083308bd83
MD5 ab8efe8f5fc5dc05bae956da61ce5a4c
BLAKE2b-256 a8ce84d9923b19b884e0e70d9da91e29f59c01158f26a0435c46e670a88c3dbc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d53915037b992e34f4f759f39de44ad4182d7e7f9bd562e8208153aa996aaeb3
MD5 a7873f947c02f69072eb9d6db784ea6d
BLAKE2b-256 23e91fa9b16c922950bec8ce8b1a81600b597bb8968d56cfd51f6cd779517f2e

See more details on using hashes here.

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

Hashes for picows-1.2.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 84373adbe1340533acf6480cc01b4a1c6f108561868575c931cbcf018a7296ff
MD5 8cca383a6bd5616a893b8be3cbf1c741
BLAKE2b-256 0fa628a7382f6fdcf5abcb06c90a320a3ac2860234047bbcaa390a474de739c6

See more details on using hashes here.

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

Hashes for picows-1.2.2-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 f14681409ccced8ad4b9c93ca3de720f5d5b5afbdfeb6be7187fc257a10f0e92
MD5 57f0ee18aa8d3056b3056727ca5a34c5
BLAKE2b-256 4fafeb59f882034dcc0ddceadd45026de392ffbdb9c6453b343290e3110bb4ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 06623b284378d0de59440cf22a5f00a78c6c81e41857a60cb7509969a6b4eea1
MD5 8be8a8930dc0c10e14100b000a9b6133
BLAKE2b-256 c1445499bd74264aa6009864f787119a252a4adf8838926d470024e3861fa4b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6c5beac1fe30ee5f930b25032f2cae18c8d5f3569317653749781777a8c871c9
MD5 9c0913a40c052370a0e7e3e0004ba5c3
BLAKE2b-256 8f2adc7939d326d8628dfa1f9dc352f046defff9c4702034874bf5d5286e9bf6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9465f47ce65c181518c2d9aeddf91cc5a44c1b6a7cfc67b055cccda42edaec6f
MD5 64c367efcfd9695a0dc9792a75ecbc10
BLAKE2b-256 71bd2dbb96046fcfcb10ad050497f2db01adbac27645a72a731f8797048366e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fdfd7189789e8e40e05cd148c660229ccc53a8ea49152e286ebefd25137eec9d
MD5 44ec411f946894519b894106ced586ec
BLAKE2b-256 b67cf2b4725e6c4ddded74a07b6a1baabb41d8726244f20963f017c3577d4a64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6a2cce6fe2a2bdf816fa08e8dfef1e26189fa5c2fa02c45a2ac19f0c14c6744f
MD5 3a6231ece2c85be4c18618ca79b183bb
BLAKE2b-256 c5e6372744069bdf3b7c88bd7ecccd898890a67d2cc9e705f3f866640abec354

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 538ca23abc1334ad00267ac561769e44a5d50e8edc4f4072de00c8639d426f5a
MD5 33d2bbbca154049df366f2af26ad3def
BLAKE2b-256 2eab259a10a568bc481319fb52a6a8f1f03baed90afea896ed87dadc45d46293

See more details on using hashes here.

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

Hashes for picows-1.2.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a32bc2786cfef5d19f9306e118094538e838953fc9fd7114842cdf1e9a1334b4
MD5 ad3e2b81700b1ee4378ec2d7fd1020d9
BLAKE2b-256 8056e57ce51d57eeda2ad06007c1200b4209ff51ecee2ad476fc8e96c7fb4603

See more details on using hashes here.

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

Hashes for picows-1.2.2-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 51b82a7d30a276f01335295fc1a9040910899481835becdc5cc571b1d39df096
MD5 6b8de344b80c342e1440d38d780eeec3
BLAKE2b-256 f6a764372588365d8dd7e60885c1800131e20d17d5a64603f052d127a3ba894d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 be54b70dbf5189c3a5a9d94ba4fb8aeac37b368fe49f2686d7f4f0033874bd32
MD5 d77f89c2c13f921ecb339005f4892142
BLAKE2b-256 1880f7dbec0fc5f9e47a648a7a6aaeff5ac7a33e08a6eb36d3b27386c5d6dcfd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 29a5329d305bb00122b4cc01971ec65a5d38734478f8303f14896b567d8a6ec6
MD5 5a474bcd928390fc4153317ab4c46013
BLAKE2b-256 7748120ec79ab7a981edb764c03a03cd5912f9822a9e9fd6b62d034e35fa8d3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0204f21ca1f4a42cad3139e25fba7da33f949d8b325e9293fb2d316d15e31051
MD5 b6659e9131cb2f27d5d5d1751184dc9d
BLAKE2b-256 44241e7211d95e747979a47ef1cd3bcdbc117786250cd70b333ffc75a85b353a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 11dff8fc2f35505eb7f5027abd0c020181caa6f7f7e3e6316f6e42c9105a3f1c
MD5 5a5d9cfe0a5c11d3a9e8b97e61640779
BLAKE2b-256 743fac311393126cbc1eac0b7162c16121ad98b63279c859ce7987b2f6a6ab30

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8ea4400721f99d0045602b00b1a6d3008e01de52eeac5fb0f26c2342086378f4
MD5 3149d0306714ec3c70c9fd2b243249ef
BLAKE2b-256 4f05d8178256fb2ab99aea7b4942a890e8d3b761d0681d23aaca39d0b7018c04

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e4ad0fabb8bf593415d2984ffe2baf9fa9bf70924273f2878b80efc3fe11ce02
MD5 86f32616c5548831d03111b9756055d2
BLAKE2b-256 617e40615264405bc58bb96731df3d4851fa247ea99faff26541267f9b8002a5

See more details on using hashes here.

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

Hashes for picows-1.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9b15536cacec4f8828e230250d43a5e716d8fb5dfbd7863e4c0272146a7c789c
MD5 63219ca5afdaf658b3ecdfae3cd0ee3b
BLAKE2b-256 f9b859ccca22cf94b096535cc5242263fbc7896ee0f4a3ff2426c5406e7dca11

See more details on using hashes here.

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

Hashes for picows-1.2.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 9b24b860eeb9cb700ad5a7354b97ba68bd3811d0f40239c96c0d252aa5affabf
MD5 8b358983ca35129dd42feb27eba81ab4
BLAKE2b-256 160ee27a5a7ce2ea3b756c5d536a358c6ac245a689bfa6a5422527bf642f0fa9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 35ab7c4e8032403336da03835e845a44994de596133ceea702e8cedde7e2aa40
MD5 fe9e1e03e1698cf1e03ccce62ead3abf
BLAKE2b-256 b435dba328215e17da39f515fdb27d1ff8e9b0108183d32ef43615b4a0950527

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fa654c6e7db768d19794aa3d2f0532cc786898faaaa37306217fd040ba1585f5
MD5 34e486a52f978a64d2fb389c1aa8e80e
BLAKE2b-256 523033cdbbb19e623f8fd91232676c2ca0cd9d334a69ecc1e51b856e63348f30

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4924836b8aa515e90d20a4889b12391ab4bfeb7bbedb8e42ff2d3728ba33f5c9
MD5 68e9061feb7b5081575cec125dd6dcd2
BLAKE2b-256 1455e73a5823ebd89c534b97ad97302ec672ccf9345df1adf8ba3c958c7e1324

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d5570441fecebfa1efae477048b68669517260e049407eb119ab9e9fd9972296
MD5 3ce7706b5e800844d7439f7a52ee5c02
BLAKE2b-256 aa20e6d8dd7e64c582ee08264c5b4ec3cf4f95c6130cbe3a19d72f566870a9d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b0989c4987e7ec41cd40b8b475870d2e097651f3f2f751187e12428ea87dee2e
MD5 d813626ef94e590e3ea067fb8db1a693
BLAKE2b-256 07113d86ba7f57c58d0bbc8ad382353ebdda3067a113939b74067dded1d6d7fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6bb1073d369eecfb8ace31cd671f01d054699a23b196e315a5f990189eb4d3b1
MD5 141392336202ad1bdc79120c8f93fe38
BLAKE2b-256 6c1be855e0442c509ebd02cd8152afb137da4f1d67f80a895e4a8d2f56157c40

See more details on using hashes here.

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

Hashes for picows-1.2.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 be9dbf303dd3f48061ea779ee4dbc50ad4479673ad4ab5401f168d82482210ee
MD5 73d61a81a6cf63f0997eb52bfadb0671
BLAKE2b-256 8e26260920e327bfb8e3498f1e82027fb86d3c1c3537c35c289de2ad53bc3d14

See more details on using hashes here.

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

Hashes for picows-1.2.2-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 7c888302383245d79365c4177c7a515c1c172efa70f1c0b9bee5db0e912964d5
MD5 e873a0c7f021b2d4cbd043a7650bf9cd
BLAKE2b-256 58eaa05aa0aabffce02e3bfef32d3e0dc24d9740ba62b8e73bdeaea7f6851d4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8b8f9a445ff5db00a70e49210083c6f35cc61e432a2b7542dac27e0de5b5a327
MD5 1ab431731524989483c7ad1ce0633f09
BLAKE2b-256 df50ce28250d720b0cb0b6d42e4e09282ef3253faf86df81aef8b5fbf0213bca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f93f471a5238463bb13ce68524978d5be17a54ade413592d34d494223a6b9627
MD5 d99c63ac2bba4510fdbb2a4e8e898aeb
BLAKE2b-256 e0f46235733e9575ad5db0e56306138ec040c334be2fdf6a4f4b863ea67bcd49

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 66abf1f39a528b0d67ef0c4fac104ff95230fdf2822108b428b5253c9f3a882b
MD5 c3ff2b3de9686217e07e3c97ad7c1d04
BLAKE2b-256 92af31e1ba48e8ca61ada2b99b570738287ec033f6b067704afa4db03fb18b8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 33eef1e7192b006e6763cd5f7405217d8458cf5a014f50d122d989e233b6033a
MD5 adbed58fc6ababe700fd2ff3ea5f55c4
BLAKE2b-256 69ad3c4087bf7681324952af4386ea5a20132d97d1368bd7928c03e5fc35c9ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b8cfe13731f166da2213d4b7bfa6731a953e240f64e4b465e2a303336fb5347c
MD5 e090633575755412593663753772cc36
BLAKE2b-256 c9ce49366d591df9fcccdf11374e86d30f1262346f373f58c41d3086b0117e74

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c88173d294036ee3da74fee8e2e267e72be3b5d4a092e4feba8c649c8dbff06d
MD5 93c2d84227ad0b8e627bab0ff864851b
BLAKE2b-256 22d015714ef0ed0aeed1ddf9a2a907fbf39e5f6a96edf4d0b2eee6fac185f03d

See more details on using hashes here.

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

Hashes for picows-1.2.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 6928b9b5cf50de813c06d974f710cc6b157b745ba4d90413dc152be8c7e30339
MD5 fcb0a06a35f2048f857aa905a88ddfe3
BLAKE2b-256 c93f7ffc5e32639cc143a3869a3be315555345c7a42fc9f3d73b6054fadb46e8

See more details on using hashes here.

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

Hashes for picows-1.2.2-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 67bdbcad0e5df863a50e312f5d79a1facea6fcd238c7719634ccc80c5930bb4b
MD5 87f59166b0061c470cfcf36605d233f0
BLAKE2b-256 1a6cbb43f9d17954f46fbbb2af32d8f0d1d02d1821adf2741fca904da397b82a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 895a51a81ea3060337f91b60b044b327e4cf965dec3cf89a7c25b9750680858a
MD5 0de50e31056c25707e9e1d9c6b7087f0
BLAKE2b-256 759ab340d2356f91bc471d0417a3bf334cd61d8bf59da0d8f2f881ce8c5a1191

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1245bbae9db001727ae160106fa8292aa62b7e0e9c7b188f19b7e5544013d7cc
MD5 152ddb27f35740e6e8fd9ab7683894df
BLAKE2b-256 f07c230dbfa237606eb58b297b2310dc4da3fde15f8425082a588290663386ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9f4bfe1ea20ceb3b2ab63fa919e07ab95514f3c737d4b53666b1803f6095c0b0
MD5 4519332a6ead4e146a6cd85ffc400fa7
BLAKE2b-256 2b881a5a1e9dee6f467b7cb4f968772e19cbbc66bcb94b8c36ce3eb688f0b405

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1b047eb8a7804dbd3e6cb25c1a94d5400cd60684251c32f4c90df360dce4b000
MD5 8a9d723f1c2bb92908909b95dce6906b
BLAKE2b-256 d4a5845f472c68041e9800260e3a90c4047216a595bff7b48457ad45376e2bff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 87c95ca41b9d43f82e967fc082b2a1da62cee243eda46feaf81b778b2c85e343
MD5 cf36e869bae93a4a7092afad4a537f8d
BLAKE2b-256 9c35b229d1044864adbfa14f5aa9a639b835c165c7cde34ecf25574e3373aced

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0613a3e4ff306f28d83a249e55ba905772a8a6f381a2581e89b04b10f5dd3e0b
MD5 87fdee46fa717b2b892518004e8e5dca
BLAKE2b-256 b6c9b2ba9dea675f960be8c9d9d22a925b92156b293dcac27f5a2bc3b9a6fc65

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