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

Arguments:
  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|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;
                                  default: (disabled)]
  --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)]
  --reload / --no-reload          Enable auto reload on application's files
                                  changes  [env var: GRANIAN_RELOAD; default:
                                  (disabled)]
  --version                       Shows the version and exit
  --install-completion [bash|zsh|fish|powershell|pwsh]
                                  Install completion for the specified shell.
                                  [env var: GRANIAN_INSTALL_COMPLETION]
  --show-completion [bash|zsh|fish|powershell|pwsh]
                                  Show completion for the specified shell, to
                                  copy it or customize the installation.  [env
                                  var: GRANIAN_SHOW_COMPLETION]
  --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 wether 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.0.2.tar.gz (64.2 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.0.2-pp310-pypy310_pp73-win_amd64.whl (2.6 MB view details)

Uploaded PyPyWindows x86-64

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

Uploaded PyPymusllinux: musl 1.1+ x86-64

granian-1.0.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl (2.9 MB view details)

Uploaded PyPymusllinux: musl 1.1+ ARM64

granian-1.0.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

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

Uploaded PyPymanylinux: glibc 2.17+ ARM64

granian-1.0.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded PyPymacOS 11.0+ ARM64

granian-1.0.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl (2.9 MB view details)

Uploaded PyPymacOS 10.12+ x86-64

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

Uploaded PyPyWindows x86-64

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

Uploaded PyPymusllinux: musl 1.1+ x86-64

granian-1.0.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl (2.9 MB view details)

Uploaded PyPymusllinux: musl 1.1+ ARM64

granian-1.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

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

Uploaded PyPymanylinux: glibc 2.17+ ARM64

granian-1.0.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded PyPymacOS 11.0+ ARM64

granian-1.0.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl (2.9 MB view details)

Uploaded PyPymacOS 10.12+ x86-64

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

Uploaded PyPyWindows x86-64

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

Uploaded PyPymusllinux: musl 1.1+ x86-64

granian-1.0.2-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl (2.9 MB view details)

Uploaded PyPymusllinux: musl 1.1+ ARM64

granian-1.0.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

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

Uploaded PyPymanylinux: glibc 2.17+ ARM64

granian-1.0.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded PyPymacOS 11.0+ ARM64

granian-1.0.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl (2.9 MB view details)

Uploaded PyPymacOS 10.12+ x86-64

granian-1.0.2-cp312-none-win_amd64.whl (3.0 MB view details)

Uploaded CPython 3.12Windows x86-64

granian-1.0.2-cp312-cp312-musllinux_1_1_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

granian-1.0.2-cp312-cp312-musllinux_1_1_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ ARM64

granian-1.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

granian-1.0.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.0.2-cp312-cp312-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

granian-1.0.2-cp312-cp312-macosx_10_12_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

granian-1.0.2-cp311-none-win_amd64.whl (3.0 MB view details)

Uploaded CPython 3.11Windows x86-64

granian-1.0.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.0.2-cp311-cp311-musllinux_1_1_aarch64.whl (2.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

granian-1.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

granian-1.0.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.0.2-cp311-cp311-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

granian-1.0.2-cp311-cp311-macosx_10_12_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

granian-1.0.2-cp310-none-win_amd64.whl (3.0 MB view details)

Uploaded CPython 3.10Windows x86-64

granian-1.0.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.0.2-cp310-cp310-musllinux_1_1_aarch64.whl (2.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

granian-1.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

granian-1.0.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.0.2-cp310-cp310-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

granian-1.0.2-cp310-cp310-macosx_10_12_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

granian-1.0.2-cp39-none-win_amd64.whl (3.0 MB view details)

Uploaded CPython 3.9Windows x86-64

granian-1.0.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.0.2-cp39-cp39-musllinux_1_1_aarch64.whl (2.9 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

granian-1.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

granian-1.0.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.0.2-cp39-cp39-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

granian-1.0.2-cp39-cp39-macosx_10_12_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

granian-1.0.2-cp38-none-win_amd64.whl (3.0 MB view details)

Uploaded CPython 3.8Windows x86-64

granian-1.0.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.0.2-cp38-cp38-musllinux_1_1_aarch64.whl (2.9 MB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

granian-1.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

granian-1.0.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.0.2-cp38-cp38-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

granian-1.0.2-cp38-cp38-macosx_10_12_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.8macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: granian-1.0.2.tar.gz
  • Upload date:
  • Size: 64.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for granian-1.0.2.tar.gz
Algorithm Hash digest
SHA256 681064e1f6e95fc277d5c047f8070e5448671cdda55de6954d6ff384c43079b7
MD5 b60097bc282ea05c09e935d316056e8a
BLAKE2b-256 434830ee49058919d8d3b3f0a8a659aa601f5de5ed481478397b990597f7209e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 7f0ae8df74187395e4f36be34c3206ffa81adcced0e7796ce80060b4303a06cb
MD5 de90fa3f12846e24d0a97bb2365c9499
BLAKE2b-256 4b14779f3349f7b5760a056d65449ae7baf07a536aa8558e31b8f783aa1ed068

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 edbf2d42bfdbce6dc14772f37085a17d09cacafdc6b7c7747ac848a1537364e4
MD5 65a072497e0fbf5a27da8c42a0869d0d
BLAKE2b-256 20ffea1ba57fb2760a6a123ee05f975388232256caa81b4d47188e484fa6a855

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 e87b94d17388c31e1be68ee1d6b1542a6b537ba5feaf203812d783f72742674a
MD5 1fd0ac27ac30ab85daa9a0d231906fcf
BLAKE2b-256 5d466bcc199a926fe8bc9591c2ddc02a617f56b58eb50967a8fb2740a3e1df5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 23c3eca51f361066d3a15187ed4b449d4a794cd3ba581c0df5a4a65b63297cde
MD5 0d246c6b990abcc427e6e0f276956739
BLAKE2b-256 8286682496e65261d16fad296b3b4491410ca678e36942d634dd2de6bb023727

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 77864832b755f1b23da4ebd106ea57e5e08052471269b693214b7de97bf8dd12
MD5 292cc0a0cae1349f0d4678f00529e4cc
BLAKE2b-256 34cf9dc7881d6d4afd377b46ade78ae4c21b40874f09d353609e9687c3cdd98e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 096640e9fb0ea85d1d68d963e965340e604625d7dad188bf46f179ad46ce3a4d
MD5 d1fb3525bcac0741db2c1c6826d42bf4
BLAKE2b-256 74b062a09f6ac38ca57dcbe4e9ffacdaae9db3983dba474f2757242962883e48

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5a916bd747f40bd1a178586b549ae13f69f3d25f8e3126a6edc741edb21c65cf
MD5 0bd079c6e028bd1358178183d8274596
BLAKE2b-256 b32aacffd426608b212b14a99665267a74c72ba0f1537aa093ea4d3cf0d557b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 10fcfb72d95a2fccea3d7cd2607345c90f19d90641b1c7c797b7e09a63728056
MD5 678b46a6ecd9d8ab6a53330b220294b5
BLAKE2b-256 b08ab2f2dc4db5a365e698ba95d36fce881fbd642deb8f70cc9904265ee21856

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a60b8e8a3ad28a22b0c862437d42209ac8943bf8313992bf48a404c3e4324803
MD5 ae58e67bdf848208e69f5008f94a8ec0
BLAKE2b-256 f972d51f0abe8d65898e5c6de4d490797be732eeef1ebb26d30a4e9ae0b0dbb6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 cc9a0ca178b9575534f037938576a595c0c1b84ccda0da439bf2e597625f7386
MD5 3062745ba7d1ffece7f9fd57e1a85baa
BLAKE2b-256 eff752704d9e711d230fc651b7c9e751accf7cd428f4b089deb0b95408d4bcdd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f9cf2494bc78b4550ed99a4a58a3fd3b500cf1f8ad3ba150979e4d3d2c3cd3ab
MD5 8a70f4d65b2cca4973162414db4588f8
BLAKE2b-256 30826af9bc80a298d7b327f293c344db83f626ec1d0226843ad627f0fd404d3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eccd02c604dd25d789e16f69e1f3be3ed95068f9ae5f59990ab2f9453a74e167
MD5 55eb0b35942b8a2e5033ce09eb02ed20
BLAKE2b-256 f7502d0c1977aea76f7987d5db246446da1ae2113798639045fe16cba32175c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8f934bcd94702942de211dcf2bf39c67e3091121f729a45c92b84b53a84ed7bb
MD5 cced401c8e9ac7f24e608d69995ab612
BLAKE2b-256 932efe631ab235f4e2a2a142f59c400bc3d975b246a9240cd21579ed5d201175

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 39e47d5f4c7374911e9fb719560b87ccb88909f3201f6764439ef1c2b652cef3
MD5 67859873fc6cdf3ae5429d8dc91a4f51
BLAKE2b-256 ed09e215cb3162cf677a616a64902caf92510d284db48dbbe07c3740f82691b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 36a6bbc4cb9eac6f5276d38a7c99ecbe097c071799786637f6772d16624ee020
MD5 0deadd8982fef5f28398bcbaf59a6e4c
BLAKE2b-256 2cacbb3b0a9e93e40e31a6928cbfb68633d5fddd36c1da531e1056eaf9b37efd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 017fd10e0691613fc290dfc975bbcc9f5ff4f58c6ada556fafec752803aea852
MD5 259725bcf8aac452cb67267e7a67705d
BLAKE2b-256 7da466f468f194f920ed3c9f45bafcf3d86e10d0de50958f46b7049af8aa9dc8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 e81a5298e12603bd23c1272b5ab984f465104f397a3e22665ae3aee4387e47fe
MD5 b8d4c585e7b37807f7af557a5e60d40c
BLAKE2b-256 987159590ef2bb44789954e275bccd5018c6265d5b8b861e9af5cda712ddbb62

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef7e53c2d13f7be3b0983e377a583b37f7a93af204dd66c01771b7367a7dfcda
MD5 f4dc076526ea3ceba26c64894e5fd5bd
BLAKE2b-256 860e5a64729d9378b10b235e4e90e8137b50431ae5a11e82114536f109fd1a8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d5f8799fa1d2c9c8e25121c5f5c524c7fba4aad972c68ff179307fcdf483390d
MD5 dc7acdc92cf34ca39c523ab426e17078
BLAKE2b-256 2abb34b4821050c2de27194c78c5696c0e0d1c47bd5f69e5b24d86643fc2668b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cee27c0f7494095bb0f9fbf651479a34ae1965eeaf69c704623b297a0c3298ed
MD5 1d6d32f4b660e66f09f9d901d23dcf86
BLAKE2b-256 b31dc800d8fc139c1ef1f442c00dcdf67b4dc084ee2a64584aae10c5bf6ec626

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8587d7afa61b52c161f665d96078e66c2ace98ef4fe5be88c8e0f06d26a4977f
MD5 90b11d4cb278ef75e9a205e99c1b563b
BLAKE2b-256 d3900492052d1d3a077f590b6f3c10007918e36090309aa79d4f9b395446c1b8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: granian-1.0.2-cp312-none-win_amd64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for granian-1.0.2-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 5ac264112e3abb7eaeef893f7ebf6c5d6a442fa5aa1707be72e28c6f1b49636b
MD5 de7a61b15efcfcc5a72245beb00c05b4
BLAKE2b-256 95c0c6de43efed1409b12b11886af81b08c894945a1a67d32dca29730b339f76

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 68f3d7f88ccd9af4d4f0402df2c10461e759390f841664be33da92dbd8fe9c43
MD5 0af8817a2a41294d250068de30fd3e7d
BLAKE2b-256 d3e961794be91df0a44aaeebd86d15640899e54ce1f22c582a6b3b42ccf4a7c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 6849232f9afbaf9a3b138d59a6f6d417e23ffe7b285b1fa6f5330c06650f1f82
MD5 efd7a6f321ed5cf15460516e73e578a5
BLAKE2b-256 4fcdac72e8e0a74cd07c0f0f8d592a0d182b15b8e68cf15ebb51dc88f044bd69

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9082429f3f67e9198d31b1be4e076a93b75a2083679c91a8dd520a059c484b1f
MD5 0167760601982cd86433fcb95969df59
BLAKE2b-256 cd04cc72075a29f0e6cde33f1f6d1b14b59969a9e285ea8b042e64e4b2fa17c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 30973afea1091f66ff4526265bd9fff34d4a9a6e91667610c010428edf89a1aa
MD5 08f14e0d15bb7c4680362bf51b9143ea
BLAKE2b-256 6a8c8aeb925fd0f1325bdc0b9001b15c622815dc1bda1b464a394a77fb1d55af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a4472adb79053d105fccedd8b4491a61b438a9de5c9de5b10ef60390eb431711
MD5 e0b3019ceaaa27f2d209312070437873
BLAKE2b-256 50e328f9732a7dec37003e2dff0cce01d0255db3892dd7fb5505ae0743ee101a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7bd116a7ec5969669ca6c0618a52741f3e7f7ae59fbaaa29efa2b4c4559fafe5
MD5 d5537cf8f029c498ce5bc387521e5d74
BLAKE2b-256 5d56739d3c251180133fe651e661c38b6ec6a6179182e4ed787227a46c6b671d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: granian-1.0.2-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for granian-1.0.2-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 46d42c5eb165f2e95543daabc5ef4351422451eb7f05e266edf21df5b5352815
MD5 9abaa7d092120f9febe2c99876e1ab60
BLAKE2b-256 06390c8fb7afe06a51106e2bdce6a754e1ecb4ad64b980f96abb83c265e3b9df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b28f7dec86192e4b78bbaad4786175f7408e800cd2a77311b7d669d3797a1208
MD5 9dea8cf717adee616de62a5606fda4d1
BLAKE2b-256 a5d40a141914ce9091fb3092bd575ab8351b11157a2d3abb9f52c56d8da498ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 fdb56864d8233020032775fba591694cad960139436f39ac649e5418912dd582
MD5 79a513e1687e5ef186ad57c859176757
BLAKE2b-256 d71edae3babf3091fa154bd31d6e940da3ec3a3fedee8f86bbfce4d0e148db4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 983505a5f017af5f88161475d247d16a56bf3d023ebb3b60613a01c59433bfa1
MD5 150a5ac9eeb960eb817e28a5c8fd3124
BLAKE2b-256 bedb1c91000b0ae2b145285c51c843c6bff942b12c0b583c49520bc9da860927

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cf109b039639bd64e2496ea37fcc8e68b1958016e37e495446ccf835c020bcd9
MD5 8701fbc8922013cd8e411b867d06d33f
BLAKE2b-256 04c846364fca316b45826a6780182a3157669cd198bb4a71e3216ea56fc4755b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 103a5be73591a9d1f7d17bafeccee6abcf0dc625d79ac59c81ad4be747af35c3
MD5 bbd976373f9efa08b5b32ca3bd01d0c3
BLAKE2b-256 ac5cdaf757d3b4c78d68d652a0b50740cc1dd13ad20d9d81515bb3340fd95f20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8d07adddb44ea95854a006cb4f16f137a52bd64e4b9f4042ca7850195289caa5
MD5 73edc6adf5ada6a2e69f4650473633df
BLAKE2b-256 91546f7b50d00edc0d35f7c9b862da53f0decb98bd0b737987e540cbd6c00a29

See more details on using hashes here.

File details

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

File metadata

  • Download URL: granian-1.0.2-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for granian-1.0.2-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 3e7bb6dd592d8266690065b5d539cfda1e6c0c5b0d8dfe8beb1d0d2192f29cd7
MD5 4c11a62f82cc29232a6d9cee905faa94
BLAKE2b-256 c9795f1371886e47d0bd9a8fd19d4e068f66ef62e64d1dd96cc0721cdb9fce0e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1d3c5417351589a9a64e4f904ef1158d4cf296a16708619be8ef36ab936a3032
MD5 707b4d3a6322b9a42a0c6183d3692b08
BLAKE2b-256 e82e7b23f197adc5d33f2cb3631c33cb48e330f98654a9bc2e46570f8f763e7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 dc934d496b6d43d673b5686b8355ad8fffa4f368cc4509f40aa5439c1d4d6879
MD5 f055220a5c93c74deb5aeed4cc5c635c
BLAKE2b-256 b3f2ad2051c1e914003db2b9ab189ee13b2ea719f7f3d30ce1ff117984f835d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e81ec307f0660b57da7f5d1861121b9e8027cd28f610b166c2dba155e0f5f664
MD5 2ed1b03416b8c1670731badef0a76a2d
BLAKE2b-256 d554268da7d033e29c12d2dcbb238808de73677dc6bd69e27c2757bf5efb71ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f94d0d1169f5531de028d15093f57feb1214c6b4334aa89908548f858eb719c8
MD5 956bf511e34a3553bbfb7e88946623bd
BLAKE2b-256 5a60dd54e718155b851932a8e7e07c1ba4ef9b609e28cfa7fcf03fa00fd7a440

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 09c243c89e4c14d5d44c141a5c5781bcb8f288bf39f03ad33411b5df60b7aecf
MD5 df1a456a5f274294a2d16169cbaa2e70
BLAKE2b-256 eb3c61bf88f3d8aee5c54034c2e3c844abc2bdec422e59baa08f524e9b3eced6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d30a4b37ec2160b6d636c42478cba9bfc9e39c13778b3aeb275c12644c37718f
MD5 382dc2ee7806a81938e6a4455a13bc53
BLAKE2b-256 3902f7aa83fbc3a2b28c1ed87cd6614054b72fa5e9d9aaf14a43e23a67ca737c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: granian-1.0.2-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for granian-1.0.2-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 77ce675707ce33f53f1013dc0f9234dd2337f728952b453c7d1fe3fb808d3926
MD5 5e3cb507fc68e612841e3fd3b6b8de05
BLAKE2b-256 2f792d8d5ff4c478cbf195ada2d9d756406b633574f608016ee702dce125c96f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 13299d9daccc8837250160d77e19e0a80724e135f0e74f04c1e42e33c06b52ce
MD5 90c320d711274da3cb13b7d0f3352b3d
BLAKE2b-256 44cd838763a2cd7280b18bde4be34a671480cea7201f4bf6e96e094f791942ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 65d3d718938063edd8bca5a879712422eb908101a1267a9e0a64ef5b6d247810
MD5 e3c5fbb2880a62d235166418155ed6b8
BLAKE2b-256 75d6fad8ef34e10b3da4c248cd1bd9ac5493c276d0ccc14b2db77997a29fd5bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bddf6da2f5d809e2f82433f95f4ea3afb967ffa7b3a3c3215f9d3ba0d86c96bc
MD5 aec558fa09f15a440af0040db31e6808
BLAKE2b-256 54e2e8f7233333d5cc6a7b7e0e85d518d14831ee235b834137a45513c2cbda75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bc46c683e1f0d65927b5ddb6d2839202f977b37a60564734af694dae82c9b1df
MD5 b4ceb9a28faa377f46b4c887e9f39ab0
BLAKE2b-256 b9126ce8cad60c96769a9457d160b8c4ecee2715377dba576b91bf4a3ad83c20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2cd33014292d0d05b4610bd5696c74a533205ac9aae2e72d1a150bda2fc55149
MD5 9621709a8275d66bce42373d2f0f61d9
BLAKE2b-256 ee331dcb98bb5852c48655d4cd4b106fafa9f4b2ebfd71855f2879ab87ab29de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cf2022f86d33103d15c8efae80fd23fe0a0aa19320c63e83254b0b623c256c8c
MD5 1c8f0ad864aaec0a07501bad3757aedc
BLAKE2b-256 a99ac21dbfcd80a7a2105b329dd13ef8b3ad542a292241067e15136d3e75e8e6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: granian-1.0.2-cp38-none-win_amd64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for granian-1.0.2-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 595ccbce87ad77054fffdf8fb5d98880d3c83e9df59a6adf6b6fc808b292aba9
MD5 ceae3c0b2eccca6ffd33d10ccee6aac0
BLAKE2b-256 71841fafdfd89bc6d71c746d348aa5ecbe4c58388e9b91e9d1418605ef8fbd89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4fc2b506b8d4a9bb59a8eb013314b86743ab376fa0ce85216263c6c88b6b5cc2
MD5 fb1111099db3e24d2bf5703cc013e905
BLAKE2b-256 57c45f59cab13fa0e94b7e5e7278f4cb8cb9e04036ba1aa371fd9f8da3593290

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 851e4f5ef540ca71faf3268321a941de01d864817ec611a2790cf77bae450897
MD5 eb75ba05934bf396f47d9943f279d493
BLAKE2b-256 6d6394c237e87a7b902b618d06b9330385ebf9138281ab96f4f8fd5a32090cb2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 560f70788b0743e583be6eb8a195d216610878ea1d9dfc8d0f374a33b11b0d1a
MD5 61591daa6ed4eddcfe0b0e2b51d33c5e
BLAKE2b-256 5a70b60eccaa45f9e525ab72e91896c9d10cc6db860ab5463e855da7a32d949c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4f210a02ae2f0f2ddd16cdcde2712de4e9cf726c975fb53cc52bc482483f3720
MD5 2be51391d1e5f448ee0bee0682ac9421
BLAKE2b-256 ad09a0eda428514dc44e5552c7516467b7f4bb4b2c23a73ed432d0eeb29f664e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d390b7612405c3b9080dc57aa72d2cc9342091a783c0cd9d474ef34eac0d13c8
MD5 7399ef4cca59f3e28da20975ab2bf4b6
BLAKE2b-256 8c3cc2eba9103eaf586f9dab0fa97d73129ec1e5b28e44000c623ce9c1ce37d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.0.2-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 298203b468131053788e6280b4088bd9c54ce33284b4bd0b06a8ce864066bf81
MD5 c5c06276aa413915fc5b61142ba8b28e
BLAKE2b-256 37650a5b0e7b694adabc7c807d5bfd6c126239d090712a52b288091e05043b2f

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