Graph Magnitude Homology in Rust, with Python bindings
Project description
Overview
gramag
is a library for computing the magnitude homology of finite (directed) graphs in Python and Rust.
The library is capable of computing homology ranks and representatives, over ℤ₂.
For background on graph magnitude homology, see the original paper by Hepworth and Willerton [1].
Computational detail
In an attempt to compute magnitude homology for large graphs, we attempt to parallelise computation wherever possible; this may result in increased memory usage.
In particular, the initial basis for each of the magnitude chain groups is computed via a parallelised breadth-first search.
To limit the number of threads used, simply set the environment variable RAYON_NUM_THREADS
appropriately.
Throughout the codebase we make extensive use of the fact that the magnitude chain complex splits over node pairs, i.e.
$$MC_{\bullet, \bullet} = \bigoplus_{(s, t)\in V\times V} MC_{\bullet, \bullet}^{(s, t)}$$
where $MC_{\bullet, \bullet}^{(s, t)}$ is the sub-complex of $MC_{\bullet, \bullet}$ generated by those paths starting at $s$ and ending at $t$.
All of the Python APIs admit a node_pairs
argument to restrict the set of node pairs $(s, t)$ over which this direct sum is computed.
Unfortunately, the initial path search does not admit such an argument at the moment.
Python
The easiest way to use gramag
is to install the Python bindings.
Pre-compiled packages are available for most systems on PyPi, failing which the source distribution can be installed in the presence of a suitable cargo
toolchain.
On most modern systems, gramag
can be installed through pip
via:
pip install gramag
Usage
Full documentation is available on Read The Docs or can be built from source by calling
just setup_venv
just py_docs_open
A simple example script is provided in simple.py
.
from gramag import MagGraph, format_rank_table
# Create your graph
# A few rules:
# 1. Nodes are labelled by integers
# 2. Edges are provided as a list of tuples of vertices
# 3. Isolated vertices are not supported at the moment
mg = MagGraph([(0, 1), (0, 2), (0, 3), (1, 6), (2, 6), (3, 4), (4, 5), (5, 6)])
# Compute generators of all MC^{(s, t)}_{k, l} for l<=6
mg.populate_paths(l_max=6)
# Reports the ranks of MC^{(s, t)}_{k, l}, summed over (s, t)
rk_gens = mg.rank_generators()
# For each l, in parallel across each (s, t), computes MH^{(s, t)}_{k, l}
# Adds up the rank for each k, l
rk_hom = mg.rank_homology()
# Pretty print
print("Rank of MC:")
print(format_rank_table(rk_gens))
print("Rank of MH:")
print(format_rank_table(rk_hom))
# Compute homology summed over a given list of (s, t)
print("Rank of MH^{(0, 6)}:")
print(format_rank_table(mg.rank_homology(node_pairs=[(0, 6)])))
# Compute homology with representatives, at a given l
homology = mg.l_homology(4, representatives=True)
print("Representatives for MH_{2, 4}:")
print(homology.representatives[2])
which outputs
Rank of MC:
╭─────┬─────────────────────╮
│ k= │ 0 1 2 3 4 5 6 │
├─────┼─────────────────────┤
│ l=0 │ 7 │
│ l=1 │ . 8 │
│ l=2 │ . 4 5 │
│ l=3 │ . 2 4 2 │
│ l=4 │ . . 3 3 1 │
│ l=5 │ . . . . . . │
│ l=6 │ . . . . . . . │
╰─────┴─────────────────────╯
Rank of MH:
╭─────┬─────────────────────╮
│ k= │ 0 1 2 3 4 5 6 │
├─────┼─────────────────────┤
│ l=0 │ 7 │
│ l=1 │ . 8 │
│ l=2 │ . . 1 │
│ l=3 │ . . . . │
│ l=4 │ . . 1 . . │
│ l=5 │ . . . . . . │
│ l=6 │ . . . . . . . │
╰─────┴─────────────────────╯
Rank of MH^{(0, 6)}:
╭─────┬─────────────────────╮
│ k= │ 0 1 2 3 4 5 6 │
├─────┼─────────────────────┤
│ l=0 │ . │
│ l=1 │ . . │
│ l=2 │ . . 1 │
│ l=3 │ . . . . │
│ l=4 │ . . 1 . . │
│ l=5 │ . . . . . . │
│ l=6 │ . . . . . . . │
╰─────┴─────────────────────╯
Representatives for MH_{2, 4}:
[[[0, 5, 6]]
For more detailed usage, please refer to advanced.py
.
Rust
The Rust library has not yet been finalised.
References
[1] Hepworth, Richard, and Simon Willerton. "Categorifying the magnitude of a graph." arXiv preprint arXiv:1505.04125 (2015).
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
Built Distributions
Hashes for gramag-0.4.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca56cac0e72163138c950b2beb274a10f70d9db75114189cacfd7b83799373e2 |
|
MD5 | 7cf4ddbbf386431a78970fd601882ffd |
|
BLAKE2b-256 | 50fa52e5adb07eec6d8ca5a59543ea71726f29ef4123d001aa63b8fe1c822314 |
Hashes for gramag-0.4.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99ba3d002a9ed4dd2f241fea62f6cfd862fe5f9d454fcd7bab08ceb04c227e1b |
|
MD5 | f3b3dd90ab6efac720009e0430dab426 |
|
BLAKE2b-256 | e2c6ebc2a1125b6b2305fb8f041e3a701f8f8baea8b02b3909b87f6248dd292d |
Hashes for gramag-0.4.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a824c8b706016e1be2116f9667b776eb750bcec33daf3ece061f97089e84de5d |
|
MD5 | 25947411baae63f368b735729cacbeed |
|
BLAKE2b-256 | fcfc6f0abbd7533a76b50da4a67473b8e0a99980e9d5a5b48f83d4ad78c202b9 |
Hashes for gramag-0.4.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45b33c0bcd4ec6a75a6a94ac40d453e8c306402224deb3cd69211acfa8bc6f10 |
|
MD5 | 321c652074a12c6d4a9eaaea9ee6b4ec |
|
BLAKE2b-256 | b88188445c79158c908280544bd17053330094f40c8f13187ee4c26706ae1872 |
Hashes for gramag-0.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a5664c964d46d826ae27f85628a621091b976f6885e142e89ab8aa3fbcc4026 |
|
MD5 | dca8a82b841851379916fd35faa52944 |
|
BLAKE2b-256 | ecfe8113493b9739468aabca435f30bc8a43ae3b6ba6f0fba2cd7183a6e4d8e9 |
Hashes for gramag-0.4.0-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26094c3f0f585ba3cea37f9a58e664098d192c5f4fbfe1ec08e1d5e2f732a088 |
|
MD5 | e96bc136ce9cd63f5f1a591bcaac02aa |
|
BLAKE2b-256 | b17497c1d3bb9528b4ea42c8eb0dcfee95d257657f7a5897151e220174feb14c |
Hashes for gramag-0.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08f95bedae2768c041dfb39357745c9754d790099f279df811f2669218420940 |
|
MD5 | 7550cef1443ec23ab3e83c83524e1a4d |
|
BLAKE2b-256 | b8f33026ce8380edbee7c7c687490e3a2c924c1a97270b899550b4eb6a8ca535 |
Hashes for gramag-0.4.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1cd32a4aff1f1bd794eee726282d829e624dca03d0eea3b31fb0df7b57c93dc |
|
MD5 | 5d8c5a6a4b6f80b9438b855bdc9fc003 |
|
BLAKE2b-256 | 832e04f1cbf5fdf4c5ec4ac17ec9988ec656c435e88abd48bd2232469e72ddd5 |
Hashes for gramag-0.4.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e14b5d6d1b94263632fa485f4e2eb3c3adeb33b79ff29992f4e19215867fa59 |
|
MD5 | 700fc650aead1954f38fb4e92a27c205 |
|
BLAKE2b-256 | ceea30a7b53cffbd2586874e39915aef1fa1321756186af0a9ec577023fc7ca0 |
Hashes for gramag-0.4.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2d8d1af81a4a83f089b3e4bdfbe0354a811a24b602d1720b1d1b0839c2d9b0b |
|
MD5 | 716e585d413384139bdc1d32e3bb5961 |
|
BLAKE2b-256 | 6654ed744714a848ae6b156571c99dcbe9555c232d5d932f44c94b23995dd4f7 |
Hashes for gramag-0.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf454d089fda6844f3e97758a47a70864d0141e5448d871dacad36dbc53386eb |
|
MD5 | 133a8bde74e14ee141d48fdee2d8d281 |
|
BLAKE2b-256 | 6420c3410b5ed83dd16d96f473e2c9cdf8d315d2b13e2c6f5800e04b98c1a398 |
Hashes for gramag-0.4.0-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be257a6b28e7bf3694c500178837bd81d8148969b6185ba9d8b76da2894a1afc |
|
MD5 | 276afc38a16de1e17794aeb72fc00083 |
|
BLAKE2b-256 | 0b40ed5a9bea4eb8f7cd5743798ecd3b807701bec98f10a1bcf3967b9e1cb548 |
Hashes for gramag-0.4.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91604402740e900f612635248e35045ec5dc7bf9ab2dccf6a116c01620630f07 |
|
MD5 | 8306fd936b1964993a5b93dcf25c9e9b |
|
BLAKE2b-256 | 8e85a7d73bda58356b2c0af7d94ae09dde064a0bd4fec9ff3e575da2c4ebbdca |
Hashes for gramag-0.4.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6a4370081fbc6059aa49eca1d852bae16c3887830c614a1f562b10eb67bf8ee |
|
MD5 | c3f7b1a0d80595d3cec775027d93fbac |
|
BLAKE2b-256 | bbd26ca776b104972a0824eb873cb24bd93103f1e048125ff562837894f8a814 |
Hashes for gramag-0.4.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e22750e991988a4c2d700aab3b2c54796da99e893fc2d24ab9a5461c10c5539c |
|
MD5 | e0d51f1fcb22aaff48d530e6e823ec19 |
|
BLAKE2b-256 | 1a6c631f797be5ace9d0cbbb1a7d7c6e96b4157fd117b2d200c1aa05bc499d15 |
Hashes for gramag-0.4.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7bcbb4827c5865eab8fbd1aa70938cfaa178c3370871fd4e01b9bdb29379e82 |
|
MD5 | 96b10290069ba069ff8969ef2aac2845 |
|
BLAKE2b-256 | a008fd2dd016b04752f6ca791df864ab411b2d1d647b0c6407f492b76d927dda |
Hashes for gramag-0.4.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a301bcbac5d26aff3f8977a6e7911d66df4b8640c0b5ed0cb5db3b285d67953b |
|
MD5 | 18aa6ffb417cd997e8641482fbc267ce |
|
BLAKE2b-256 | 17c0ed9b10720f035a3ee757998b4c1b6eb985f8e544f15da2da9e1bd4a2dad4 |
Hashes for gramag-0.4.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51e15be41d39de8f45f4c21959c31b8ee2555032f4261a0d313aad23360c322b |
|
MD5 | ea8c5f884babcd80ef037bebd3c02930 |
|
BLAKE2b-256 | 6128fa6ce1d449ad21ef2877422b2ce4988b698b34dd9db6bbe79ef97b3ad747 |
Hashes for gramag-0.4.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a4bfc45c96ca7207af9ef10e064f62ed394879739fd061d5d8b6baab0e793ba |
|
MD5 | c79c858b191c6361fa1e80811cc92a61 |
|
BLAKE2b-256 | 8f1c713c8ca4a6cdaf3eb8e04c6b1428629221067937b9383db7b2405bafe2d9 |
Hashes for gramag-0.4.0-pp37-pypy37_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1bf0b8289ae14def8ab652054421f8fdcee043dfa747642f30cbac74fbc9281 |
|
MD5 | 7dad0d719291d9f5c3801c60e14bcf1c |
|
BLAKE2b-256 | ea21abcc15bd1de5c72121d7a44c9c3db6e8f1fc391842df3ad2d323d358234c |
Hashes for gramag-0.4.0-pp37-pypy37_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 781219b7a5b8eb81d35b5ce9237a0edc674257060dfbe44fd1fcae89391136a1 |
|
MD5 | 504bf82d27fc2a895a629a11ea369fd6 |
|
BLAKE2b-256 | 9f4604e444a11e5634289f4addee9a55c22f81fefa4aaaf2c0f8ef87ee717b6c |
Hashes for gramag-0.4.0-pp37-pypy37_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5148139831dcfd3470c209a06a08374b339373f01008f830dfc52f1e65469229 |
|
MD5 | a7d4f7bb8fe9a80ec6c8cc8e212e8a56 |
|
BLAKE2b-256 | e6f04b461e1e85f612d9d79c22c5fc12dfd04ef64ecc1701636254d2549efa18 |
Hashes for gramag-0.4.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 895a0d990ce55eda2df21d9043884330c76b5c5cd6e86d0308f71c1b843cf4d7 |
|
MD5 | 8e718889339bc23aa4c6b61b79c31fdb |
|
BLAKE2b-256 | 45f486eb54057c0fd3333cbd28c7e98f3b4dff612da89c4f6d891d40024179fb |
Hashes for gramag-0.4.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a369b99612bdb9108102e1c8feabaa1c710789c61e8ee7eaf061f87b5f8165f9 |
|
MD5 | 146dd8a0b998513e95d4e647169e0172 |
|
BLAKE2b-256 | bb43b6f1454c91041af261676e3c5d89a5c3cb445f781303da67042a5ffd3714 |
Hashes for gramag-0.4.0-cp312-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d061e0476cde536f2bdc89b9c7eab36d764143687a686e882ef9cdb8fa91a08d |
|
MD5 | 4e64227bbe58ab546b9ce3f5f87aa65c |
|
BLAKE2b-256 | 892a0bc296a060a5edf04d66fa99d4c9d772ac70cd423cb976e64acf485f4677 |
Hashes for gramag-0.4.0-cp312-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a27fd7935d7996f1082efc46cc458344f62770239b85e4e21b3ae9bca1fdce5 |
|
MD5 | 37cd63abdc76cfad77053cdab7437834 |
|
BLAKE2b-256 | c5521bf869f52209e7cfea405a35aafc244d0ca2e8a4817af1fb3f13dea08f44 |
Hashes for gramag-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bc559d0279d609ff3f943c1e37ed9b941b7679ed2d555405dee45c3b6bcea6e |
|
MD5 | 4fbe5fb89f30afb13b2922d8b630b6b0 |
|
BLAKE2b-256 | 12be9de9fefde6cf03601595db19ea9a8fdb8c23582b5de65453c8ffef865878 |
Hashes for gramag-0.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b379b5b1d73b6ef3b4e11b1b816a0f5917214e8b5c6ef85dfd7b706f5e397ff1 |
|
MD5 | e99db49d6548b42ab5df8a29950a9da0 |
|
BLAKE2b-256 | c771262973b9eab36c13f4a51d18a7e7bf097b972566157cc3f9a35e66c9bae0 |
Hashes for gramag-0.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a3cdc7c6acd628880eae6bf17f1f52c23a8737d2484b76ec308d121719d997c |
|
MD5 | dd67e2f00295135dc8433ee937ac4e37 |
|
BLAKE2b-256 | 6014e36583a5d6a4670d214caef6d94e50d8cbe72fac26345d8ce9d02734aa81 |
Hashes for gramag-0.4.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a7b113b441193d37884a3bafcbf51c483fb105d41d8b4b5ed5ad27b97cb69e7 |
|
MD5 | b10d736a7d26bc6ae39b772fd80aa68e |
|
BLAKE2b-256 | d25f8baba8143479edae4da52f89154452a347e43874a4c521d2c7d4e02a137d |
Hashes for gramag-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39c2ec4e53cfe2c95340e4586dd6f3f841b0ff93ea9ebd38869a0cd47ba82ad4 |
|
MD5 | 16d90bbaf82754095887b68d249f4ba7 |
|
BLAKE2b-256 | 6fb315842e051be510b82b78d6c51d9e5ed4ffb694ac49bf99bfae10c8e345c4 |
Hashes for gramag-0.4.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d63921fd02587d561819bf1f26311241923276f91e1f02897f7df791c78a95f1 |
|
MD5 | a00ffe6e9897dcac4a0cde78658ebd7e |
|
BLAKE2b-256 | 1640acf84c77bdca3ee62e3f184cbbde9a68e1737213e4d81537926529f6a5e2 |
Hashes for gramag-0.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bc4517d90c28b64cea8a45dcd8ddb44b69a6ecf40fffc5355d7f0c2df4d9e89 |
|
MD5 | e338d3f6589ec3bc99597f2c81ed98a7 |
|
BLAKE2b-256 | 51a23cd16f41be5df8fba366f3958694dc55e2abe36081182c4fbd6393763fe0 |
Hashes for gramag-0.4.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb8ccb3aed0060d85683bb583c110ded08858c09a5f74e601076c3f5019303c9 |
|
MD5 | 29d10b4fe02abeb496234dbb6f02843d |
|
BLAKE2b-256 | b530217986df9e508452628055cb7e7b3a0d42c7bbaa7df2336e585ae3d36d8d |
Hashes for gramag-0.4.0-cp311-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b315b9eec201938182b32484875f91ef0f40d7342bc4af1a62f50f24d29bebf |
|
MD5 | 4f6c8c18841cd896e531cbadbf56d574 |
|
BLAKE2b-256 | 5a74ad8377cc830ad09c5f923976f66da789fa927d670d221f3d8e2e89cc8191 |
Hashes for gramag-0.4.0-cp311-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6444fa904e68e39a2dacd6242ad3ca9c34468404a766dc8e431f0b524aff937f |
|
MD5 | 9fe9e26ef2f0198af5178ba068363348 |
|
BLAKE2b-256 | 840840c7994f21b79592cfb633afd98bac74091b9815ba0b903224ec1d5496dd |
Hashes for gramag-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 467c639b1d87f0e1a3b1c79db5b24716c65845619cf69517ba372c9f2df55df6 |
|
MD5 | 937e0d514f11a44d19b2b815e710c6a2 |
|
BLAKE2b-256 | 4be33a6ec9321744e18199d2dc4d85c85686193a55241ee12d3963e8fcdd24c8 |
Hashes for gramag-0.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93520f386cb1ed89062507549369969eb7685737c417c6b9f1c78f35b73e6d82 |
|
MD5 | a569644dc866ca7f6de04ecdbbc5a0ce |
|
BLAKE2b-256 | 12c755e77d1435fba7d28c28f6f248340b313c35859ce46e831f6ee1ea664e19 |
Hashes for gramag-0.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76671c5cbf581831a239477d6da5bf0dc0986755c7b2b89263c5849fe629cbe1 |
|
MD5 | e0785ae7b03510821195f31e7b6b205d |
|
BLAKE2b-256 | 9ea0d2988f3313579e6d1d80d047f2337214a67f4f770d15f6b9414465f62c4f |
Hashes for gramag-0.4.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4131d79e8ace1102d04bfc946864b164dd2916562bb52fac13c0708ba11527b9 |
|
MD5 | ba47a6eafbafdcadf0e3a816b6d85ee5 |
|
BLAKE2b-256 | f7084fb4401310bad58bc9b506537092761d4c2e2ea09c1b4ba11cc73f80317b |
Hashes for gramag-0.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b63634003daf1b44196260b34984aa5328a899397f5fdf2bb36d4e079f691c40 |
|
MD5 | b4d8dc6e2de885abf3d8fd6ac9bbd58f |
|
BLAKE2b-256 | 2048b19addf933d5271a5ded7a64c2f1891b5490286766056c97839834a13313 |
Hashes for gramag-0.4.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e11186e189622d8022aff89696649c870bfc23a5fa2aa40583951296788fad2 |
|
MD5 | 7af35c0a3758e84fa57b791288b94fac |
|
BLAKE2b-256 | 833f3c3637877c78fb7856c20c3e8a2b03743efcbe0f0188feabdb744ce559d4 |
Hashes for gramag-0.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9091002930791f114166a0ec20c51e80a9e86345c63be8a86a6196684c2cd60 |
|
MD5 | b4eb19f6c22757e35ce05da6391bdaf7 |
|
BLAKE2b-256 | ffcbfcda7b6ac99e98799a6bff86cb1550742266ef0cc6853f9879c8f079e7f1 |
Hashes for gramag-0.4.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 036f7da1011d1735073b466131152037f966e0085e5ce1a9177497819ab07b1b |
|
MD5 | cf29a2197381ae75efaa978c36259797 |
|
BLAKE2b-256 | 18d11f41187a8b09b7b3b35ce5a6523ac0704b43a611037ce8992d0694744142 |
Hashes for gramag-0.4.0-cp310-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a67a39e4a1babd0ac97c12321870b16e36d0d053e49f8d715f1702dbe50a40e1 |
|
MD5 | b6099ec3194d1eb9f2a724fa641e2327 |
|
BLAKE2b-256 | 679c1d6f4714fe4a577c612b94a258a76a681974d4c7a3fef9fbbe95be739583 |
Hashes for gramag-0.4.0-cp310-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9aa9851175094c82e4c86dc7867e237ebcf241ffc6ac1c6da29aeb8d864f4114 |
|
MD5 | 8ab055351944278ede9ad6cebed4b44b |
|
BLAKE2b-256 | b68d55768ace3449f7a79c073999b4c89ab16c1ed92ca3c324d625f28c508d38 |
Hashes for gramag-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 674fda9724a8ee65e654c09f9d6630acbc77beb66c4fd0e2d6b1fc72a01ed04b |
|
MD5 | ad09ef42015c2b626fc64c9febbe07f9 |
|
BLAKE2b-256 | 6c5d37bfb09833773f0432445ab9730c0e859cbd4b393fa54bcc2ce456a5bbbb |
Hashes for gramag-0.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 033646cc1e2adb82ceb1203b81d882aab0b8f4f1da8b23b8f4d498b553ff2e6e |
|
MD5 | 1420045ccc19fb9b94c32a38c9d58187 |
|
BLAKE2b-256 | 3492ef209e835ca37ddfa963786adf49ab6aafc21b3dbf353e25c3ddf380b52d |
Hashes for gramag-0.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e19210f9533c16b6cec1bf8c20c6d28501dc7d21da2654ab148e5307665f8eb |
|
MD5 | f42e06009e20c1fac9914594317ec392 |
|
BLAKE2b-256 | 4da9547b186bf2b480205ee63a26725461f8e908f86c1b21b4c7bbad35902667 |
Hashes for gramag-0.4.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 649d8b6a4af7eda75eed29037337982c673f84b2b39402f6beef3ac1b9694408 |
|
MD5 | e9e7673b18de959c4bb76f4ebdbe0945 |
|
BLAKE2b-256 | e0010809d73fadbd59f802ee002af519f72e0405bca2cd081cb57a0adb0ad603 |
Hashes for gramag-0.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2db08f39d06b44295a7ed37fbdaaadcc39a3041dfe74646427273ccd218d7ba |
|
MD5 | 4f6dc597e21c99c2889b032b0bf6c4b3 |
|
BLAKE2b-256 | f5f2fb4bf295d056d36b5d695e47b3ed868718509997b7ee19e86c86b6ec8399 |
Hashes for gramag-0.4.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1641a87e41a8c5e900af5279bc094edd84d2187631ecd13fb3980f4394ee410b |
|
MD5 | f5d414128dc3e6ddc54fe23a3dd5dfce |
|
BLAKE2b-256 | aeff200cc81f2acc30045507f03b53627b3aafceaed64de262ed2d6581f32e5b |
Hashes for gramag-0.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bda722001cd32e0d959eab7f1ec6bd48a30c8b8f30a8c8e619e5d8b7cfc8ac86 |
|
MD5 | 7096f07e534ed6b3bd88e605e221521c |
|
BLAKE2b-256 | 1a31d104c1a58086d711f5ef41ab3d7919504c0bd934408e148cf06a6f81b9f6 |
Hashes for gramag-0.4.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41f507f9891c9f741412aa4cbe64b0e0c9d7a9229b2cb421b0844b8caf9b2ad3 |
|
MD5 | 83964f8c1b9535dcf13b7fa7ced21510 |
|
BLAKE2b-256 | 71035815d14e38e876de9f379574c12bd53d2334888ede7967036daf5e7ee701 |
Hashes for gramag-0.4.0-cp39-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dfd2b66987ec8afc3eae853dd6ba54e80c8c02d4d2c67bb24f837f6cadc3d6b7 |
|
MD5 | ead0ef6891a22b8dd0f8f65b3cdca989 |
|
BLAKE2b-256 | 6f29bfaa454ba0683700c363c55a19452d5a034446aec12324ab70bbdff2cc44 |
Hashes for gramag-0.4.0-cp39-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b59911270ad2b56bb2cd00173d2cdabdcff2546ffd17cdadd4800965f82b7860 |
|
MD5 | 53a23f70af0a4fdd97f561b8f2afc2fa |
|
BLAKE2b-256 | 88b9bfd1b5dcf742ffec6ab0d80f104c2a31c346b3a07d9bf1c6b7e76b1bc167 |
Hashes for gramag-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a133aed941229b3230b9ced5ddcf23f960e341963b13d12343d401755844996d |
|
MD5 | b22edbf357cd100d2bac95775a604756 |
|
BLAKE2b-256 | eb313674e38d58b5daaa17cf5a44a908b9d2043105ded1da969b996e140e04b4 |
Hashes for gramag-0.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de2d0837a156779a75a31d962be2a06b5b1f0e609a8b5faadf250bcb3798f015 |
|
MD5 | 5407f4ab8b65b1c7c06795482d6af926 |
|
BLAKE2b-256 | 0ce988ea1196132fedebc6655fc5d8132fb57c250ab5aa3ee3704ccf02816b7c |
Hashes for gramag-0.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88f574e8b05bf44afe033e4f85883672a5f6b860e6ad2d8732956290c7d0af5c |
|
MD5 | c67f836f233f2f8547e50b55276bd3d6 |
|
BLAKE2b-256 | 28ad04f51edea735bdcc25a9c44f18124579c8f56afb8d11418b699344e0ac66 |
Hashes for gramag-0.4.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ea609837761bfd164b173e21f5361d240495b5d042f9f1ddc1b411ea3b46c9b |
|
MD5 | 14aa709be7299ab8fb6055c4d109ced6 |
|
BLAKE2b-256 | 23f93a2a5ea777ad7f27f8f88421e1a29f63e392668252da9bd5727375b169a7 |
Hashes for gramag-0.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2619435b70120cf73f0556a7c0e61e3c9bc4e2f81a62159a2ad16f5e29d11b29 |
|
MD5 | ab0efbd60ae3e0145bb54eb62d6a7fd1 |
|
BLAKE2b-256 | f364032e53b38a62dbcb18aeacac61985dcd87aa1a8e27586e5ab4f4cb029d3e |
Hashes for gramag-0.4.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4dfe15942c112182d8585ee9fda1dd3a68c23467948e3de28cece1dc161b7de |
|
MD5 | 2a124fd577fa15ad86142d84ddd93a9a |
|
BLAKE2b-256 | 0ddd690739d87a4124c46de1b5f76cb31e4182bfb7bd1fc09041219923925129 |
Hashes for gramag-0.4.0-cp38-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6de5f2fb8b79b67bd6b67c4c454079d61bba4f3807165e9a82377547f7553027 |
|
MD5 | 548aafcd422b093f1370adb7354a0456 |
|
BLAKE2b-256 | 27d6b22b03dfb7b75a1cf1747f975cb63b56c91106b7ebf7869bc187f7d249c7 |
Hashes for gramag-0.4.0-cp38-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36a2170fd8e1bff8be84058dc92c626778f3ddef5d38f2b492e7e754728735c9 |
|
MD5 | 4cf1bffdde5a5fb5bc42a7fc4ca094cf |
|
BLAKE2b-256 | e1997f722ab8c1b1caeca1920322c665f2d05641303d8227b3911282d6b95da8 |
Hashes for gramag-0.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cdb15dbbf55dd833e3e37e3d89143503e2ad853dce87d10247e50b6bc0c061b6 |
|
MD5 | 7b15600d5ea0cdebffea4dd0f3b0809c |
|
BLAKE2b-256 | 2fbfe131ad560daefc416008736d2fe5e128314442249e1a12626a914ac49e80 |
Hashes for gramag-0.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ec7dad9346cf37f9101c61a035d3ef729dc09ad9d0a209c514e7905d1ddada8 |
|
MD5 | 6d3cd209bf360c0cf44320c03f58aadc |
|
BLAKE2b-256 | 21f53a5663afc11dda0bf5441232c2d0ac5317f4766521bd190880b7658b8364 |
Hashes for gramag-0.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca6c36ae845ad3ff3d5ae7a64621f4efbfcacdae63ca6eefeb86b5ca23394472 |
|
MD5 | a292a0be2bf88c567b7e0c3496d7b3e3 |
|
BLAKE2b-256 | 138c0d4055fbaa871f3778bf13c93756898285862219c2ecd98e94d41370695f |
Hashes for gramag-0.4.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51a27081e8a5057f037e022dcaa8985eaece96d4009415f9d0d94b19795b2d88 |
|
MD5 | d080f5ae6caa4ba8ccde4f1cd657d040 |
|
BLAKE2b-256 | f04c5c3731bfd444fd0c960b302610bf6bb4d76b87580f102180ac706b95b0cc |
Hashes for gramag-0.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 515b5d953916b5cb47a5fbe3261d303883647580569dcd83e72bcafe6b9e1d41 |
|
MD5 | f446cdba4d0357b3fb2bf2073cddf7b6 |
|
BLAKE2b-256 | 7b4fce90578479f3ec8a8683ef98daae2cab8d1df8f1cd8cb400f009aef49a69 |
Hashes for gramag-0.4.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b68510f28627f915236aa63150c6c4f231901039e96dd9ceb7026a1926bf8dd4 |
|
MD5 | 7392c43670b684f2dc4dc3e31853c7c2 |
|
BLAKE2b-256 | a2e9c4dd25f9907116d936e7d29f0cc09aec41b2e4e86c493aa450771843ba53 |
Hashes for gramag-0.4.0-cp37-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e3c27b4e07409ac4c057d64077b2faea3f4ac7359ec19faf44a337b478ab12a |
|
MD5 | 43ae14665ec31556e830be21aca1835d |
|
BLAKE2b-256 | 8cc5dd632d2fb7415c3164e0a84836ea7d38c9b068b5bf0271850450005e3f81 |
Hashes for gramag-0.4.0-cp37-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | edab28d0c7277cebaf8018c7affddd2534dbec89b359a745613625d08b406e49 |
|
MD5 | 2043d3f7f1fe2fb53480fc52f35356a7 |
|
BLAKE2b-256 | c267c3623b17a09b88ef4dea8e38bfc5d2a81e9e853966b25a58958f2592dc70 |
Hashes for gramag-0.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 837c16cf2469fe640153fd73f87e0c106f71d128279efe5276c17c93131fb085 |
|
MD5 | c015ebdb7d8884850b237297c9d10cb0 |
|
BLAKE2b-256 | d2889168f6d3612fa4b1c4f603b431916c2c840e68faaf9e05d5b280e57ac526 |
Hashes for gramag-0.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1661df721fc0f9fedd88a00b55b6f2a96e235a5b672ae57779e7bf6c58c06ac8 |
|
MD5 | 73dc7d79b8970a4a5b6c55e7220f89d7 |
|
BLAKE2b-256 | 1c0d404921e2249468344fd7f0c42174d5e6a6cb00c759af3913179bd9606540 |
Hashes for gramag-0.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1243811ff8ce9ce37070f17dc90bbc49143cea1f5832c8624093183217a3e07f |
|
MD5 | 25cb19c5e879ef2aa50577a25d18c71b |
|
BLAKE2b-256 | b48e8f6eb71811afb3519d4bfd16af9a9680da03aee770be4220b5f212c0e767 |
Hashes for gramag-0.4.0-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63c30e16b3ab4596aac20899d1bb83e70ec6b74530ec4ac6a2cc2df727660b27 |
|
MD5 | fe3d27ac1b83f1af00680ffd0f16211e |
|
BLAKE2b-256 | fbddcaf54bd7455463882a903b5e11b487206086742b4ee9b1c5af9a99fdf498 |
Hashes for gramag-0.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 558be33b44b700dcf90d1c4b858ffa2cbb4d90e6119656af34712ab5a8f4e89e |
|
MD5 | 2bfa504e85c79afbb73cf945e47fd8e9 |
|
BLAKE2b-256 | 3fc1ec61f1968882b8f3553ac34645d3eb9b9c9dce49b91cdd8562eac8fd6668 |
Hashes for gramag-0.4.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82817162c9929ff355779d60dcac916f7577fd8122f299b0d72ab83ea988aa62 |
|
MD5 | e0becb5f3a23a817c4f8239a3bda3c01 |
|
BLAKE2b-256 | 4cf93551d16b8fc8e3f0c7ff8c050e77a351af4d0e3d305180fb5fd59965962d |