Skip to main content

A Rust HTTP server for Python applications

Project description

Granian

A Rust HTTP server for Python applications.

Rationale

The main reasons behind Granian design are:

  • Have a single, correct HTTP implementation, supporting versions 1, 2 (and eventually 3)
  • Provide a single package for several platforms
  • Avoid the usual Gunicorn + uvicorn + http-tools dependency composition on unix systems
  • Provide stable performance when compared to existing alternatives

Features

  • Supports ASGI/3, RSGI and WSGI interface applications
  • Implements HTTP/1 and HTTP/2 protocols
  • Supports HTTPS
  • Supports Websockets

Quickstart

You can install Granian using pip:

$ pip install granian

Create an ASGI application in your main.py:

async def app(scope, receive, send):
    assert scope['type'] == 'http'

    await send({
        'type': 'http.response.start',
        'status': 200,
        'headers': [
            [b'content-type', b'text/plain'],
        ],
    })
    await send({
        'type': 'http.response.body',
        'body': b'Hello, world!',
    })

and serve it:

$ granian --interface asgi main:app

You can also create an app using the RSGI specification:

async def app(scope, proto):
    assert scope.proto == 'http'

    proto.response_str(
        status=200,
        headers=[
            ('content-type', 'text/plain')
        ],
        body="Hello, world!"
    )

and serve it using:

$ granian --interface rsgi main:app

Options

You can check all the options provided by Granian with the --help command:

$ granian --help
Usage: granian [OPTIONS] APP

  APP  Application target to serve.  [required]

Options:
  --host TEXT                     Host address to bind to  [env var:
                                  GRANIAN_HOST; default: (127.0.0.1)]
  --port INTEGER                  Port to bind to.  [env var: GRANIAN_PORT;
                                  default: 8000]
  --interface [asgi|asginl|rsgi|wsgi]
                                  Application interface type  [env var:
                                  GRANIAN_INTERFACE; default: (rsgi)]
  --http [auto|1|2]               HTTP version  [env var: GRANIAN_HTTP;
                                  default: (auto)]
  --ws / --no-ws                  Enable websockets handling  [env var:
                                  GRANIAN_WEBSOCKETS; default: (enabled)]
  --workers INTEGER RANGE         Number of worker processes  [env var:
                                  GRANIAN_WORKERS; default: 1; x>=1]
  --threads INTEGER RANGE         Number of threads  [env var:
                                  GRANIAN_THREADS; default: 1; x>=1]
  --blocking-threads INTEGER RANGE
                                  Number of blocking threads  [env var:
                                  GRANIAN_BLOCKING_THREADS; default: 1; x>=1]
  --threading-mode [runtime|workers]
                                  Threading mode to use  [env var:
                                  GRANIAN_THREADING_MODE; default: (workers)]
  --loop [auto|asyncio|uvloop]    Event loop implementation  [env var:
                                  GRANIAN_LOOP; default: (auto)]
  --opt / --no-opt                Enable loop optimizations  [env var:
                                  GRANIAN_LOOP_OPT; default: (disabled)]
  --backlog INTEGER RANGE         Maximum number of connections to hold in
                                  backlog  [env var: GRANIAN_BACKLOG; default:
                                  1024; x>=128]
  --http1-buffer-size INTEGER RANGE
                                  Set the maximum buffer size for HTTP/1
                                  connections  [env var:
                                  GRANIAN_HTTP1_BUFFER_SIZE; default: 417792;
                                  x>=8192]
  --http1-keep-alive / --no-http1-keep-alive
                                  Enables or disables HTTP/1 keep-alive  [env
                                  var: GRANIAN_HTTP1_KEEP_ALIVE; default:
                                  (enabled)]
  --http1-pipeline-flush / --no-http1-pipeline-flush
                                  Aggregates HTTP/1 flushes to better support
                                  pipelined responses (experimental)  [env
                                  var: GRANIAN_HTTP1_PIPELINE_FLUSH; default:
                                  (disabled)]
  --http2-adaptive-window / --no-http2-adaptive-window
                                  Sets whether to use an adaptive flow control
                                  for HTTP2  [env var:
                                  GRANIAN_HTTP2_ADAPTIVE_WINDOW; default:
                                  (disabled)]
  --http2-initial-connection-window-size INTEGER
                                  Sets the max connection-level flow control
                                  for HTTP2  [env var: GRANIAN_HTTP2_INITIAL_C
                                  ONNECTION_WINDOW_SIZE; default: 1048576]
  --http2-initial-stream-window-size INTEGER
                                  Sets the `SETTINGS_INITIAL_WINDOW_SIZE`
                                  option for HTTP2 stream-level flow control
                                  [env var:
                                  GRANIAN_HTTP2_INITIAL_STREAM_WINDOW_SIZE;
                                  default: 1048576]
  --http2-keep-alive-interval INTEGER
                                  Sets an interval for HTTP2 Ping frames
                                  should be sent to keep a connection alive
                                  [env var: GRANIAN_HTTP2_KEEP_ALIVE_INTERVAL]
  --http2-keep-alive-timeout INTEGER
                                  Sets a timeout for receiving an
                                  acknowledgement of the HTTP2 keep-alive ping
                                  [env var: GRANIAN_HTTP2_KEEP_ALIVE_TIMEOUT;
                                  default: 20]
  --http2-max-concurrent-streams INTEGER
                                  Sets the SETTINGS_MAX_CONCURRENT_STREAMS
                                  option for HTTP2 connections  [env var:
                                  GRANIAN_HTTP2_MAX_CONCURRENT_STREAMS;
                                  default: 200]
  --http2-max-frame-size INTEGER  Sets the maximum frame size to use for HTTP2
                                  [env var: GRANIAN_HTTP2_MAX_FRAME_SIZE;
                                  default: 16384]
  --http2-max-headers-size INTEGER
                                  Sets the max size of received header frames
                                  [env var: GRANIAN_HTTP2_MAX_HEADERS_SIZE;
                                  default: 16777216]
  --http2-max-send-buffer-size INTEGER
                                  Set the maximum write buffer size for each
                                  HTTP/2 stream  [env var:
                                  GRANIAN_HTTP2_MAX_SEND_BUFFER_SIZE; default:
                                  409600]
  --log / --no-log                Enable logging  [env var:
                                  GRANIAN_LOG_ENABLED; default: (enabled)]
  --log-level [critical|error|warning|warn|info|debug]
                                  Log level  [env var: GRANIAN_LOG_LEVEL;
                                  default: (info)]
  --log-config FILE               Logging configuration file (json)  [env var:
                                  GRANIAN_LOG_CONFIG]
  --ssl-keyfile FILE              SSL key file  [env var: GRANIAN_SSL_KEYFILE]
  --ssl-certificate FILE          SSL certificate file  [env var:
                                  GRANIAN_SSL_CERTIFICATE]
  --url-path-prefix TEXT          URL path prefix the app is mounted on  [env
                                  var: GRANIAN_URL_PATH_PREFIX]
  --respawn-failed-workers / --no-respawn-failed-workers
                                  Enable workers respawn on unexpected exit
                                  [env var: GRANIAN_RESPAWN_FAILED_WORKERS;
                                  default: (disabled)]
  --respawn-interval FLOAT        The number of seconds to sleep between
                                  workers respawn  [env var:
                                  GRANIAN_RESPAWN_INTERVAL; default: 3.5]
  --reload / --no-reload          Enable auto reload on application's files
                                  changes (requires granian[reload] extra)
                                  [env var: GRANIAN_RELOAD; default:
                                  (disabled)]
  --process-name TEXT             Set a custom name for processes (requires
                                  granian[pname] extra)  [env var:
                                  GRANIAN_PROCESS_NAME]
  --version                       Show the version and exit.
  --help                          Show this message and exit.

Threading mode

Granian offers two different threading paradigms, due to the fact the inner Rust runtime can be multi-threaded – in opposition to what happens in Python event-loop which can only run as a single thread.

Given you specify N threads with the relevant option, in workers threading mode Granian will spawn N single-threaded Rust runtimes, while in runtime threading mode Granian will spawn a single multi-threaded runtime with N threads.

Benchmarks suggests workers mode to be more efficient with a small amount of processes, while runtime mode seems to scale more efficiently where you have a large number of CPUs. Real performance will though depend on specific application code, and thus your mileage might vary.

Event loop optimizations

With the --opt option Granian will use custom task handlers for Python coroutines and awaitables to improve Python code execution. Due to the nature of such handlers some libraries and specific application code relying on asyncio internals might not work.

You might test the effect such optimizations cause over your application and decide whether to enable 'em or leave 'em disabled (as per default).

Project status

Granian is currently under active development.

Granian is compatible with Python 3.8 and above versions.

License

Granian is released under the BSD License.

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

granian-1.3.2.tar.gz (68.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

granian-1.3.2-pp310-pypy310_pp73-win_amd64.whl (2.6 MB view details)

Uploaded PyPyWindows x86-64

granian-1.3.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl (3.1 MB view details)

Uploaded PyPymusllinux: musl 1.1+ x86-64

granian-1.3.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl (3.1 MB view details)

Uploaded PyPymusllinux: musl 1.1+ ARM64

granian-1.3.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

granian-1.3.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

granian-1.3.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded PyPymacOS 11.0+ ARM64

granian-1.3.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl (2.8 MB view details)

Uploaded PyPymacOS 10.12+ x86-64

granian-1.3.2-pp39-pypy39_pp73-win_amd64.whl (2.6 MB view details)

Uploaded PyPyWindows x86-64

granian-1.3.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl (3.1 MB view details)

Uploaded PyPymusllinux: musl 1.1+ x86-64

granian-1.3.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl (3.1 MB view details)

Uploaded PyPymusllinux: musl 1.1+ ARM64

granian-1.3.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

granian-1.3.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

granian-1.3.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded PyPymacOS 11.0+ ARM64

granian-1.3.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl (2.8 MB view details)

Uploaded PyPymacOS 10.12+ x86-64

granian-1.3.2-pp38-pypy38_pp73-win_amd64.whl (2.6 MB view details)

Uploaded PyPyWindows x86-64

granian-1.3.2-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl (3.1 MB view details)

Uploaded PyPymusllinux: musl 1.1+ x86-64

granian-1.3.2-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl (3.1 MB view details)

Uploaded PyPymusllinux: musl 1.1+ ARM64

granian-1.3.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

granian-1.3.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

granian-1.3.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded PyPymacOS 11.0+ ARM64

granian-1.3.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl (2.8 MB view details)

Uploaded PyPymacOS 10.12+ x86-64

granian-1.3.2-cp312-none-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.12Windows x86-64

granian-1.3.2-cp312-cp312-musllinux_1_1_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

granian-1.3.2-cp312-cp312-musllinux_1_1_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ ARM64

granian-1.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

granian-1.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

granian-1.3.2-cp312-cp312-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

granian-1.3.2-cp312-cp312-macosx_10_12_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

granian-1.3.2-cp311-none-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.11Windows x86-64

granian-1.3.2-cp311-cp311-musllinux_1_1_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

granian-1.3.2-cp311-cp311-musllinux_1_1_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

granian-1.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

granian-1.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

granian-1.3.2-cp311-cp311-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

granian-1.3.2-cp311-cp311-macosx_10_12_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

granian-1.3.2-cp310-none-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.10Windows x86-64

granian-1.3.2-cp310-cp310-musllinux_1_1_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

granian-1.3.2-cp310-cp310-musllinux_1_1_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

granian-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

granian-1.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

granian-1.3.2-cp310-cp310-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

granian-1.3.2-cp310-cp310-macosx_10_12_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

granian-1.3.2-cp39-none-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.9Windows x86-64

granian-1.3.2-cp39-cp39-musllinux_1_1_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

granian-1.3.2-cp39-cp39-musllinux_1_1_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

granian-1.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

granian-1.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

granian-1.3.2-cp39-cp39-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

granian-1.3.2-cp39-cp39-macosx_10_12_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

granian-1.3.2-cp38-none-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.8Windows x86-64

granian-1.3.2-cp38-cp38-musllinux_1_1_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

granian-1.3.2-cp38-cp38-musllinux_1_1_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

granian-1.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

granian-1.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

granian-1.3.2-cp38-cp38-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

granian-1.3.2-cp38-cp38-macosx_10_12_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.8macOS 10.12+ x86-64

File details

Details for the file granian-1.3.2.tar.gz.

File metadata

  • Download URL: granian-1.3.2.tar.gz
  • Upload date:
  • Size: 68.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.14

File hashes

Hashes for granian-1.3.2.tar.gz
Algorithm Hash digest
SHA256 d630592fdc8343f841b969bd96062e3d4a67dad6504b591e2dc8969b5220f40d
MD5 b53d240e33c560d7f41004607796c700
BLAKE2b-256 13697ac5c690c5afa3e0a864953837c49227d7e67428f4f86f884e951c87d972

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 a7d3a6ec642f6a2d0b085b7520ef433889caae05403baf02b63a0185c22658a8
MD5 126d913363caeb99cfbb2730a70a431c
BLAKE2b-256 4e19ab2d096f873afc57549770ed7dce178f4423ce8e5c6726a8e99e80c56a9d

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9bf3dd7c6d925cc26c3898dc3db77593a2f87ce55d7aa8abd2a3b37ef211f186
MD5 7fd67c52e3e536644b3f72442c184ad6
BLAKE2b-256 e3cf2bc2dbb2234cf0a18ec5e4b86e820bf03e9eff3a3e574ab797e34aa89e83

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 2287f27b1af53bff9f76859c47c97725fd0b4a6c09b9aa42b66fafa5dc168395
MD5 760ba39872e393bfec81303d55421d66
BLAKE2b-256 07a8c8c8fa6da04222b986cb77fe277d49d32550ad643f28b3e7a8c4fa6fc4fb

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 993c7837ea70388d2cfaf0d373136302180e5a11bf4cea5e0c1dfee240dc61d8
MD5 6afe0271ef49b4d139d8efe0522f4ffb
BLAKE2b-256 5837a12a902a2b74cd484450a71c58f025a8990544d4ef9408821fb37606f5c0

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ef7f451d6d807520f9ededc897f01d43517c2ea301e7b7b277635087c07b30f3
MD5 69c2095417416f794249fd07209f4810
BLAKE2b-256 cbae5ca8420f1a2267613eeb2a728ac8ec3c183bf8fffb7c3c40b318ce3d9e3e

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3616fcaa19019d4747c67235de00131ba86267e52947101e0c85ab8a6701702a
MD5 b614e7e6949259e33f4eb3950bece67c
BLAKE2b-256 a2a7793d2e06946e295cc5701f3a8d86b387582262bb5f98ceedaeba257b1d20

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4f0773439b2b3bb8c888a36b6d2954b88cfb097d531feef9cfb30a95c6003653
MD5 f4b80f56e27c58414e79d66b867e6557
BLAKE2b-256 191fdfd58a86a6d3071f93be467f29260e506eccf0450713fc2e7d7cf03cc757

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 626d08117e7a5c568095a8cca7b4acbbfa9ccf39775144f977d384a2eb238ea9
MD5 a74a085614339b1f7b3bf503f983ef69
BLAKE2b-256 c29b16d51d68a8694ad02e6c3ebeb271a6b059216f2375985dd82da3cec139d4

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 062f1587029ecb1c1ae0f030ceda102a86563ae27537ef4440b7713ade2ab74d
MD5 453f89008502c7efb8fd533adf241d05
BLAKE2b-256 cbe770c56c2d5d0638ccd84cebde7aa1a67cb9bbca0dd8c159e4f99fb96daab5

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d6e9942786356fcacc15b40fc88d1b83667a0a27cb3035d374fbd699965c442e
MD5 988534e9900477023e5aef6c1beef143
BLAKE2b-256 d95a505cd50bd666b9df38801e08204b67a57cd772a3533bf80c135eb1f9b6d2

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6b11de6af839090cefdb71630058983365cd1b6e233653986ed5764d6b00ed9c
MD5 afeb71c593c16629d0213f76b0b2f30b
BLAKE2b-256 0791dd7bc69e0521b132cf0c7359448c62c6a8f68c6b2d2c8f917f0683c04193

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 215ad8204e16a97fb33207e9db80817320113917bf72d0f4670529b66f35fef0
MD5 f355ebf615255804a7967dde80e9c0a6
BLAKE2b-256 b5a8e75a9794c4557e3c6909c00a02fa58c6c9691228424df775cd51292727d1

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a8502a6fcec281dd11edf668c9d5f8c9aca526a7ba13b7c9b9ee9c2fb0ff5856
MD5 dad81e1b9a7bb3b060c51e471c77c20c
BLAKE2b-256 6b358d3b2f076bde5a37b7f10755e0651e1251145089b26898449753f0095723

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 74071802d8c62778ce8c1ad8ae9d46c6853d7bf7aa569bfa505354465c1db095
MD5 2e85291dfcc02826411aa3b826e6014a
BLAKE2b-256 bb12a2eab3dbca5fb1b6d1f4e7ad0894ee33f387af7b6d9bcdf8ee27f4012475

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 6819f122b3263d06fa4f548b6852af681d02ccaece31990b827f506370a93557
MD5 3a672b10e18be13d941f5e541b511e4e
BLAKE2b-256 ab30cd6f1b2200172d86701b1ad4e3daac965e6af6a3c2e1ff587626431f1751

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 6f079e239a1c2868c68bfbef3fc18f44e1354d3e13d270653cdbccbfd2c5d7a5
MD5 01c37b98de9cdac2677fb7a44b66708c
BLAKE2b-256 a2710043e77b8ab23a9f0f04ff8b8327f7e67335134c47cc6ca4cd0d965b71ea

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 83c69d4a30c88a22e376d079f20010a777315b366580f0ea43f369296395a4e9
MD5 adc00a25343992801f0060f508e682d8
BLAKE2b-256 85c3e3674115d2da6cacf4a1c0c9c9c554449111d6c27607e9d304b97d40cc39

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c6fbbd6bdf2c8344c610b0983c060590e5f3f3e83b797a15f3c9fb2c93122e0f
MD5 c8165b347f63308c05a197349d6e72e5
BLAKE2b-256 73da6418d72a538ed26b2daf7195f4c6b6c9f93f0954b8d2aaa25b6f23067cc8

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 06cbc5b33b36383272be3d2845c509476e251ce1b8cd16e7853210d326d9460f
MD5 040025562d76be4de747cd17b0560bbb
BLAKE2b-256 4f3369c655a6559216b6d0505e905ffd707cc1eca59559f8a82a429085132269

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a82585fff879122994761eb91ecf77a4fa7106f0c22d33f3dc875ecb5346a370
MD5 dda0d09e5168b400051c146fa6d7f4fd
BLAKE2b-256 19d48eb5c99e45bcce2289d04c12b749a15ad9201c4cb343b4c8a166496627ec

See more details on using hashes here.

File details

Details for the file granian-1.3.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 802c06e02599f1973bf5ddf5700101874867486cb714b54537555479586ceeb6
MD5 adc042df1bdc04426dcfb3231cc7dbfc
BLAKE2b-256 1fddf65f4eec477c7a6b2fe9ba6e10bc91ffc52319aaa434f360a593a227ca9f

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp312-none-win_amd64.whl.

File metadata

  • Download URL: granian-1.3.2-cp312-none-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.14

File hashes

Hashes for granian-1.3.2-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 f113193e497153dde889928cfb51c513a6587e4aaa83bf9aed2ad490ac08bc18
MD5 5409a683c682f09731e5053f5ca47d2d
BLAKE2b-256 709d284b54d6d4446d46cae9052464c4dc9b9cfa00470b7edf56122b03ef1431

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 82b4e673577348cfc7e4e11eeff1a130e11283594f0da4c896f38eace642ffc4
MD5 257c53cc6f31dae767fec7d35925ea34
BLAKE2b-256 c15e568e7fb7217daf880ad81e5b95f3f6be2332ff7b57067dfaae670040679f

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp312-cp312-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 e4b62f9874a82d139aa864a78fb9a0386560648560fac6da68106738fbeeb3ac
MD5 c0cb151b4a96f1096e14eff1883179a1
BLAKE2b-256 1ad1569b57d8e06da3cf5d992f6285c7bdea86a41c2c699fe43287a8f58b4f05

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d9f0f897858ac6d9fb7cd315420d1b766026879e49203028594ed72870c21d5b
MD5 ba5b9b8628561943aaddb668884362fd
BLAKE2b-256 fbd8010ef2a5cb0bc022210d9f3ef8d97c71cc28f756320c0498d5676f23f682

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2845f7454a0375791c1b2dffb8c67c756f1a36010a38976028a9e1238e6d3e68
MD5 6d4e7a73ef9b0b1aed63d568a1dcb18d
BLAKE2b-256 8b2a0d40615e9598be7bfd277c99ed5712e28b51935f200a91308ebf65ad6f03

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3b744d1a583fe8d1f76ac757806c714620ffa0e7c3683beba0e64b582e659e85
MD5 678db5e18e7dcadd368d79aa04989242
BLAKE2b-256 292922cc29e3d4b00716ed247bc2ab82e44f29c5784e5e1933d9ad77ba6f44e9

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e5cf07f9d8d90598dad829c9bcd0588e354bb88f337c6214cb2026f5839b03f9
MD5 35d978ad652520533c874764b088a7f0
BLAKE2b-256 6c4c9e66a34d1df09a6a03eecf717f42516096373e70e0d39caf68adc248970a

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp311-none-win_amd64.whl.

File metadata

  • Download URL: granian-1.3.2-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.14

File hashes

Hashes for granian-1.3.2-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 4d844e5dfae86dc9c8c62fc7296c175d248c77bfeafca5493ea929e95e324919
MD5 facb6a7c8dde0ac3710a5506c065c583
BLAKE2b-256 b564d892cca7e8554b85137bb2bb257d7bd878ab0b524370b7770e9000fcf3b6

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 58faf3c2f0a20e121ff590bb19ce54cd1241193c0ea45ec979d67742870e2ebf
MD5 9a86451e0728c9bb920dd82fa1677b8f
BLAKE2b-256 1cb40ec43d551ecee684c0dcf2bf582f23c05374c1a030fe614cae97dc00ab19

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp311-cp311-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 de259defaad3f30e2394256b8ae0215bb5fd3af40fb5ef78689ae31281bb8e45
MD5 ce3e65b6d7f78f81b3185e343cc91483
BLAKE2b-256 7c135625743bc5650932254efc7c6fb596caafa6c0c5b4c578ee8337262372d3

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6fdd11fedcee3e6266ce3a5730b986409e61ca3db4d95243ca7fa50bd15edc2f
MD5 93ce490fe7dc5f0509cba1ecf600916b
BLAKE2b-256 9f41d0094ff32c50e3519e143ce79fca4a57d173348e97bc46b573d0d0f8d3f6

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e2c06c4b6f72f4fc4e4980efc52892754864b4487c28e659a9b6fab11f81e8b9
MD5 413efe4db50ac93a32161c7df2e52271
BLAKE2b-256 6a46b3c4b19960cf935561daf68d807098940a286423645a92dcbfe636a5b070

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a0a2883a92ac7fbbe700b5d3a7ea83e33a777891c8ecfd997166e899a9ceea03
MD5 3ca61542b3fa7a17126c77f37487683b
BLAKE2b-256 b111e87e62af5676275c4f01321c9c09fa7de818a712480ea6817517138cce93

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 17086040cab702bd9416a005ee388cb7225765733e1e0571201b45790d7c2218
MD5 dcd4125f98f545b371474105b571113e
BLAKE2b-256 f4077680861cadfc14182dd05deaa3fe878b7f58bd025041f75546133e6fecb1

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp310-none-win_amd64.whl.

File metadata

  • Download URL: granian-1.3.2-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.14

File hashes

Hashes for granian-1.3.2-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 d576aa3f25f00710a98f1b4c82e05d0b33da6e4bc1459b4dc7758afb46c506d1
MD5 c0ef7768c06faab8f1647e3db4f7750f
BLAKE2b-256 8c23274a7c095fbbb88c67433996fd0c6cfbdf4ad616bc9ec761a9b75ada0d45

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2e4efe7b0b37572f5c599b79f958b64f9fe99c2d002ffa987079d3c65b4fb9ff
MD5 ac0a9d26fa4efe8fda28ef660a9ef566
BLAKE2b-256 6501cad3e366d87a81c607d42f6ceb2040f803126441aff656712fe36d136b52

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp310-cp310-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d74f933e874364608991898ca6cd9616a21b6494c7924b03c27ae952cb2afff1
MD5 127485457b312c535f409070b32fc640
BLAKE2b-256 d53be60891d98763949dcce038f9c46b6529970db29e48f0bb093fe83cc8f15f

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bb1ab13e702c1a059cc5527d8ab068ffacb5ee3949bd43de0c6fd2863eb5150c
MD5 53d9b2fa121ad36ff6f292111cffa463
BLAKE2b-256 72ad985d841c1dbbc7e5ec7356a96b20e070f57f178402850f6be904e2d4a2d1

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cf89c1dd917037314e9e635816c8e73b24db8c830d4d01c71d208ebd40cab89e
MD5 6a7784986f0118a297e85cf12b4b8483
BLAKE2b-256 c2f28ccf9fc71d39a64f546b73fba0777d7f8fd482fde95885c6eb7bd91d9f78

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ce7a7fcf5a30679b01e3f8d8b70dea84505746a90d05350b20627731c412f45b
MD5 1f60fecbec606fc406e765b84c31bf8d
BLAKE2b-256 abc04eb3092fbdc46d80917fa2b2a8b0928cbc3c41c3b6ded91088df465aa90c

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 295a8c7953f8986b32c6b012657d4e66b34811473b036ba6264fb77a229d883b
MD5 6febaff9e6ec8605a528fb71602dc7a3
BLAKE2b-256 aa2886b6518627f8caff1b31f37e6b140a4c87bb8b0ea4689affeaea3940e35a

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp39-none-win_amd64.whl.

File metadata

  • Download URL: granian-1.3.2-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.14

File hashes

Hashes for granian-1.3.2-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 0176be9f9b981989fb24a4ff1184010b7be5bbc76b8fe0b3069dfb072c5017b8
MD5 69c1f1393c42bcb875f882250845b70c
BLAKE2b-256 37870ac9a7f31cc784b46edd2ce3bbfd966ae91f1074293dae23f407c5484ee0

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8fbf5931f5ab218ae1fd69bd3654dfc9818825c076d0e577bc336285bdd1a195
MD5 917fc42d72a3aa4c91a65ba203f88e9b
BLAKE2b-256 29fe3e8d6cf9a0e9f2abe192a466c32ca2e2352814b97743ae59cd14fc096fa0

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp39-cp39-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 dd3a5ea9490b19e15a31300092053687d99346751755387d78e2c1b613fef13f
MD5 c4d551589a34bbb471a11cc96b2c598e
BLAKE2b-256 8ddfa7279d234332ae2696f6a9dbc882bbe3b498e12e10a1d67fd204dae1a9ea

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 edc69122432f0cc68eb1f7cb81d3c662d6ab68447110c14b209543bdab769021
MD5 89482500bcbd82f7e84372a7bfdfc94c
BLAKE2b-256 677abf3d182dcfd7bd0b64cd7182027df239e443a7087f4ef1c5b1f66e38b0b5

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5b9355b7e93ad2f104f9be5f506bf867ec5eef0b548298dd2e440e4507fa0d1e
MD5 e78af3bd117d06b8e631c53c5a1ce4ab
BLAKE2b-256 e2eeec9dbf77e7f972afd55d8f18fed045f673ec970744d1fc53d11735fdfe89

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b62b010819f57ac3a693a696163c3c8d2d653a5e76dc41eb9a8a23fdabd166e7
MD5 8d3f84736f09f815c622030a3badd62e
BLAKE2b-256 d303d768ecfd395f2d020e24c30077132cc6a20abd9a3c7fa7579917e1fa568f

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7ff487b65ff1b42ad12d4ab0a163d1acb9f362044d00c4086e8bc11819e2c7f3
MD5 3f172d20192131205aff440ebd7daedd
BLAKE2b-256 c023b699bd56bbdfe50f99ebed3eea9f3aed844d621ab9287e9e29049e56f0ad

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp38-none-win_amd64.whl.

File metadata

  • Download URL: granian-1.3.2-cp38-none-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.14

File hashes

Hashes for granian-1.3.2-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 331b808214a525a31a50c5da904bdc72d2f163f8f0942fb78a9e883b522e45aa
MD5 58718c81218d050e9dff23ca7cbcd6ce
BLAKE2b-256 2d7f79781015a77917cf97edc76811d5a657aa78b2e954dbe2bdb62f9de28190

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 7dce380918b723c35deb524dcb49669d5e5fabf416afd6790c8498bb49db8bc3
MD5 f2d641419e527714faae9e7c0b603e9a
BLAKE2b-256 0a44ceb35353993fcc062b278cf1b29f358186ef550dd97c27507fc028440836

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp38-cp38-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 eacb854009d74dbf951cf3e9cfaeab59ba7bec43ffc9528ebb9fdab8fe2226ad
MD5 18f33e2641ba3c2e1d0546aba5143394
BLAKE2b-256 d4eec36986422fc4c192042e216b2ba9d07ee88bcb8cc3c4352b9305f9917a1d

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e2c09742c2cb7cf1b0a05ff74594f9dbeb548f4d6cbeb435458e534dd87217ce
MD5 f6ace5c76a6ae179e5fd1e5a86e2cfe5
BLAKE2b-256 6b8d84f16eaa5789dd3dde65b15c873193b46f348ed47f1fc096725773b90665

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 35ace0796088390902b585801e40d1fdf0ded5e701c8c07518ca9cdadacc3eba
MD5 df4f5f3ab0ba777139c8e8ad051566d7
BLAKE2b-256 1095c96a13d2e02f341570f70d07635c90e223a5fe3784c6218e95443b1f5b35

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ad2196b07f724c6a00ea785e83cf05aa9252944779678e55ae947bbed1c8c9da
MD5 bde76c32208e9b780e3c71d33bc59415
BLAKE2b-256 7b85c48a6218815723c6514c8e27b43805123eae54ae240b8f57a8c8a43cf7cc

See more details on using hashes here.

File details

Details for the file granian-1.3.2-cp38-cp38-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for granian-1.3.2-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 32bc568c0c623942b70c125a621f3030cb021503bece17962c4a2477a14d9642
MD5 bcd8b689d250fd92546ea5dd7fe78812
BLAKE2b-256 965e7c4e1806de0255ae862991fcb8b73c70a7aa394f7f4fc26dde1bebe42d9d

See more details on using hashes here.

Supported by

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