Python bindings for Yrs
Project description
pycrdt
CRDTs based on Yrs.
Install
pip install pycrdt
Usage
pycrdt
offers the following shared data types:
Text
: a type similar to astr
.Array
: a type similar to alist
.Map
: a type similar to adict
.
You can initialize them with their Python built-in counterparts:
from pycrdt import Text, Array, Map
text0 = Text("Hello")
array0 = Array([0, "foo"])
map0 = Map({"key0": "value0"})
But they are pretty useless on their own. They are just placeholders waiting to be inserted in a shared document. Only then do they really become useful:
from pycrdt import Doc
doc = Doc()
doc["text0"] = text0
doc["array0"] = array0
doc["map0"] = map0
Now you can operate on them as you would expect, for instance:
text0 += ", World!"
array0.append("bar")
map0["key1"] = "value1"
Note that an Array
and a Map
can hold other shared data types:
map1 = Map({"foo": 1})
array1 = Array([5, 6, 7])
array0.append(map1)
map0["key2"] = array1
Every change to doc
(a modified/added/deleted value) will generate an update in the form of some encoded binary data.
You can listen to these updates and send them on the wire, so that they can be applied to a remote document.
We say that text0
, array0
and map0
are root types of doc
.
When they got inserted into doc
, we gave them a name. For instance, text0
was inserted under "text0"
.
This is how a remote document will retrieve the root types of the document, after applying the received updates:
update = doc.get_update()
# the (binary) update could travel on the wire to a remote machine
remote_doc = Doc()
remote_doc.apply_update(update)
text0 = Text()
array0 = Array()
map0 = Map()
remote_doc["text0"] = text0
remote_doc["array0"] = array0
remote_doc["map0"] = map0
You could say that there is nothing fancy here, it's just about encoding data changes so that they can be applied on another object. But this is where the magic of CRDTs comes into play. Their algorithm ensures that if some changes are done concurrently on different objects representing the same data (for instance on different machines), applying the changes will lead to the same data on all objects. Without such algorithms, this property doesn't hold due to the fact that changes depend on the order in which they are applied, and that they take time to travel on the wire.
The most common example is inserting a different character on a text editor on two machines. Say we start with a blank page on both editors, and the user on machine A inserts "a" at the same time the user on machine B inserts "b". After receiving the other user's update, if no special care is taken, machine A will show "ba" and machine B will show "ab". In other words, their document states will diverge, and thus users won't collaborate on the same document anymore. CRDTs ensure that documents don't diverge, their shared documents will eventually have the same state. It will arbitrary be "ab" or "ba", but it will be the same on both machines.
Project details
Release history Release notifications | RSS feed
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 pycrdt-0.4.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 992a711fc6878f1d01c3b0697b42f2dee00f8cf1c1a9a1578fe0e613c71bb40b |
|
MD5 | 8ad7be80d7b2958d13bbfb99e0178e24 |
|
BLAKE2b-256 | 202bb7f9444df909911d9e97b3d7bfb283f84356a1ee679699c7e86f33fdfd90 |
Hashes for pycrdt-0.4.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78476a30beba4ac4beab1069df797dd33d827de57f78f30be3f39685550bb945 |
|
MD5 | 9c69135ddec980b7175fba73849c9d3c |
|
BLAKE2b-256 | 1947933e963812b74fefd9b345bef53b8478c4d37b66d028f4409b6991ed68df |
Hashes for pycrdt-0.4.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95763e3d765f53b0701a8715af18353f56bf2a9fd7052bb7024ce5025feff507 |
|
MD5 | 78f8d5f68e51b64e6b616e5f0baf5d42 |
|
BLAKE2b-256 | 54a7104cf0eb3a7f2792e8e16eed477fceb341a83abb774aa7a08f99fadf4f8e |
Hashes for pycrdt-0.4.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f194243324fe2401ed8da1eb63e5168635240f9ef012e6dc65b9679e7dd665d5 |
|
MD5 | d0681bc764cbe69b5e7ec08731570fb3 |
|
BLAKE2b-256 | 7e1a8e9f42495002c6ddab32b8708f97941a0d32249caf6ee97b3e8e9baf40e8 |
Hashes for pycrdt-0.4.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c614bf680b08ae550d507a7215b0ffaaa8ba4c467b146b2ee392103aaef3484b |
|
MD5 | 6cdb84e1b9d6ee8ac27e1d2faedb6a6c |
|
BLAKE2b-256 | 6cd29df45d1af766367255aab975eeebbda7237c3c4613fd17ac2ee80a19839d |
Hashes for pycrdt-0.4.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e3e674d1aab12c6c6196acca2ca964857510301e03eaaac6d32fd182801fe53 |
|
MD5 | 6a4a76bc8f3f116db9994be71cf6365a |
|
BLAKE2b-256 | f6bc9bd3e461eed29d055b2254338b81960ebb9478de1f284d1868183862945f |
Hashes for pycrdt-0.4.1-pp39-pypy39_pp73-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 583ae8aaef89f587edcc9147f3ba1a9a7ef1596cf838ec7a68c165223b4464c8 |
|
MD5 | 6c5a56e78663341a1e802587f692fe61 |
|
BLAKE2b-256 | a774f81ed4e2759ce0271429fc211e399b57b2589f0dfbf36c95e364a792ecae |
Hashes for pycrdt-0.4.1-pp39-pypy39_pp73-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ad371fa562012bc9a96d99807c86de6acc4fc18dd1c80098b25b8d91ffad9cb |
|
MD5 | 86ac383bd64a4fd7bbeba37cc36b4cbf |
|
BLAKE2b-256 | db7995cfd162730f8cd1b48acc5d3e2ba8a236086a91c23e930117f0adbc89e6 |
Hashes for pycrdt-0.4.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9458cf810440cdeb6d6fc2e06ece566d3160cab54e6a5f1567aee67e6029411e |
|
MD5 | 0e803e8afa309f2e6cabd805d06c3fa6 |
|
BLAKE2b-256 | 7b5ff269f44360dd87d4e3062f1c50185ef89ce3ec17d7ed076458e3cdbed7ef |
Hashes for pycrdt-0.4.1-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 205a65fe735322d5027d148e9cbe086d8516905644642c32f28538ae723788d6 |
|
MD5 | 76d10c52ed47f7cc332b2acd0d9ad2ea |
|
BLAKE2b-256 | 4a5aa1c6bcfa65a4a4cf6feb5c9676abaaceb73170ecf9c6cdcb30c6b94c5bcb |
Hashes for pycrdt-0.4.1-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 743891c1fe9984b485a92855f9f23a11b2aeab8bc898f622b7ee1ceebed75401 |
|
MD5 | 573a037c4d8fb49b57065f8c88afcc87 |
|
BLAKE2b-256 | e745855a80b758d2463e8656e609b291c34dfd883b656ae9604979fc2ce83c4e |
Hashes for pycrdt-0.4.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b070b1914de5d6653effca907a98dadee2cf8585e0c919adc1db2fcae6b5832 |
|
MD5 | b3ccca3cb445c98bcb4439984983a025 |
|
BLAKE2b-256 | fcaddf4aa57107d2f8c1e3bead55ac90859fde8bc3049067b1d9a5ac22f38851 |
Hashes for pycrdt-0.4.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9fe4664938daf45ff559753a03ba533a014b8c38616e8fb432d152ae535e98d |
|
MD5 | 5c41200f49aa31718c36710e791b9efb |
|
BLAKE2b-256 | 6df28424b06bcd45b4becfdd93bfab8cd1b7e36942a474e285700adf7896232b |
Hashes for pycrdt-0.4.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4cc11ef2a2cd8ce609c0a7b2158155b427a010fd3ecf354fc73136266711e21 |
|
MD5 | 3c467f056198e35e63e5cd3d5170a610 |
|
BLAKE2b-256 | e1b2e14d0a48ae6db25761bf333dc2b7a7507a642977358ab1547334453d23db |
Hashes for pycrdt-0.4.1-pp38-pypy38_pp73-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8da18377a59ee5c2f9598abb9f6228bd62ea5c6fcddcd12c284de751c04995c0 |
|
MD5 | fb2a40026e1cb70e6be0a552a12db5b5 |
|
BLAKE2b-256 | dea2d61d056d382000eb86dd2d75acb84b1b6d00f847728fa8cb48308df86e87 |
Hashes for pycrdt-0.4.1-pp38-pypy38_pp73-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e946e388e2efeef121b3f7449f0e2df7a9ed89ea41dd8f519f2f40b4a4e1421 |
|
MD5 | 7c1f3b87e5b253c0c8eceac0bc30d64b |
|
BLAKE2b-256 | 314223803e6e89f93cad82bb0f7294d4b5ea8714af5ae6b15f385bada11026d6 |
Hashes for pycrdt-0.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8d8e8f2cabe69883b0cda10bbf23fa895232b7921e19b0fd51593ac56039cd3 |
|
MD5 | 172b19776da3cd1df0522fe88c7b142b |
|
BLAKE2b-256 | 9e78e0831330062abc85c7c77a624ff11cca9763c999a6f6d99498dd3ac027e1 |
Hashes for pycrdt-0.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60e978e1cbec94d77496163a0b597dd076561a71813490c61c75c2715544134a |
|
MD5 | 3bb9daf9a78361cf9817f411380d0513 |
|
BLAKE2b-256 | dab8f18835203d6b49e51fa657fb061fceea6f3456ca6771f915f3a446334c0a |
Hashes for pycrdt-0.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05302a7821040d3983560341a70cc544809b4c915633771b9a8ab1e300c46a1c |
|
MD5 | a39e8d868755bc35cdf45911285363bf |
|
BLAKE2b-256 | d2d4abbc375bd3f797bc0ded342c9329aa7bdad019f0a0813d7c579b13f3d11c |
Hashes for pycrdt-0.4.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8f6b9fa19a9e2eb360e5c7a4e35efda2c8795cb74d9b62180cf67af36a9867b |
|
MD5 | 9d9365a97e5e59293ce81b4d8761ff24 |
|
BLAKE2b-256 | b3ced03292766295071bdc0321694611bbf132f6de38b4af07e6009e621e387c |
Hashes for pycrdt-0.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 797cc0d526b00fd51d9c5ad7062f613fb4134a00e9883a6b348f44623b784da8 |
|
MD5 | 40a579f25e846b02a999298d590c9e53 |
|
BLAKE2b-256 | a115afdc1eb42994aff3e6e2c7f512b2d18d9dfdc67d8bf0613b9bf0f017e5e5 |
Hashes for pycrdt-0.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17548d549e347e6c469a5d98c145183d714d7123f6a4afc7b4a59a4b89945747 |
|
MD5 | 490a249c734d89fedc880ed3536a84b9 |
|
BLAKE2b-256 | b3c979047a0fb3c50a5f186a516526cfd9cabbdd163890771d74986fe5946297 |
Hashes for pycrdt-0.4.1-cp312-cp312-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e4686c608032647adf0b5e21636fc013500a232d7afaa82ce13df08f0269980 |
|
MD5 | f222fe164c9e55d6158c47bc11b24048 |
|
BLAKE2b-256 | 7dfebab8ef0e5e431e8b72440209e6a415dd8597f12e092b97cb88956f8291be |
Hashes for pycrdt-0.4.1-cp312-cp312-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41c75dd35549efd6c37ddbf081828bf924e44b6fd478cbe2b3f6a014de39a46e |
|
MD5 | f3dd2623406a787410be4e930c8ec945 |
|
BLAKE2b-256 | 239cf644787c5c3e4351c3e35ebe9ae28be12acb7c5c4fdf64cad5a2edcbe454 |
Hashes for pycrdt-0.4.1-cp311-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 920713a9d44930ccec451db9582490d3ab26681afd77e2cd94389536095bec90 |
|
MD5 | 316ff7f02969945c6813c90e26b88b35 |
|
BLAKE2b-256 | 42bb02506e53f90030e8109fbdab93a8987c2d10d2e28ebbc7b2e65f76c4ecb9 |
Hashes for pycrdt-0.4.1-cp311-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64b3d6ce021b234efb4d1992a2ac041174ecc60c9cdf0dd420b4abbc9fca2780 |
|
MD5 | 05d5303695be9bf66d548015c1b6d76b |
|
BLAKE2b-256 | 8b9af8ec280d26f6de565fab1b2eb10a4ebaf9a130c25874f03fdbb7830867fe |
Hashes for pycrdt-0.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f28f39cc64d6686a1ee32202c37b8a43f2ffe2922759699a7a3a0f7c44d386d |
|
MD5 | 409adf1974e7c96d0c1389780f832c5e |
|
BLAKE2b-256 | e219b3538ff50e6ec2c8975b8f21c43536b79396ad7038ffb2bf8f0a610d2b2c |
Hashes for pycrdt-0.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 122c09a4d9093fda9a0845b5e8f4296ffc7d39e04d9431dfa0739ace8d3a8458 |
|
MD5 | e5ab26c1619ee860945ac243a932f7a3 |
|
BLAKE2b-256 | 322c8c7acfdc3775dd12eaa8b65e76b710f97122f9c33ddec8df156de8a58203 |
Hashes for pycrdt-0.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1bfa965b5d0b6753dfcfd2d80206e7a32f7bf3ac995585bcf764acf4fbcab6c1 |
|
MD5 | d1b083c93a83ce55bbee3ff19862e396 |
|
BLAKE2b-256 | 9939ac46c9a85f0b0a116c593b3fe3ef80f0e5ef44dec2f9327e8ba4e8efff0d |
Hashes for pycrdt-0.4.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 385d8d12e31ec47cd3988d46bfb57b8b92d499743dc0be90c01dd89c264eb77c |
|
MD5 | 0019ca919f4d7eef42e5087c76115af1 |
|
BLAKE2b-256 | 7ae08acc4dfb745356adc68b93f45b9fee445bfe300b9f4643005e1995626ec3 |
Hashes for pycrdt-0.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 885e623e59901e7d7e713fd91bb187d7b6eb6e6aedf811b8f170d93ab4d0a99c |
|
MD5 | 019cd72178ca4e5addd75cef89120647 |
|
BLAKE2b-256 | bac87b9b62ad7ee0212462907940d5c5e10f24676757db2789a8e291548552b9 |
Hashes for pycrdt-0.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fec363ecf4d4168e8bf87fa4ec8a09b5716a728145655212867d716b9b0b80e2 |
|
MD5 | a25d2ea20a1c91f0727a9497c2a46f6a |
|
BLAKE2b-256 | 4afcac62ee7021ce9454897a0915e072f47a50c96b4c9b4237834a427402f408 |
Hashes for pycrdt-0.4.1-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8fd4b3f98630337038055723638a9c439959011f33dc4dfc5d7607a1dcb39c09 |
|
MD5 | ace60dd3263d7f12a211b05206a118b7 |
|
BLAKE2b-256 | 439aed034c62630ef2db87b86abfa20cc9dc02f2503b5a7c0e0f34d7f9c8ee28 |
Hashes for pycrdt-0.4.1-cp311-cp311-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76a41b54af446a4886de55e13f64a70daf8a2b490ef8d88070155802ac4aa1c0 |
|
MD5 | 11f8dd0a6cdf4fe2da2320ac26a268cd |
|
BLAKE2b-256 | 8fb5d635fa8e0a4e9b36fcd0216e9763813fe4ef3875cd44c88afb4caab7818c |
Hashes for pycrdt-0.4.1-cp310-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 494d50d7a2f4a71ea50153fe88f420a66e9fc1b184171afe5c59c24ce43577c3 |
|
MD5 | 89e92e5b19ea95468714d48d15b41ece |
|
BLAKE2b-256 | 9982acda13e3e71823835b5155bacdd81fe4e4ccb7bdf0eb8a0959d01034b6b0 |
Hashes for pycrdt-0.4.1-cp310-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a22e55977eb6586fc79a63b5748280d42cdc58a3e88aa72ec1cc578ded5e3865 |
|
MD5 | 7540510a981182966c158cdf954290ea |
|
BLAKE2b-256 | e1175e1b184f3507c39d415bfdf03a6ae2529347f212a6f7a7dfd458eacbb9fa |
Hashes for pycrdt-0.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25ce80b005323d99157d2b0209f00b4912b22d22512fb3fef3244036eb446c4f |
|
MD5 | 67d5367aa9389f2064387cde82c0e657 |
|
BLAKE2b-256 | 8eee19a39910e841d8f49b97e0f727e359c472d9bf1eadca3a37c10b4987d04f |
Hashes for pycrdt-0.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd111679865d776158aa3c0af422c6501d985b55e1e757710e5b704ac315adfc |
|
MD5 | 37b98e4adb17e55c3265edf15b9fbdbb |
|
BLAKE2b-256 | 295a6ea592d1fbc0bdda4187c1a59981bac73d3a16c19ad185ac728489cf5aea |
Hashes for pycrdt-0.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13f1cb02c91a6f4d201c3558f9fcdaada219a38e10b639368b0f1243a0c6766b |
|
MD5 | a2ebb2e97c376baf16a0d987f9c11a33 |
|
BLAKE2b-256 | 9ba26e11868201fc05ba0a84b1ec0a398b8e795e7dbe0acfc07b0cd27bbc9012 |
Hashes for pycrdt-0.4.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ecab3435537339f2d53e186d174a65c2222abecc1b80e3744adffa421962396b |
|
MD5 | 9119b7c6dfed43f890ac53e1707e41f0 |
|
BLAKE2b-256 | 4f73210167330736debe2c07bf6b07921b0e87827321a16b1e6024eb6798abff |
Hashes for pycrdt-0.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5addef0248f06db1f4ae885ad9c2e922a05b2044ddd3598611c8e5516cfd156 |
|
MD5 | 54ad09407987e55e9b7611fefc708f72 |
|
BLAKE2b-256 | 9275b11093732616d2f31913654df91e515b2a09ede9de6f610f7d9feeeabf48 |
Hashes for pycrdt-0.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4bd69fdf6351dce44f5a5a12a916567be3b6382292a8d15917dfdd6f5aebfcc |
|
MD5 | 99cc084f4610664a99d5ffb6a1960e0c |
|
BLAKE2b-256 | 22d062b9e9036c8577d721188417a4e4b16b8500c1d21f5e08dffb9fbd9ff69a |
Hashes for pycrdt-0.4.1-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f49105459cc7d7280f68a420accf6d4bd9be2803b6d0eabd7e3df15edadda15c |
|
MD5 | 43e020cbf1a109d3779e767edcf35d0e |
|
BLAKE2b-256 | 7bf92e8bd16f355bce82aea66cc12d8ce895ed9eeb7038571ab9efff0b13879f |
Hashes for pycrdt-0.4.1-cp310-cp310-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 670a154a95dc4027ccbe8e732bb37d355ed66a1e0158be7779aa28f0904c1dfd |
|
MD5 | ca4a9a198f5cffc69910fb3f0adfe035 |
|
BLAKE2b-256 | d131335030eafcf8fb499604206c1dbfcfadee08e30b1f1e11bc6da9e7f47bc1 |
Hashes for pycrdt-0.4.1-cp39-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89aae46dcaac3c2791a017d17bb445d813740a95923bf76384a3d1c85537bd1c |
|
MD5 | 5d9b83e561725276071120ad78af351b |
|
BLAKE2b-256 | 72b4fdaddfa5489ce270accdde846fc09f72f755d088a2a29ea48dd3f614760a |
Hashes for pycrdt-0.4.1-cp39-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 853d2a30d702bd72fa0d61bf461494b1d5eb9d944e2ab26febcba39987fbd37d |
|
MD5 | e6abb82f3585071575ff8d59bd3a4e83 |
|
BLAKE2b-256 | 959d048142bd9087a9eca7fb3bc4297aa2ee5a594b19277610e0149bcc4f23dc |
Hashes for pycrdt-0.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43c2eff862869d8029ba552d671e09a10212e9473e285159cd323ec32c7fbf3a |
|
MD5 | 571dcdb143c89d1e8db4562c69b80884 |
|
BLAKE2b-256 | bfcdb3eb119b8886f863baf9ca233ba86352c7cc27d187658448b1f59e8fc4b5 |
Hashes for pycrdt-0.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f1efe32dee0d976c9fcdc53fd4b68d3cb5d33461cf29deda843171d05210f3e |
|
MD5 | 3c5a33595b9153313eea62176588781c |
|
BLAKE2b-256 | f8f026bf34804efc5a595e3c19080dbb5c096d619544ca183e4f9f7a1595450d |
Hashes for pycrdt-0.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae21bc1f7667c280ab97b3c57fb44203a7c73b94b8f09f9aebc9d2836a0686e5 |
|
MD5 | 10759cf4ae7a71ece6c2b3cc24e16734 |
|
BLAKE2b-256 | e0345ac77bc110bfbda4515de3bd4cf242b6a300b43ced0293ebccce72efb0a4 |
Hashes for pycrdt-0.4.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4fe82949afb48b96cadd38f5b5729e81b569b4840b225baad969b19152cf50a |
|
MD5 | ece051eca1b0c6df07b6d1d719d12687 |
|
BLAKE2b-256 | bc35337c2db32c186108f849a19fce3171e506891dd8e086a23957ccfe34156e |
Hashes for pycrdt-0.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30d6fcfe5d3157e24fce7ea1898cdd3551841ecb7d274a8a3f8dc43864ccfa1d |
|
MD5 | 151955dee357b3063ea3f25ed5982de5 |
|
BLAKE2b-256 | acba813e8ce0147eedf372740cebad7a9b6a7a871f9ae5aa10838bf99eb24e51 |
Hashes for pycrdt-0.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 859a0d2ad73c0d8b0f1017f4134e253ad0b3648d2818791911055bf2eddbd15a |
|
MD5 | b9ceb916f83335bec9a69f8f0ca7fbe5 |
|
BLAKE2b-256 | 7824cffbbcb2d76ed05fd407afbce19d18b9c7377d7e32b53f81e4f0bf8fb97a |
Hashes for pycrdt-0.4.1-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1e67bb528c3528be4963883c2913a2642fbb85007be60e83b099fc59fde759e |
|
MD5 | 3a2646f0491fdc8e04e9e1b2ef050eb5 |
|
BLAKE2b-256 | ba85ae603bd55e88bae48688d1a807c382e9d76a9a9225f4e02b356e274500eb |
Hashes for pycrdt-0.4.1-cp39-cp39-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ba4a327af6dad545094241bb30316f7d95e1026e1efa0ca3f2faa4d74877662 |
|
MD5 | 73f58bbd62b1a886d706689419c4c1d4 |
|
BLAKE2b-256 | e2fc2d3556c823be1bf0ce48b9c0adf0c719a2bd666fb2cd596e3e8fe2fcb2ad |
Hashes for pycrdt-0.4.1-cp38-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9f4b12ba4872d89b36cb37d1e8c8b8284a3f1136e2b30ae93028cd35687b17e |
|
MD5 | 78fb79660a4d8f284bcf6b03c8a4571d |
|
BLAKE2b-256 | 9ff3e03e696bd4006c898dd6035f3f5466241db6ea7ecdd3327ef9100721d2c1 |
Hashes for pycrdt-0.4.1-cp38-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 889bf3bf5eabdd830ff1a76e71d9120dd05945855ead0f264c311542f30f69b9 |
|
MD5 | e1a439ed4a92a955888d53b43b1266dc |
|
BLAKE2b-256 | 6d524d3f0aaaad0799979b66f740e5e3b167c86853fe8ba14027f852fbe21e43 |
Hashes for pycrdt-0.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8fef27591eafb104fbffd4dc48bb0fe5d902361b815e0733d23a2fa233865e0b |
|
MD5 | 0bcbc4162a5cb60eb4efabf58e680666 |
|
BLAKE2b-256 | 6297ae6becd82582af3590d18331b7a306912db5d03f61e9d7513bc327e007b0 |
Hashes for pycrdt-0.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64d696e7e6634dd94d66ccedb5530fe316626642a107281cc7762114c20bc508 |
|
MD5 | 935f6040533d52468d4ebbbd042460e4 |
|
BLAKE2b-256 | 4f3816abb9d45be7821fee523e52e327259ca37bd88a7b9aeb711e75a7feec4d |
Hashes for pycrdt-0.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26c6108e0e1384222f78451bd7e6264b262e9e4a81b47415969c420c3e448d4d |
|
MD5 | aa3f273df1267b6e9c8151bff9666689 |
|
BLAKE2b-256 | 4b365e3dfd1e92500c1ef909048f5dfc2b58fe78ca1644b775f04f9258fc0483 |
Hashes for pycrdt-0.4.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f915cc0cfdbce0a7b68da143073d2f8e114c5c1871e78d53af82beaf75f3682a |
|
MD5 | 54742362974f498c0c0f42e54b0cad77 |
|
BLAKE2b-256 | 217cc1a3af96d9005b33a8ae7c3ff7e2440942dc8c893e22338371a3974522f8 |
Hashes for pycrdt-0.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 571eac7743ff8022508241eae643795174c97623b13ebfb4f98405eb89e77321 |
|
MD5 | 40df4c08b5f892c90ae492f52240cb0a |
|
BLAKE2b-256 | 365d9eb4969def951f90d2f8c99eef3262d875a73148d50f47328c3de91ed547 |
Hashes for pycrdt-0.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f177468b8b17e71fbf666ddce49a5c365d7ae93157d2c12e889d4cb4fa40a2a9 |
|
MD5 | f68b7cbede46e04ceb37e02ab3591ebf |
|
BLAKE2b-256 | c7632b258467aff6e1e32c3f073a2cd724f06cdd561101d88681b7ba42c8a0c3 |
Hashes for pycrdt-0.4.1-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 230a8eac07e94ef2542eb6c71e8dfc4d2850da67f382b7ec93e07ff157c49ff4 |
|
MD5 | b52907ed9e81a19def79ef3c7a2efae8 |
|
BLAKE2b-256 | ffbdc9cc941cf046a2130b682c01ad13c8ccc01c9b2d72f4f9f6d73d15766026 |
Hashes for pycrdt-0.4.1-cp38-cp38-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b6bba2b8d491eef86b4a74f49bf0d6595f4d6bf1d455933dce32a0be74883e9 |
|
MD5 | e2400e767e7af3884a5612391ec4e37f |
|
BLAKE2b-256 | a9352eb67de80e659795ce890740eadabb937a140cd6e1fb57e38c35d05f10b5 |
Hashes for pycrdt-0.4.1-cp37-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f3209454add3f560ea5e83a6258751caf123a485c42e8d14d0855c3ca9bb923 |
|
MD5 | 674eb0e831da66b5994d5e440faa497a |
|
BLAKE2b-256 | a73ad330458f2d819c840356c6698158dc7def610cc825484a38b893aeef7814 |
Hashes for pycrdt-0.4.1-cp37-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c2ae26a0294d87782caa53f15dadfff2a7c957135013ca1c18c898027483f57 |
|
MD5 | 4be000314ba97a465128c63df2411682 |
|
BLAKE2b-256 | d0a9e81f8c6a5ed8cfae3a486ad7bed34156260f3ca27eed3b1aa31f3cab9b1e |
Hashes for pycrdt-0.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28fe2655ead4dc84efc5773ea05d93ec103e5646ed05348ff89e8af09bd42a50 |
|
MD5 | 4551e382447be7cbd3790d7c97dc2ec7 |
|
BLAKE2b-256 | 125a740e707821b7f962e6ae4fe5a23070678429c6ab25948766bb2510b09cf2 |
Hashes for pycrdt-0.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 74629800c74aa4a3cdf90b3b576cb2029fce412b1404d92494d19c5a2fe0a49c |
|
MD5 | 8166f1ca11a10f61143cd812d6ef116c |
|
BLAKE2b-256 | 68a824840ef2265a315afb89d8247cc8ae857d55de09f197e48d185adbe7f6d8 |
Hashes for pycrdt-0.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa51bff59c5960400f6c0aca48d83f197f12849a4aa6d945ac8da32e1d2e39dc |
|
MD5 | 64755ba0067f525acd6e39afa0381e73 |
|
BLAKE2b-256 | 164e5cfb4e71ea3f2b8df004584a85e69a77345b38130b5d50d23c6b004be4ea |
Hashes for pycrdt-0.4.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2589e141f90e6033e5fc575f9bf151065edad8f5878fa5171433ccd64a3405ea |
|
MD5 | c6af9afc13ee85ef9553857e6ef1581e |
|
BLAKE2b-256 | f25dbdbc4315660450071db3f53ae6af62f260f0c55598531da64f323c0898c3 |
Hashes for pycrdt-0.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f42b4c9b02c2140de20e5100bfdc55839349fc495b42ac40f6486d3ae376483 |
|
MD5 | 988d0654f6a096ba587303009c60caf4 |
|
BLAKE2b-256 | 088df6b3e730b8fb4fc6d0b9752cc420338aab113f95990bfd0188e92849d1de |
Hashes for pycrdt-0.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc50f0c8de716c12adafa3ec3ca948e4e59f50c5d6f1f73a72efcaf9f9c5a424 |
|
MD5 | 2514825c489e039098935a484e2ed4e8 |
|
BLAKE2b-256 | 4abc02a44d5d0014c00f9797fa524eaf072a9bcb8ec1939aac103a4e00db4a63 |
Hashes for pycrdt-0.4.1-cp37-cp37m-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c97dde93be1d180857fe9fce64d665d1ab1e6cd0c8725173bf066cb350bd7659 |
|
MD5 | 75546d45a3f18ba4757ad30d3931c07f |
|
BLAKE2b-256 | 3f0270380ef3768fe55d61dcbf382e23be7afe0488c67621894b25549440ae58 |