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

Uploaded Source

Built Distributions

picows-1.2.0-cp313-cp313-win_amd64.whl (418.6 kB view details)

Uploaded CPython 3.13 Windows x86-64

picows-1.2.0-cp313-cp313-win32.whl (399.9 kB view details)

Uploaded CPython 3.13 Windows x86

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

Uploaded CPython 3.13 musllinux: musl 1.2+ ARM64

picows-1.2.0-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.0-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.0-cp313-cp313-macosx_11_0_arm64.whl (184.3 kB view details)

Uploaded CPython 3.13 macOS 11.0+ ARM64

picows-1.2.0-cp313-cp313-macosx_10_13_x86_64.whl (197.3 kB view details)

Uploaded CPython 3.13 macOS 10.13+ x86-64

picows-1.2.0-cp312-cp312-win_amd64.whl (418.7 kB view details)

Uploaded CPython 3.12 Windows x86-64

picows-1.2.0-cp312-cp312-win32.whl (400.1 kB view details)

Uploaded CPython 3.12 Windows x86

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

Uploaded CPython 3.12 musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12 macOS 11.0+ ARM64

picows-1.2.0-cp312-cp312-macosx_10_9_x86_64.whl (200.1 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

picows-1.2.0-cp311-cp311-win_amd64.whl (424.5 kB view details)

Uploaded CPython 3.11 Windows x86-64

picows-1.2.0-cp311-cp311-win32.whl (404.7 kB view details)

Uploaded CPython 3.11 Windows x86

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

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

picows-1.2.0-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.0-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.0-cp311-cp311-macosx_11_0_arm64.whl (184.6 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

picows-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl (201.5 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

picows-1.2.0-cp310-cp310-win_amd64.whl (423.2 kB view details)

Uploaded CPython 3.10 Windows x86-64

picows-1.2.0-cp310-cp310-win32.whl (404.5 kB view details)

Uploaded CPython 3.10 Windows x86

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

Uploaded CPython 3.10 musllinux: musl 1.2+ ARM64

picows-1.2.0-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.0-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.0-cp310-cp310-macosx_11_0_arm64.whl (183.0 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

picows-1.2.0-cp310-cp310-macosx_10_9_x86_64.whl (199.3 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

picows-1.2.0-cp39-cp39-win_amd64.whl (423.3 kB view details)

Uploaded CPython 3.9 Windows x86-64

picows-1.2.0-cp39-cp39-win32.whl (404.6 kB view details)

Uploaded CPython 3.9 Windows x86

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

Uploaded CPython 3.9 musllinux: musl 1.2+ ARM64

picows-1.2.0-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.0-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.0-cp39-cp39-macosx_11_0_arm64.whl (182.8 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

picows-1.2.0-cp39-cp39-macosx_10_9_x86_64.whl (199.1 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

picows-1.2.0-cp38-cp38-win_amd64.whl (424.8 kB view details)

Uploaded CPython 3.8 Windows x86-64

picows-1.2.0-cp38-cp38-win32.whl (405.8 kB view details)

Uploaded CPython 3.8 Windows x86

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

Uploaded CPython 3.8 musllinux: musl 1.2+ ARM64

picows-1.2.0-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.0-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.0-cp38-cp38-macosx_11_0_arm64.whl (183.1 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

picows-1.2.0-cp38-cp38-macosx_10_9_x86_64.whl (199.3 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for picows-1.2.0.tar.gz
Algorithm Hash digest
SHA256 db9eee5185aa2c3a9db3a5c20fd0227b4dbbf196660f14d7d80302fcd6d4f6b0
MD5 f141b2d9e8bd7d7eeb5be682592d970c
BLAKE2b-256 c8483e79ba00467ca88a3fc6ee94f76dc6066b5c74379bb394fa2216f2e55e5e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for picows-1.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f79cb7c7b5054fb4c176601fd7e47145fb317d7d0f75baf2955cefdf0564e7a1
MD5 67b551b5e70d7d563f11ac5da57a2b37
BLAKE2b-256 0f2fb3307f78863891d99dbd8bb213cea9458e3e8d4da8b9ae3c35f468b87adc

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for picows-1.2.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 28252a4f6732530e746e2e1b15d9a2219b4dd3383055f7e73f35ad29230dd331
MD5 1f0de4d39709d1e26b2ce4224efc04a2
BLAKE2b-256 cc6708feba493fa59a1a20670928243cc1c6ae80565eb8fd8be2303de5fdc7bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 91b10fa1f89d7738b89cccaa86271b251dad5e1c6dc84918df582d099c191e28
MD5 14b5acdaa734cb3292693d3245120017
BLAKE2b-256 578458ac54153eb578fff95ec5d535ffbd04aa92a4d0532d9ebaded930752810

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b6f31332ecd707aa1007b17cdefd2f6ca08320ae2dcad4aeae347e026274dcb1
MD5 71f8ddbd588a00a02439f7d5c112984f
BLAKE2b-256 68ac3525e6058b0efe00455f7d19551b7eada48385c5124beab23a0bcdd6964b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1829f1a2fcab44cf94f6a4a9c119764a2820db03b030636a33d0219982d0b52d
MD5 3c784fd7cc312d2d0e3d851c2fe41d76
BLAKE2b-256 1e2abeb62e6513ddfc8f24840d51b91bcad4bbe0bdf5e384380ff7ed946a4d34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 64ceb40d901955904a17237e75a02ff774da51d025148f3346dd636587eb4e97
MD5 6da436fe0b1849d38d395c627af5d025
BLAKE2b-256 6e13bc3ac02b27e83ae66f48380f077c93810da636268213d7a16f657ed098e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0bf77c287c5733f29272ba333a9af9170562e8f5d2a9bb6750033a1b19949c22
MD5 527a55772079be35c58073d6828d214b
BLAKE2b-256 424b966d04a965a7c597866d82c416f44ed3258925a5fc9b4367b88130e678d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d38f4b3c46e1d8523ce2e657a7ef7472decc61169a71686978b390229e79113f
MD5 68f776123897aedafc9d35f5540c7341
BLAKE2b-256 4ba78ec2527efd1c337da0e44f4c66cce460b6c6e8bca834e7ae9788ddafc223

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for picows-1.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8f73879781deb540373548718d2bbc5aef84aee85e572657d50b8798a5f54c55
MD5 891c1c723e0ff9d6372876d17fe99326
BLAKE2b-256 e7f80bdff698a1247ccdd69e6d4a96f5ee5d4efdc8ac858eee0af16a39972b22

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for picows-1.2.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 eceb3a9af0409834352bf6da784e289496e1d35ee966c84eb065fa99c1e609bc
MD5 f0551495c102770f876fd0e291a070fc
BLAKE2b-256 68366e8a72064e4103c8277862363145ee49a7b7caa15b860e824948a529900d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 05d5f5a9477607e68b1bb6aac6283b52211f7da661ac4a0de402a025cafa55b4
MD5 5cd769cbb6b76f09c4986fb10336b7fa
BLAKE2b-256 d1c6b26e95498af72a09d0cae1ab4331ac3a78d23f0090498ca54edf4458f96c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 87094a53e4bb17bc76cca40efd2b99476d7470f710d3d7c821f07ff072207333
MD5 f6ef23d5bbdca7a32755c4d747de51f3
BLAKE2b-256 c8ae69ca07fdfb11a6489e58f668cf8387eeb77cbe00208aadd221c5f007c9e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6c91ef5cc895b5872e002d77947d6d3129be42f1f90b7e053486e22643ecd8d0
MD5 b2c1ea514e18b0146b7df41dfca2cff6
BLAKE2b-256 4abefa25f6c5140ccc271c8cf3d5a470a98574f87d04dda39401c57a67b47fc1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0c2f4f4341597a441a8c3cee328fbb625688a4689abac264a1723df2d9ecf05a
MD5 4281b7154b8aea0cab9df67b14c2ea98
BLAKE2b-256 d66de07f997b57164fff022b2ed7c69d1aa3828daac92f98b651812658e21194

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e2adfd982ae1f1f79740e4ba57998a80654b09c0bf6aec8b6ba13445a54e45af
MD5 5823e24ae5ad6f2eeab3ed9dc399d59f
BLAKE2b-256 251a84b8e78a7ac55aa1e3d26e2c3cf9bec38fd9993c004fd40b9cc3794edb66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6b508c5081e930a236de3963a8fba4d00f10f1419c8a7ba1a34c762ec5110b0a
MD5 55739f22b8c8967368bd5569b5615213
BLAKE2b-256 f7c0995022ec8d940a36f000c654ac99152edf47d7abd911773a9fc51f6f51b8

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for picows-1.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 61db5f1d4e9dbb7c7a8823539c100f5071d20b5fda3742a34814d8eb7da9b258
MD5 ba366fb5e4687b0d312d0baabadf45f9
BLAKE2b-256 7a36478622cd3345ecb2cd4ed82fed238f916cfc6fa12eecd01f21b4d601ae06

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for picows-1.2.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 78dc2c4309e28e6f105a09bae0de241a54d4edbbc7159633750797fa3096efba
MD5 0ee1d1902d33d21384cbb1ef3f0f4fc6
BLAKE2b-256 23f5a6aec41bce59c655c207478e68015134459c39fb6cd5700366b0f21477d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6173aa7ae247bcdea5823f9fd48e0fb63e869e09de7a93e2627942dcdbc3fbb8
MD5 41eda92e10ca7dd16112ad2135ee0df1
BLAKE2b-256 3f4f6420916df8ed5b04e5b692d464c86dcfb3d712a8206e1f9560817870b78e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d10a597a4e8a265cea1dd6a9a0fcdbf03ca59e183f98b8f4cf212f82483af88b
MD5 9707cc4b7be079a7ec1221261d306457
BLAKE2b-256 700ec07e3a3d5521b71b1a32c04f6bab53ed22c04bdd2be4a2863333b7666484

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 17dd9174166e0e332ec3f934688e761b6b745fa5fa88d22823faa9f309903f8f
MD5 5c95ad07e273704d2d9823976788f6f7
BLAKE2b-256 7ff774dd2bcbbd4813804a6195a7ffa2244f1cab4b0f3c63b189a915be420295

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5072aba8d73daef62a6949164f7e8d0db82fcc48bf0784ee750651f306286233
MD5 5cad5f2591714b628f91175b899cdd32
BLAKE2b-256 0b8413f65e27218ffd946a2d4fd7620c84df36ee9e864b41a7f4a17a21f7316b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4172816ea8a560ab6fd32a83beb62341c023d5633deb57c0e511559d28fdd8b4
MD5 d8ed8549d9c322ed53755f47ed5e386d
BLAKE2b-256 ed520327d7b670113c1d8b7e75dda3da7abdfae128bed2533eea20a045beb23c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ebce0a2b394b1d13bba5e4d2f58f6ce5522d2407e38c063e671b8971619c0efd
MD5 6b7c11ea254c97d456edfce2d1cf847c
BLAKE2b-256 594c769c2dd2232d0c429af9fd748ce61fd1af831ccc0d93b55748e83bfedb1d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for picows-1.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7d5510b516ab024c0ced8a4859e1707c8bae688bc0af86dba47056ae55f2b045
MD5 ab2a3c4fbc4d3441854401a57427fec9
BLAKE2b-256 a15e517f8aaafc77271bf4ad846704365ce2effbc501977f5951e7166f894fc6

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for picows-1.2.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 dffbc43f02a177f0f6b3257312849a74af364e271dcf33553397a9122db8a02d
MD5 7ed7b2d0fa2ad7e53bbbace85d9be921
BLAKE2b-256 33ed96c9bc40ba37251a09f8eaa991a90303786b390b3b614ad691d33bfe91d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 dec4555305a88182cf37037f141f676bb630ad49f712e4b035f9f6be7296b522
MD5 107734b8651af241196a82187a5ac969
BLAKE2b-256 89de4aa3a4916c07100d72fcfbf9d27fbdd932a556b7305ddb46bc6137f7e919

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f2beccb34f49216898ded53f50591488aaa6e03618607cfacd736b64eb93c378
MD5 8aa4d287afd4df042bde6bda79a6222c
BLAKE2b-256 5ee21ba7c6df88ce28f57e7cbcaa871db1e56f7879327c3e2de45dd407b0285d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ba9138c6f09433e9f76677eaecb75a8c597d5c2d52c5250a9942c5a7a08693da
MD5 0c240eebdd43838b9ca4c4e48312e26a
BLAKE2b-256 694a7ea1ce411fcddb1c3a4ec0983619ed92dc4450a99adb3d97fcde2ce1f894

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 68ece34c8e84a5ecc9a53be79d73cc3809e0daccd03e094d682dd6179bdac801
MD5 7ff5d915c8e2cd699c7f972f8ed68cf8
BLAKE2b-256 7437021315910edcad584b40de58d10609f677eca950b2cfef2d86c10b04ef30

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 606ea857cb058c6b72b5cef6a506d152a0f4f55b0ee09de70c7e30235359c08c
MD5 4ed04e7586d92381857626801e798db6
BLAKE2b-256 3d59151e9bb3092ba4484e8fc8ed43af56c99e5bb130fd31aa7133295c5286f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 927b3212055b936214fc3ba0a5dacf080e9fd44cdb71081fa3c7ba842a4f8716
MD5 212cbd794cd38380057081a328195a12
BLAKE2b-256 8fa3ab953ba1e1efc7c15a283f49ddb80d42f0954b07a027c95ff8b849c45941

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for picows-1.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 16f7e7cabb4f7932d0ecc8a82877e5163e2cd008a177eaedd0a110856d17c1a1
MD5 56d0426f47514129ff2ecc5d7dbadb6e
BLAKE2b-256 c7c02317f4f7b89a94808209a5289753dfe9d2d1585009c93d9cada38bfaf6a4

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for picows-1.2.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 d10c60b5bbac68bf1854924c0e7b9f147969c7ca248fa7028793199e730d403f
MD5 c4daa8d0d6d36750ba424fce5530d92b
BLAKE2b-256 80639d384ba423bb94b2f04ef735b516f64dfec81588346362a81f4224aa4c38

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6a388c17ea3b841c559ce7ba75dcaeab531f1d3baa334e6d2b764360005dfe0d
MD5 d6387faf3e66c5afefeb4cd19c474ace
BLAKE2b-256 ce58b214fcb74b6bb6bd59c9587e7ee6f24168f593e3e05cc7f100ca6520a89a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3f213d2da027682b41d3b8c10f34c6313ecdaaa58218fd2d801e313a8617820d
MD5 27385e1c96af7f773d8f02c212dbf7fc
BLAKE2b-256 82a668c92b7a0f9f13f1012c91feb4252581a84e0dcea19c95ac07d2b889807e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 34d3576b1ab07928b0e52b7e90b3938189113ab70e97e2629001ede04b84e4c4
MD5 18f0ea5cd911bcc19ffd10ff5cd52af5
BLAKE2b-256 291d4dbffa140c12e6b8a6ca081db830522e38e480bf055e7cb0e802f793ef4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6bfed90526d3aa67445af0b1675f6187694f2b2464e9eb2ac28392c0c9813e17
MD5 87df5711a04212db304fb92adb6db6b9
BLAKE2b-256 8cb054ba3f1836fd850cccf061b1f12ca6b1ba76f689ce38f8506fd13f1fadd5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1eadcd3ff190b6114919c02b97ebb5eaf2e2c9553464a90d4b581ec5e8ba26c0
MD5 8bc0bb8e1628caf5e982fe0eef8be74a
BLAKE2b-256 149464856b4dd98e60573bf41dcab00ac269c365f78abbdd89dc0ced3897fc65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ba3fc9961968df84d3500e4d49982a9326949b4d5a18dc21bb7e179ca80a3b29
MD5 50037cc5f9a69cc62e4a6ae8008cb6a7
BLAKE2b-256 ad014f07bea265f5091cbc42495c328a27710fc073c2f771b84103154e5e6e24

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for picows-1.2.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 248e51282ebe5c045dc319fc25aca42419d74819520a52de815c6953a2aa5097
MD5 115e82aaf868143b0119622924a8fe9c
BLAKE2b-256 6bd170616a1ecd3e58ea118160aefb8f15d0fbab8b15be2cbcb64869aee679d8

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for picows-1.2.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 7ec0e5da998099d04cf3f182e2b967cdaeb998da0bb3bab330cd2695a99aefc8
MD5 e758869a49b6c40027ac9a5458ab3c52
BLAKE2b-256 36b57a3e2df240b20bf562883e66de8ea73c3bca8623d1d1e917968d4f24896a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 17f232f66ade3c268b80a760cfd87ef75647037623800a12c58df0e586ead9da
MD5 1a4c63c349139f95dfb810d7d7afb03e
BLAKE2b-256 a2acdd18a31dabd72c581e16e957a8dff55f5f59575989aa6d02bdb5ff45864e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2e9d938d77b95ce0243401039ca50708ef6ecfc11b3ea7e6d6aed4c14c54ba93
MD5 7c8a794ec1160c520b8e2e4793cdf7be
BLAKE2b-256 45109b9cbbf77e603a0bcfa6f98317e5a6c29dceae76037060414c11bb4f6ca7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 83fcaccf7126dc55425925038b90817beedae5a7b1e487cb3fa6b407080e0ca1
MD5 7f2c5a6fe2d186d955c231908909dbcf
BLAKE2b-256 09224ae513a859912185708f97f576e62b38f2ab6ce3f3c684ae6b047487731c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9e015368d366e83327dd11077a71d4bf579e5bfd4f7c41b668e872a2a8dbf9d7
MD5 ba08c06c4cbab89c57edb57cecf2653b
BLAKE2b-256 1cd2e3cab9bf59486f562508a8ac2c67db779d34f7a013a2dda3a9d6e73e3cf7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 682a09909549a6e554719bc0f523ace4b4069e233b24037abb78c185d96b822d
MD5 1153d15e719c1a6adc2ce8ff7b79c800
BLAKE2b-256 3413538646965dc15a1677968b45eb5ca786f02ebcb845ffd16f11c851ca78aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for picows-1.2.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dbc2a153e572d2c0813344d58ab458254e53b345687e169db4c51aec615ac94b
MD5 2e4a3bbb157a82ae69680daad02a335d
BLAKE2b-256 994c30c3812dbf97f88a9ff5e0ab25208d0e20f65b8a4fd38712aa98d8b27877

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