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.1.tar.gz (24.0 kB view details)

Uploaded Source

Built Distributions

picows-1.2.1-cp313-cp313-win_amd64.whl (419.2 kB view details)

Uploaded CPython 3.13 Windows x86-64

picows-1.2.1-cp313-cp313-win32.whl (400.4 kB view details)

Uploaded CPython 3.13 Windows x86

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

Uploaded CPython 3.13 musllinux: musl 1.2+ ARM64

picows-1.2.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.2.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.2.1-cp313-cp313-macosx_11_0_arm64.whl (184.5 kB view details)

Uploaded CPython 3.13 macOS 11.0+ ARM64

picows-1.2.1-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.1-cp312-cp312-win_amd64.whl (419.3 kB view details)

Uploaded CPython 3.12 Windows x86-64

picows-1.2.1-cp312-cp312-win32.whl (400.6 kB view details)

Uploaded CPython 3.12 Windows x86

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

Uploaded CPython 3.12 musllinux: musl 1.2+ ARM64

picows-1.2.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.2.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.2.1-cp312-cp312-macosx_11_0_arm64.whl (186.3 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

picows-1.2.1-cp312-cp312-macosx_10_9_x86_64.whl (201.3 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

picows-1.2.1-cp311-cp311-win_amd64.whl (425.0 kB view details)

Uploaded CPython 3.11 Windows x86-64

picows-1.2.1-cp311-cp311-win32.whl (405.4 kB view details)

Uploaded CPython 3.11 Windows x86

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

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

picows-1.2.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.2.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.2.1-cp311-cp311-macosx_11_0_arm64.whl (185.2 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

picows-1.2.1-cp311-cp311-macosx_10_9_x86_64.whl (202.1 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

picows-1.2.1-cp310-cp310-win_amd64.whl (423.6 kB view details)

Uploaded CPython 3.10 Windows x86-64

picows-1.2.1-cp310-cp310-win32.whl (405.1 kB view details)

Uploaded CPython 3.10 Windows x86

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

Uploaded CPython 3.10 musllinux: musl 1.2+ ARM64

picows-1.2.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.2.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.2.1-cp310-cp310-macosx_11_0_arm64.whl (183.8 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

picows-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl (199.7 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

picows-1.2.1-cp39-cp39-win_amd64.whl (423.8 kB view details)

Uploaded CPython 3.9 Windows x86-64

picows-1.2.1-cp39-cp39-win32.whl (405.2 kB view details)

Uploaded CPython 3.9 Windows x86

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

Uploaded CPython 3.9 musllinux: musl 1.2+ ARM64

picows-1.2.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.2.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.2.1-cp39-cp39-macosx_11_0_arm64.whl (183.7 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

picows-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl (199.6 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

picows-1.2.1-cp38-cp38-win_amd64.whl (425.3 kB view details)

Uploaded CPython 3.8 Windows x86-64

picows-1.2.1-cp38-cp38-win32.whl (406.4 kB view details)

Uploaded CPython 3.8 Windows x86

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

Uploaded CPython 3.8 musllinux: musl 1.2+ ARM64

picows-1.2.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.2.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.2.1-cp38-cp38-macosx_11_0_arm64.whl (183.7 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

picows-1.2.1-cp38-cp38-macosx_10_9_x86_64.whl (199.6 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: picows-1.2.1.tar.gz
  • Upload date:
  • Size: 24.0 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.1.tar.gz
Algorithm Hash digest
SHA256 2cf8ad5e41df4c49671123374e03a54f039981a10faa79f06abe92a4dcdb1453
MD5 6a235338cdb94208257b50ff597ec030
BLAKE2b-256 351dd6add9c82e7a0c6a78a0bd58a0b5baaf611c498a4ef18cf4d2e5c45907f1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: picows-1.2.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 419.2 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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 cc6d9833ec3ed3220ec42591b0f54025ab86b67c6e1b3315c1eb6b5379d0ba8e
MD5 babf766958b279a2131508a946ca2fd0
BLAKE2b-256 eb2b8951621a211ab9755018b043034fb409da00abeed05cd7680e393ec64f95

See more details on using hashes here.

File details

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

File metadata

  • Download URL: picows-1.2.1-cp313-cp313-win32.whl
  • Upload date:
  • Size: 400.4 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.1-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 862dee8474ff4b7c530835fa55c67e924a154e4e02be2633d4ee8e3d8b5e0d70
MD5 31e439ea89a4cddb429e0918c3b4ef29
BLAKE2b-256 df6cd2f0df493603b9c0367749c5357bcdee4571d0b853e485e05dc5df2119a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 de12cf2bb83e9455c48455439fe3e51a0e877bd361e28b10261014b16718acf5
MD5 aa109a7b58bfb7bc7272cf5eacbf5256
BLAKE2b-256 11a3b412367e04c0cdd4a1cfcae392b96eedabc5f0b8a80c02b1c0e3ef39ad78

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 605d539cdae17298fd14aa5c8a44843f4df683de573dd2dec39ad16eaaf3e55a
MD5 71cab2929aa9757a6167041b4a96947b
BLAKE2b-256 d0d6acae1492ecb32893d9466a67a328684e827815073ecad32d5c0d9d897f81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 df1772c887eb92f9aa548aec8213a74c3553dbdae1255146eb8c2d427be27a59
MD5 77e42072d7ea4e63863aa98cf0bfd1ff
BLAKE2b-256 d21aa98b4d6c056b4dc6e103ab6de3990044731e278e17979c5b0d2efa875d3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d401c09c2f81dda6406784d5cca28ad14580d1ba33210b7c2d83793a665ade9a
MD5 469a355563c5e03b2ec415d0dcee425f
BLAKE2b-256 43a5adcc00ea7e6d235bcd2e5295aab296f402e9e7338de35c3f24d90795a0cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d925f56b3d8f923dbab4490449f35303b93c7ed7363e77001dc6df220c1f67d8
MD5 07af111bd74c760bd379cda2f1af10c9
BLAKE2b-256 6d4e84fbb877ab09647290778967b0775f4ba40376bd7ed9bc2898ce522c4c67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 4dd949904ce4d7551389e307b6428a79d11cc19e87621116aba34694ace0c6cb
MD5 35e56effdd3b92675415b03dbcc0b52b
BLAKE2b-256 d8897d5da9b206aa24f50c5dedf4275c10893a2844e56c4e816139ea56d0a5b7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: picows-1.2.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 419.3 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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 36c04001bfbff23ee8058ef4deaeb34c21e534de7a6a1968ac3a9f1bea6feea9
MD5 df150677f24875c11928dc014ea067b5
BLAKE2b-256 82413ef7a4e63fe890c2b1e61e9818b0269a174ae7379c24a811ec97147b9e60

See more details on using hashes here.

File details

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

File metadata

  • Download URL: picows-1.2.1-cp312-cp312-win32.whl
  • Upload date:
  • Size: 400.6 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.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 cf4d30176ff50d8ca0b6870be9eb915faa6f7ac929b531d176f11888de277edf
MD5 0a76911fc195592a299d1669ae277128
BLAKE2b-256 d8e54f38023914e97a28e111c9bcbb9800d84bd3de4dccb1e364f1d6641756eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2320a2750c910a208a055b317871ded92f989300abff0c5a2632e0230c0977d8
MD5 ab08e55d13ba69535eeee199fb55571e
BLAKE2b-256 cff4708dae9f0600581eef3d5433a795f139aa937c394b92a525cf2786d25678

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 380026defc3d5164d1a35384a1af2329dc273a336f62787a02c6858c3b829798
MD5 44a1e0f0de3ecb145ceb0b076fa5b147
BLAKE2b-256 91451e9fd8a6293b8a7a7921f021ab518a1c4f432a1eb28c3bfbe7b6f08671fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ad97bc7b0764fbaf0105fc77ffbdcb2906b64272a5dc34976c528a71122b0915
MD5 e6fdd468fe903e64b09fbb56000a7ed4
BLAKE2b-256 2797ed156ae9fee2d794e0eaeabc50bdb6b262013213d97eac831d5e7629144f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e4160273a33e5f59ec8806e94d341093517bfec70eebd51ba995c61ecb94e5ab
MD5 e3bcc6af0999c63d1647ce923762f0b9
BLAKE2b-256 ec8f6d1679264bec1069c9ad79f9533dea3287edd89feb418d3a1610aa1ea5c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 896dfb12cdff87710b04a4aa0c97a109a9d22b59b56174035db9c93d96d9adf2
MD5 8ec0c439cfed742f66c6300f890e14ec
BLAKE2b-256 0103475c26d1fb89c9211f0b68a71391825ecf508ee9205f28e1f2cf273578d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8647993b15083465255f960330aba25d36d2cd9370b3c010c29d288b98d36056
MD5 f579c8c9184cd97823d72a99deb5b324
BLAKE2b-256 7d9bf955d8be805d6097935f4ddd3ab43a70ef76c3d5f72c576f0e23c12f10e4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: picows-1.2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 425.0 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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2061f9397b3b71adc10b97c2ecb2e64f27f08b3a7958d28058070adda76d54d3
MD5 74e172b8eefbc415ad569ca4b0b10a4e
BLAKE2b-256 0cd78c8faa95d58849605d02ec388f0af93f87b4b641c07ecca91defed14a687

See more details on using hashes here.

File details

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

File metadata

  • Download URL: picows-1.2.1-cp311-cp311-win32.whl
  • Upload date:
  • Size: 405.4 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.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 da716f653bbfe86b42bae65880d62fe39bf25cf5760ad1d9e456bcdefeb25c23
MD5 16f44a1f7b33f317710ce99fb927eda5
BLAKE2b-256 61a40a58a578c88427ec10c9bffd537f60b6f43a189790bdf374bb98352bd612

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8bfd78a419f135206523aa7ce6ff4121a619d3da19ffa3fdd96ae629be4d1537
MD5 5c8675cc8f79a94bc73080762db89a72
BLAKE2b-256 e4ee9edf3950dc73ab49a4309e4590bbfbc4aae2d0605bff06ed5cd3441ae558

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e124e4cf976e36be0572dd55ae48dc013948ea7147c1d9e65b2f2cb1cbc36d3d
MD5 0c36e8f194f0a64b42820466991fa303
BLAKE2b-256 987818a36c370fd7256eb0ea8da00e50dfb0a093f9ada4d598f0c60e0bb984f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eff91eda6535264a47f1902efb132cc82777374250a43b0ebc3bce42b823308d
MD5 1ff80a8b6b50fc305684dfdb5a43e343
BLAKE2b-256 b905dceaf009f8ed977bc01d5c5ff5609aa6341457da5e41e63db8c6b07c1685

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7d8ebcb8d630720150968a64f7885345e13e7078300eba22c301a5dd5e916dac
MD5 fbb4e7e01e50bb8ac9d6514babbea161
BLAKE2b-256 7df77c0e5d9c533996dc654419eb6af4e2d5d2731373a657fb18a3bed4e3e1d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 822f32a5e7b4114532427945e09d1ea2db4c606f572fce3e9bcde8db0d564021
MD5 8c3cdf5822fb372c6a4998bce7dfb547
BLAKE2b-256 84bb436bb357beeec9ceb736cd96df44fd2eb550794698d0bc65ea1ac86ec8b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 03d02fd6a80113b5a535d0dff897018c689b5c1aec3a5d9c824cc86af209fad4
MD5 7ff31b89f726da81f87e38a1e31000e0
BLAKE2b-256 66360a475d3030b437c0c720f9feddfa1ff9f4fb8c0dca4e20f84f9de32a452f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: picows-1.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 423.6 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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ebded83552020b1f08d5e4aa20067d14d15aed712259dc1b819f2889910d4574
MD5 2b63900b0c80cd5bccbfef963df2c761
BLAKE2b-256 2792616693b80ffbbab86568148202b3f551b90c3bb19604e254ce479241fa12

See more details on using hashes here.

File details

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

File metadata

  • Download URL: picows-1.2.1-cp310-cp310-win32.whl
  • Upload date:
  • Size: 405.1 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.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 ca85cf0210507d2d78121b1145183080e1ff9d98634ef528e2486c22f5066a10
MD5 fe2dd62efbd144b01142da6fbd142dab
BLAKE2b-256 333c349fe66e93c8f1e1f789e8464ebcb1542d5b1dae4702f77304dfccd9d1cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4da04ef51c4dda57ee3836766bad305f95411489f90a525ebc49721a25f6ef1f
MD5 ea1f67a3c2c7fd595995afe26cc6645e
BLAKE2b-256 9d70be021c69eddad57e204d30ae701c5914389e5a96908188647f4a0eb8cf42

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bd19987fe44d645bffe504c3e031e80dddedcefc1e9c763ad9ce6f74bc70fd96
MD5 52c4c0bf8e21990df6b7c78b13dc4aaa
BLAKE2b-256 021e2d1e49dc186b197242d6245f9b9c7d5655397aa6c5d1b37b263b7adeca48

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 56ce95a85773e6310fe76afc72e385182f33d3b68c4305e03e440da1ef5173fb
MD5 b3e58b732a7761657ee1210b9b144154
BLAKE2b-256 b5f2c321737cd7f934cfabc24fb71a69848b546638c9b68119bfff733445a21e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 de26a5488defed75d8edb5ab3fdd448df379deb3cf72b65234a0473957c124de
MD5 aeb5dffe2928a20a81c38f4e18ca2d81
BLAKE2b-256 7f9ebe7932f8077bd01261b67d500d911e5097afede593b27424319444955df4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7c66e44ef00620e276769c0a90eae3b2f8e77f74794c70b7ad87f046d7ce68eb
MD5 dc1b7ca08156c602c9923a087e08b683
BLAKE2b-256 f655ed27a54cbfc4bd5b925f2fa3b88b7d1c7a0d75c73b1e4a5b7a92f59ee6db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0579ec5994a50c9166aadaf4a7a304063a2a7ba83e281d05c5eb7ae029a85972
MD5 7b77623c164d61cc49f37b913558bd86
BLAKE2b-256 a37954d98f985c10e61a9f18473c619d0c01db8e7afad3b7181d40f8626b2225

See more details on using hashes here.

File details

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

File metadata

  • Download URL: picows-1.2.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 423.8 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.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 3193eda6a7f12ea2e044c221d5123268bdc93acb0dad1f07dd039d4cb7044076
MD5 53ce6253506c7abca5cab70cc55d056f
BLAKE2b-256 3962e544b7c2daf5761a1e2aa57d67f3e737f278816e8282ffaf95bfa656a628

See more details on using hashes here.

File details

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

File metadata

  • Download URL: picows-1.2.1-cp39-cp39-win32.whl
  • Upload date:
  • Size: 405.2 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.1-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 e81bd7b5ded94aac21da92788fa3e811cd7a092fcac1fe437af2dc6d49f160df
MD5 6cbe141f5917e00da6f3f74674a4dcb1
BLAKE2b-256 de00cf9a35d1d4b727eca212cbef52b90e5a00f7142f9a610a0f5bed0e536d5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 583d47d21ee9585ece625d2506506f02e0715df5dc29c1006edc3153ece68a42
MD5 05876ecc3e764ae05774d6e83498c53b
BLAKE2b-256 c31a3d4e11277f8d68a031af4a8462f08ba936f66485cef958cc9f52011ede8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2b014e6ff6c7eb72fb995b2a0a3d449dfe5f86ba7a29069fae61d5ea6b1328c3
MD5 501cd664a5aa35c81400b3c5a818d3e9
BLAKE2b-256 64a066ae0e2efc95dff37e94104e09cb3e2c2a768d0166469790e667cc429f44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1fb47e31be84d0ca7bbcd570cd189ee5d60e297ab12c620cf515725f64506e8b
MD5 5d4f01f8a0d9b0b405c5e8f2d97c3258
BLAKE2b-256 b7893956d2cbff507ddc05f914b2633e62951a65430ac9c8e0260ae7ecc2ad33

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ead6ae44860a66cfbd61242b577f83d30d4f425e12d554d259bc0cc80c6b3440
MD5 196c388f4b39a1e05f9a1a20f77090d1
BLAKE2b-256 daa421f274a2b91eed0f212efd6db36702fd0d3c2e8c633f306bdb080d07abdb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e23befdd56264ce9829a46b6072dd24ff42eadca9e6120aeecc540f3fa91aa20
MD5 56fcff073697a95ab688c94d9f3735f4
BLAKE2b-256 52e6f01eb42108137457c77271b047513921586d59338a3bbe39305816caf80f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e81ad96db1aab8a0a2d41579c5625c78ebefc1954363c8e73dac0850b18962bb
MD5 75aae7f636383f300fa348cdc1747fe4
BLAKE2b-256 e79298a8e80a7da01b4acb7638234ccc46cb6130e8b73b94bbe1dd3360a18fdc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: picows-1.2.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 425.3 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.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 3e01dfcb15a3c392d0727dbbe7c140834543415b3de8b1ecd21cebab0fbd049e
MD5 aaffe12fb39eb265d06008943d7323b1
BLAKE2b-256 16e0689ab75acefc504ca34ae07f39d4484b31aa8450fe7c2c73850b337b2b75

See more details on using hashes here.

File details

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

File metadata

  • Download URL: picows-1.2.1-cp38-cp38-win32.whl
  • Upload date:
  • Size: 406.4 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.1-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 6f80b28c8f97040ea061bdeaa2a73947624fbe329d55eaf05fe0d0b4e1bd2d9e
MD5 4f98c5d82aee829759d3442a5093d24b
BLAKE2b-256 8674c31390d2d8c4ffdcfba65aac8883a6b65321057d6a7909df10e2d69b2499

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 58e76421b2aa1c8f4d9da5f0b73642912cd49de070f6eacd97a6f912c7e71e11
MD5 3f91d36ba5f631a912d8d7d3d49b3d8a
BLAKE2b-256 570a79e4f108784a1804783f9a7445f4bd172f970b35ca80f01df351f81aed94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 cd5def83ac69b284b39dc33d7b3af24fd3566ec0b0d1e6a1f274052bea1027c5
MD5 4ba77b13b868358f761164c05463a52d
BLAKE2b-256 403474dfcee1a9f9f1a5d45caa74a7f1d5c32e7b145e06aa1630b9fe1548026d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eb9a25aebd9db29da7a73121c79d8ee01c7240e687ddae0e80f98e2b62d959d8
MD5 d4b63011299b00aba405291a00b98578
BLAKE2b-256 f34983bc75727592b422e71bc12b696adf5fd83b834e5da0931d9677f4f771ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3b55913f17046408e6a05e84ca1471ec18b64a5155eac61766abb29bad3f2aaf
MD5 ca46965ebcb562e232843a751047ccb8
BLAKE2b-256 ee5d48262002836543783daf94605478f154ec6bb566db49070cb4dd8ed13a9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d141683a456eec1832362d3f14d02fdd791c989bbc0c2509c3fae98bb6dd8a1
MD5 9c28d9ed56d7f5e02144742d8c2d6e6b
BLAKE2b-256 60514843841df49bed952cd3e7fd8c33562008418276f80918a5971297fe36b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 127295eb062b4f31ded1b639541f1f5809eab9f28b15dce303c32770eddab9ae
MD5 8f31be7ded48ca7d85487317bb6db650
BLAKE2b-256 39526027bf30595a6e36e8478688e72f777368959c9e3358d173750d47e52a8c

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