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 (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                       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 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.1.2.tar.gz (65.4 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.1.2-pp310-pypy310_pp73-win_amd64.whl (2.7 MB view details)

Uploaded PyPyWindows x86-64

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

Uploaded PyPymusllinux: musl 1.1+ x86-64

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

Uploaded PyPymusllinux: musl 1.1+ ARM64

granian-1.1.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.1.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded PyPymacOS 11.0+ ARM64

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

Uploaded PyPymacOS 10.12+ x86-64

granian-1.1.2-pp39-pypy39_pp73-win_amd64.whl (2.7 MB view details)

Uploaded PyPyWindows x86-64

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

Uploaded PyPymusllinux: musl 1.1+ x86-64

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

Uploaded PyPymusllinux: musl 1.1+ ARM64

granian-1.1.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.1.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded PyPymacOS 11.0+ ARM64

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

Uploaded PyPymacOS 10.12+ x86-64

granian-1.1.2-pp38-pypy38_pp73-win_amd64.whl (2.7 MB view details)

Uploaded PyPyWindows x86-64

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

Uploaded PyPymusllinux: musl 1.1+ x86-64

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

Uploaded PyPymusllinux: musl 1.1+ ARM64

granian-1.1.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.1.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded PyPymacOS 11.0+ ARM64

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

Uploaded PyPymacOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

granian-1.1.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.1.2-cp312-cp312-musllinux_1_1_aarch64.whl (2.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ ARM64

granian-1.1.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.1.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.1.2-cp312-cp312-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

granian-1.1.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.1.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.1.2-cp311-cp311-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

granian-1.1.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.1.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.1.2-cp310-cp310-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.12+ x86-64

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

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

granian-1.1.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.1.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.1.2-cp39-cp39-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Uploaded CPython 3.9macOS 10.12+ x86-64

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

Uploaded CPython 3.8Windows x86-64

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

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

granian-1.1.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.1.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.1.2-cp38-cp38-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

granian-1.1.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.1.2.tar.gz.

File metadata

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

File hashes

Hashes for granian-1.1.2.tar.gz
Algorithm Hash digest
SHA256 afaec4fd9c3dc2887548416c034c2df56e21b474cd014652adaa5b05d44bb1f8
MD5 e7a9d465306a497739dbe11cc9a735c9
BLAKE2b-256 3ca6459877420967dfd5a0526e0032813f73b24d5dc68ec0692703c9faea0778

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 8263bce6377bdb4ce78300170d5af3972a4ebd91ba49679fd301e9d5589655a5
MD5 7ab717017b5f0e66701a6ec69f5b18be
BLAKE2b-256 bf0f1feebcabf63aa59b0fefc65bf4478a95364d8aff60f8a46eb9bac5d52348

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 fe60e7699e55ffbc3d3bc77d6b38ada7d8bd78a7a8f4b8c30c51144d651a3897
MD5 684ceeb4416c9f63ac4be533400627ff
BLAKE2b-256 a1655895877e24b778f1f14bc63868b13b454cb3adc3a9ddb4367aaa8dd511cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 ba61c6fd25bea22c43530a682fdd1348d02042f9c00e05db742d7096c1a06ca4
MD5 35b587af07f490b8e5c1879f6c45abca
BLAKE2b-256 24d257af40c0da53fff30612daddd53becee363121c9fa13f0fe96f79402c32b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c6d678fb436d2611c36437a87a0799f7c500b41c3a5e831686efde5c872066bf
MD5 af16d2af5d2282cf1974b5fc497256c1
BLAKE2b-256 e4355dfd8b71aacc2094662bc9ce34a901e029de5cea85450f0025d8dcaa7347

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ff271642bb4f5ab69b5c1e974e25d60581b5a827ebdbf2211871a0501387502d
MD5 e2aca5933f6f22095e788001d8eca347
BLAKE2b-256 1cdf4da1ea3c8043d97029a17ed69c109447cddddd0d4f8112f2e5e4f45bfd5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0e6c5a24b09b9afe5c2de9e56fe7946d81589aeb58a40a2f57a9f2e5ef35c3a6
MD5 f38cb5d00e0b826d6e95633050a0453d
BLAKE2b-256 234d3cef34a2dfcf4139f2e1b5e030cee21367075ca0d7da0bcfe569836a0341

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7b9bb1ae5e782cf9dec6c4f023e80937f7a9ed019bc6859bc134d544570a7718
MD5 af5cbcfde7cd2f981d47af0c4810b598
BLAKE2b-256 b165fd8efed8f0222e9f9eb1d53ddd2ebccf6cbacc2a524e163e8e0fcf7be008

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 93aa698ea4ac8ed1aae507a0a71cfb4102497ac791570776a069f31b3be99de0
MD5 3b8e5cba10874a39b6d248430d262f02
BLAKE2b-256 8e0ff1175d2e9207dd6f1eef6158b2170a205fc48eddd25a547a818381238530

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4819bd86933df7d093625682c6399dc34896e400bff2f381b901db6bc58f74df
MD5 9f29030e4b3eb5c1ac741889babad9d3
BLAKE2b-256 9f62d3c124e103fa1b56077ab92acaf9f581cdf2b3e41ab7f0b057f297d8a045

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 4655bddee333dac991f655cf1bb0697a75e0c4556abc7fe9927282d387a91203
MD5 60d3d02423a682c80f7a4e2e99c3645f
BLAKE2b-256 840b4b554a27cc5467af0d80e6ac0bdea5d8d29456568995f21475190cc0957c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bf1dcb44af023a17772feed918135bddcb3e7143365ae9968ea63944d7448fd7
MD5 4314b2625b4d16c3ede7d05500f64332
BLAKE2b-256 3a50ee2a46b8800befec08869830474d6fb6102a31d24f4899afe7e1dc4b910e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4e09b6e81eda9e16fe5ac12aa873f7175bff7f6a3b535a08da7198b5f2d82931
MD5 15f86d10f0dc7aee602bc47ba2b15313
BLAKE2b-256 9282262fd234bc99df86f0bbd04345a5a274159f9c91d9bf7c5a4eb20e432ea9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 64c54c2c23daa89d380bf979ea94149c0275ade9dedbaec9e5b250651bc1a562
MD5 a72a51927c341078ec6cf2046ae03dd7
BLAKE2b-256 17bdf0b06b71de03eaf586d1deae02cc026e0b2e04126331efae420d69568027

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 03710af6dd7962b59366f09d9e86eb113a9c1181f798827bb6672a6fc3ee6840
MD5 a948718099fdc35551a6703682a85901
BLAKE2b-256 7075b8040f914b6c04e122a477dae2211a259fbc83f93d46920837eff1743168

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 6e95919dc460396920eb980ff266b82699ce84f212b160bbf79d08c4bfb0e09c
MD5 c79ff18d59acb94a852fe23b1634c024
BLAKE2b-256 8aa7362d391c50d28904a7fc3dbc7073a045a80b6242fd74f9242852b9c81e92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 6f34389e63ae104313a016ff6d7b5dcb52234035d56c21720c0797c776438c7c
MD5 8ccdf6e1d5b83bf7560edbb5e76f5a0b
BLAKE2b-256 e401980610c96b9b1de9e77846cc29aa8c105d649ac1af2c38cee0007783b2e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 6dd00936021036e08de62cde9426f2f5ecf737030429d4af0909e540fab40d62
MD5 0a69ff07b17eb6b7a772d893d2435e5f
BLAKE2b-256 6ac466721a457c3a63736fedfffe6e3ec52e3c437eb28f27e9f1f4da889a3174

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3b19ad90c1f28cab45075cfebef021d195fbd0355b32094f928143654a1fef5d
MD5 bbfe55256ce2112327ec13442132d52b
BLAKE2b-256 fccf6ef98ed937cf1ec79a54bd0154fcbc2a7370eb0a62af10f2a884d8199148

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a3876f694307a791f1817c7bd3545c87a741b398c44c61ad6863296c0d47e6e2
MD5 bd3dd2013eb72e543c8d222a6ffcbb96
BLAKE2b-256 f986acb5878413c8175a6e6512cb80f42997b15601e8f03ad84f4fd8430eff9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e2aa23b3f484363e475727481443172aae9b1fe58190107337c02a0128cc292
MD5 a16ad787a7fd50ed471fe45e7dd5c4fa
BLAKE2b-256 8857cca9de64153e91317c49965cdc1cfe4052fd04e331d25e48e580985e15bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f5fc9416bd486041fc69fb146b69b2b54203baa50d182561dc5e82ac674c7dba
MD5 bf69a43a0eccf4d93001b7263dab197a
BLAKE2b-256 1b089c85a6cd357691b8188ea2a741a50108049da5c722a84aca29d0bfcb679c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: granian-1.1.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/5.0.0 CPython/3.10.13

File hashes

Hashes for granian-1.1.2-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 b05623b7826568b38ef430133ef0aaa1a0912fc17b7e90d6bb1849c2dfd42688
MD5 2619a5574e3685551d2a75c97a14e789
BLAKE2b-256 72efaa403106b3ad5246d0429011f6379187d922d791d334b0a6ccb03851d2df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1c596db470e1731a4135029988ace41f9f0c7a25d2255948d749c61519bbc92b
MD5 e5978280d6db5e7ca39df29ab630080d
BLAKE2b-256 2cc5e64bc1e2f7bd1000f59c7d0de58518cb5928800884920d767ca526bf9d78

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d5300df65eea048491fda790c6fc0fc9ef78fed56ff2cc96d9704e43fcbaf814
MD5 700379b2f70222b33342b9fd39735141
BLAKE2b-256 d70ba8b68483aff3c4f20a5f517661537123b2fbbb9f81222b3370b30d20758f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6aeeeac41cf4a21ce2aa9e1ba7c7eed0487f17db8bcde35db78e0461ade0c346
MD5 3fd6c722dc8bea18237314a1eb9fb1a4
BLAKE2b-256 1848751d8a70ccb6885920f6fe2e0f74750910eb28e7c554086b64975691e3d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 603da5d6fe720a6d0eda3b251ee3beaa73416e68112c32c4e929136d4d2e0c62
MD5 8acc927d0cfd0a15e00fd070654c5be6
BLAKE2b-256 25dff0c1d9b034abfc025974df297ad71748ccb5229e7fd8dfe3a1770bdc135c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0b7bdf5367ef736a0d5f7b3dd497c947ca799ff3cfa330c59afdfe27f9b5963c
MD5 0a541fdbf033d0b14c65fc487dfda3d4
BLAKE2b-256 9665a1c6303c1855d6e0c0adcb6119b080cfd589cd212cd3ee5436a55762e527

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cdb40416cc3e9e368daf69175bb364baa9b074ab35c9921e81e36df4b8af2d29
MD5 775e21fc5fcc4ddd710b64fb56e53a86
BLAKE2b-256 c16febbe7c3489a0b01a3da890b65fbaac366dd28959d445d987f79493cbc323

See more details on using hashes here.

File details

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

File metadata

  • Download URL: granian-1.1.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/5.0.0 CPython/3.10.13

File hashes

Hashes for granian-1.1.2-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 63099ecdccb82498952bcb3f3feaefec1c6074e24790adf8111762dd29eb76bc
MD5 912856427f84b3e30cfd44282cfd60ac
BLAKE2b-256 f71216e3eec05781974fd3664963e4164710e35d7ad388b768f50c1610cadc10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 34123384dd28cccc4bb40867bfde4f8cac739b38c00662cba06c81045bc54107
MD5 ea59b8215dc32db951a25bb91557bcea
BLAKE2b-256 3f7562429c6090e31fc0934230029bef0876d1f40fc750397416bcf5c6f810f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 c0c561d7795a6c5a9c263a742ab9aef7c50578ee50b209f222559edefd9be490
MD5 d516eda738cdffb6b7ac02d792b6cb46
BLAKE2b-256 15cafebd72602301cf01e36dcb21fe0445f524f5d52518eee89b454851e214ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d321edcfc7b74efab6014890f1a34b3882dcf7cd3c513e06e34b44d4b5f10d07
MD5 3e934b3dbcf1c35d32f6252e055b71f7
BLAKE2b-256 345c47b30b04ac09afc06413eb9b4587f0f24ba054f605dd5f509cd80bd96f6a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 89606bfd1b1d0252243ea96b2717de841856b9f9fe59c4af43bbd99abd480b40
MD5 da399d8e11ba5a57b1c53b93fc8912f5
BLAKE2b-256 bc24056b7b6e872171686cb062a187584661b1821febe59b334210ce0d4d64c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a424e0332c6196f76e68defc3b48812f77699d9bb74cc7445a97607f0435ecab
MD5 f9c54a279a2436008efcc38d0985d011
BLAKE2b-256 04181179df2bca43e2ea25bd7c365efb7331d90873f21f8a7da6ee49525437a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b1c0491e6e9047c9907f2412128aa17f90cc46f26f25768197aad3b70888f134
MD5 0b18b6fc085b48927287a4830436db5f
BLAKE2b-256 ed144583e5cd9a14d5864cd02d41603605ee384760e5d33825bf13b3add82e84

See more details on using hashes here.

File details

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

File metadata

  • Download URL: granian-1.1.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/5.0.0 CPython/3.10.13

File hashes

Hashes for granian-1.1.2-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 28978af807b7f2105dd111a36ffb28c3bb2b8d6a190fca9efa751f5e9e51d2bd
MD5 8e7923061b0e754fe80728271ea357ed
BLAKE2b-256 5bed17f9186ce3e38d88fd9b1d85f0ac952d5c65fc9e731c3e799187587c97bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 11c8e50d19f073eccee3f8cae29160960ee914d711d24068ab941d381b40552e
MD5 b06f04e6985bf9129e7c84284f260339
BLAKE2b-256 9d0832977364c2d32a5287e16d188346bdeb3caac6f23981dc1ee9cf266d30e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d1a40bca6717949494f10fef375f39e4a7eabd4c3957b5d96fa6a60e2959c646
MD5 696816109bd1056197d17c481e95249f
BLAKE2b-256 afb2a7921ce3b7459ed7e6a1a68ba5cefd9b697ab2f2f1f2d5f564cbb75d0775

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d76cff60ad42a980283956c3d85ffe5644d60ad019c1d9d18b560e0615da6f91
MD5 96bf9266e4c62e991f6b211e53b2fe73
BLAKE2b-256 e0a47a553abd0a47748bff40d6b6603c81fe63e61bf60de6805a4ed10c74150b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c3004e571d7ac6a4260bfb9ee73a92fe68f95fc4095b42fcbd90550cbbb9e1cc
MD5 745435058a08b1fcd9f74f11285b6675
BLAKE2b-256 5a9589af6cf5b5233ff408fc0d26d21ecca855eed0cfe2e03e6d640acf0cae8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5970dcc175bc2d81bf4c37c9d66d2d7be79bb1466696606edacdc00f94a6be6c
MD5 399745f461237777fc03c9142d2a1a95
BLAKE2b-256 390efdb10b41ff896a868d20076e7a7b15e1927238a7e5defd4ee6e2ebb18ec3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 28b23b16f936a5291a052e4869bc55c97de0a20334be90a533589a6a77501352
MD5 744fd2e617eb66d27d38fac6417fda5f
BLAKE2b-256 360db1a585046e5abcaf4ac9fb122658c529ae10c256aec1a189316e939e39ee

See more details on using hashes here.

File details

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

File metadata

  • Download URL: granian-1.1.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/5.0.0 CPython/3.10.13

File hashes

Hashes for granian-1.1.2-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 8265f6cf9cbdf2b6f37524e6785625089faad912e4f999e3bd549d49fe538c05
MD5 f48a9c5798a42097eda3c029b7a7270b
BLAKE2b-256 d57bcdb896a25ee560c0d9d740c9227b820682fcc3bf30d4616feb44292d4f26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 e21d39acb906456054865b598a6746e21be7b2eb80adcbe91ec13f8130c5ef3c
MD5 3bd717a8baaf5edccb7d97d571a483d2
BLAKE2b-256 196d494bd24e2ec17fcc02ce9e916d8fe1d0e7ab4bfb2a65c9de8aa55e5c3494

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 c0e129e3d453aba2f02538f952cf679de50ac860686ab91e3facfd261c2b5583
MD5 95e02e5b2abe4582c77963b155f38cfc
BLAKE2b-256 fdd5ed7f419cc33ea329ec8f7c8389282f899db0b2421fba636473a243ccc9af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ee79e28cea9d090f11ee78131c2e9d36bee9a879d95509651d46aeb7139bb05e
MD5 ae61e742979be74e4b91841aacd86e52
BLAKE2b-256 0149727d119bc566b1cbb479af0041a4505bcef60c9e7fd0e90981dd51e55f5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 28392b58a9103cdd3af9e0a14579751e83cd67b7daf9e13f123c041d03c7874a
MD5 5c0cefc7034c228ded0b0eb52ff772ca
BLAKE2b-256 48c8c3d858a99a01dea984f7054ee35437b5e5c6112debbabfed89efa98f9198

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 150f53c05e9ed83e3aebda85f55f257a2d390f08e0006960bc196bc58d8d12c0
MD5 b59079245c9738c586a3d91b43181694
BLAKE2b-256 2c9ea04440eade5e16f8b4e5f3d1d4f91084b20d65264e087405e0331d2692b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 972a0031461225e3fdcca139c9877363b70fac2154cf958fa68c896e1be3ad23
MD5 da77699b6144b5164b89fd00b7f74f3f
BLAKE2b-256 999362e5277d8c02319c42f55b52a6f0ec7ea7efef60c688e17c4521cd10fd43

See more details on using hashes here.

File details

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

File metadata

  • Download URL: granian-1.1.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/5.0.0 CPython/3.10.13

File hashes

Hashes for granian-1.1.2-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 fde0c48ce12a2ea962f5a0c3f1d0af5af567ecb08a4e11b39c8983002e81daf2
MD5 c85d0ca1c57ae5177e0aefd88a0fc3ad
BLAKE2b-256 d0dad0e7c93c26ed8420ae71b8b6449d4bdd75368e087e6ea591737ba73894e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 240476efea583d45b7881a29e0615f9fe9719c8ad43f2eaa5b08ab82fb4aff4d
MD5 29787e9901c3c8fc84e479cb97d4a7e5
BLAKE2b-256 db74a0c81774b92cfdf4c357f92566ce411046bd55e77fe4ab0b256371dbc1a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 01612d0334e66970738e83e25badd759108fad07d2c09f110f07956c53327ea2
MD5 b0ef8c23a64c195e387a8a9eefc18c21
BLAKE2b-256 a2ff13890b9df9b881d747a522594c039f72f6930ea802685480f54c66b97dc0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3bd07cf78c5d409844a7c68e669241b11ca1a4480ea7f05e10edc23a9e98d14e
MD5 7346cd8cb0960a64ca4e8154317cb53b
BLAKE2b-256 7e0071b67e1bb41be805fa8d16b6bf0669eb7841ceaeadf33028f7efed396e69

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 22446cacdba469b1397870c7cc2d846fb60e8010b22a3f2f9ab0d654cb16653d
MD5 ba50584a917bd89133e56bad17bca0d4
BLAKE2b-256 4a746ea260625f8a19df841dfa679d2ffa4d9525b6f83ad5ced736ab93c44068

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2e7f34950618f33f65443f75585f50d29bcd563d46f2214eaa255ff40ae88af5
MD5 cc580718b8c6192626fe7e1c8aedc7d7
BLAKE2b-256 43939c2197441b25eb4cf14c0c60645185e368e13bc7fb33fc2d72587a007bbf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for granian-1.1.2-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c799c8b1dd2841ebd89300d90c271d046c3a36a528ce029571dec561a582272c
MD5 fd9a49d522694818cee3318c56f42272
BLAKE2b-256 a5d84bd4164292a14dcb39444e1bc9e466e2d8e40de8d14c425f0df65c0b2ed7

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