ry = rust + python kitchen sink utils (WIP)
Project description
ry
rust + python kitchen sink library
What and why?
This is a collection of pyo3-wrappers for rust crates I wish existed in python.
It all started with me wanting a fast fnv1a-64
Who?
Me (jesse(krubin)), and possibly you!?
FAQ
(aka: questions that I have been asking myself)
- Q: Why?
- A: I (jesse) needed several hashing functions for python and then kept adding things as I needed them
- Q: Does this have anything to do with the (excellent) package manager
rye
?- A: short answer: no. long answer: no, it does not.
- Q: Why is the repo split into
ry
andryo3
?- A:
ry
is the python package,ryo3
is a rust crate setup to let you "register" functions you may want if you were writing your own pyo3-python bindings library; maybe someday theryo3::libs
module will be split up into separate packages
- A:
Crate bindings
which
fnv
shlex
walkdir
xxhash
zstd
flate2
bzip2
brotli
- TBD:
globset
regex
tokio
(fs + process)tracing
(could be nicer than python's awful logging lib)reqwest
(http client)
API
"""ry api ~ type annotations"""
from os import PathLike
from typing import AnyStr, Iterator, final
__version__: str
__authors__: str
__build_profile__: str
__build_timestamp__: str
# ==============================================================================
# TYPE ALIASES
# ==============================================================================
JsonPrimitive = None | bool | int | float | str
JsonValue = (
JsonPrimitive
| dict[str, JsonPrimitive | JsonValue]
| list[JsonPrimitive | JsonValue]
)
class FsPath:
def __init__(self, path: str | None = None) -> None: ...
def __str__(self) -> str: ...
def __repr__(self) -> str: ...
def __eq__(self, other: object) -> bool: ...
def __ne__(self, other: object) -> bool: ...
FsPathLike = str | FsPath | PathLike[str]
def pwd() -> str: ...
def cd(path: FsPathLike) -> None: ...
def ls(path: FsPathLike | None = None) -> list[FsPath]: ...
# ==============================================================================
# SLEEP
# ==============================================================================
def sleep(seconds: float) -> float: ...
async def sleep_async(seconds: float) -> float: ...
# ==============================================================================
# FILESYSTEM
# ==============================================================================
def read_text(path: FsPathLike) -> str: ...
def read_bytes(path: FsPathLike) -> bytes: ...
# ==============================================================================
# WHICH
# ==============================================================================
def which(cmd: str, path: None | str = None) -> str | None: ...
def which_all(cmd: str, path: None | str = None) -> list[str]: ...
# ==============================================================================
# WALKDIR
# ==============================================================================
class Walkdir:
files: bool
dirs: bool
def __next__(self) -> str: ...
def __iter__(self) -> Iterator[str]: ...
def walkdir(
path: FsPathLike | None = None,
files: bool = True,
dirs: bool = True,
contents_first: bool = False,
min_depth: int = 0,
max_depth: int | None = None,
follow_links: bool = False,
same_file_system: bool = False,
) -> Walkdir: ...
# ==============================================================================
# SHLEX
# ==============================================================================
def shplit(s: str) -> list[str]: ...
# ==============================================================================
# JSON
# ==============================================================================
def parse_json(input: str | bytes) -> JsonValue: ...
def parse_json_str(input: str) -> JsonValue: ...
def parse_json_bytes(input: bytes) -> JsonValue: ...
# ==============================================================================
# FORMATTING
# ==============================================================================
def fmt_nbytes(nbytes: int) -> str: ...
# ==============================================================================
# FNV
# ==============================================================================
class FnvHasher:
def __init__(self, input: bytes | None = None) -> None: ...
def update(self, input: bytes) -> None: ...
def digest(self) -> int: ...
def hexdigest(self) -> str: ...
def copy(self) -> FnvHasher: ...
def __str__(self) -> str: ...
def __repr__(self) -> str: ...
def fnv1a(input: bytes) -> FnvHasher: ...
# ==============================================================================
# DEV
# ==============================================================================
def anystr_noop(s: AnyStr) -> AnyStr: ...
# ==============================================================================
# BROTLI
# ==============================================================================
def brotli_encode(
input: bytes, quality: int = 11, magic_number: bool = False
) -> bytes: ...
def brotli_decode(input: bytes) -> bytes: ...
def brotli(input: bytes, quality: int = 11, magic_number: bool = False) -> bytes:
"""Alias for brotli_encode"""
# ==============================================================================
# BZIP2
# ==============================================================================
def bzip2_encode(input: bytes, quality: int = 9) -> bytes: ...
def bzip2_decode(input: bytes) -> bytes: ...
def bzip2(input: bytes, quality: int = 9) -> bytes:
"""Alias for bzip2_encode"""
# ==============================================================================
# GZIP
# ==============================================================================
def gzip_encode(input: bytes, quality: int = 9) -> bytes: ...
def gzip_decode(input: bytes) -> bytes: ...
def gzip(input: bytes, quality: int = 9) -> bytes:
"""Alias for gzip_encode"""
# ==============================================================================
# ZSTD
# ==============================================================================
def zstd_encode(input: bytes, level: int = 3) -> bytes: ...
def zstd(input: bytes, level: int = 3) -> bytes:
"""Alias for zstd_encode"""
def zstd_decode(input: bytes) -> bytes: ...
# ==============================================================================
# XXHASH
# ==============================================================================
@final
class Xxh32:
def __init__(self, input: bytes = ..., seed: int | None = ...) -> None: ...
def update(self, input: bytes) -> None: ...
def digest(self) -> bytes: ...
def hexdigest(self) -> str: ...
def intdigest(self) -> int: ...
def copy(self) -> Xxh32: ...
def reset(self, seed: int | None = ...) -> None: ...
@property
def name(self) -> str: ...
@property
def seed(self) -> int: ...
@final
class Xxh64:
def __init__(self, input: bytes = ..., seed: int | None = ...) -> None: ...
def update(self, input: bytes) -> None: ...
def digest(self) -> bytes: ...
def hexdigest(self) -> str: ...
def intdigest(self) -> int: ...
def copy(self) -> Xxh32: ...
def reset(self, seed: int | None = ...) -> None: ...
@property
def name(self) -> str: ...
@property
def seed(self) -> int: ...
@final
class Xxh3:
def __init__(
self, input: bytes = ..., seed: int | None = ..., secret: bytes | None = ...
) -> None: ...
def update(self, input: bytes) -> None: ...
def digest(self) -> bytes: ...
def hexdigest(self) -> str: ...
def intdigest(self) -> int: ...
@property
def name(self) -> str: ...
@property
def seed(self) -> int: ...
def digest128(self) -> bytes: ...
def hexdigest128(self) -> str: ...
def intdigest128(self) -> int: ...
def copy(self) -> Xxh3: ...
def reset(self) -> None: ...
def xxh32(input: bytes | None = None, seed: int | None = None) -> Xxh32: ...
def xxh64(input: bytes | None = None, seed: int | None = None) -> Xxh64: ...
def xxh3(
input: bytes | None = None, seed: int | None = None, secret: bytes | None = None
) -> Xxh3: ...
# xxh32
def xxh32_digest(input: bytes, seed: int | None = None) -> bytes: ...
def xxh32_hexdigest(input: bytes, seed: int | None = None) -> str: ...
def xxh32_intdigest(input: bytes, seed: int | None = None) -> int: ...
# xxh64
def xxh64_digest(input: bytes, seed: int | None = None) -> bytes: ...
def xxh64_hexdigest(input: bytes, seed: int | None = None) -> str: ...
def xxh64_intdigest(input: bytes, seed: int | None = None) -> int: ...
# xxh128
def xxh128_digest(input: bytes, seed: int | None = None) -> bytes: ...
def xxh128_hexdigest(input: bytes, seed: int | None = None) -> str: ...
def xxh128_intdigest(input: bytes, seed: int | None = None) -> int: ...
# xxh3
def xxh3_64_digest(input: bytes, seed: int | None = None) -> bytes: ...
def xxh3_64_intdigest(input: bytes, seed: int | None = None) -> int: ...
def xxh3_64_hexdigest(input: bytes, seed: int | None = None) -> str: ...
DEV
just
is used to run tasks.
SEE ALSO
- utiles (web-map tile utils): https://github.com/jessekrubin/utiles
- jsonc2json (jsonc to json converter): https://github.com/jessekrubin/jsonc2json
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
ry-0.0.6.tar.gz
(67.0 kB
view hashes)
Built Distributions
ry-0.0.6-cp312-none-win32.whl
(2.1 MB
view hashes)
ry-0.0.6-cp311-none-win32.whl
(2.1 MB
view hashes)
ry-0.0.6-cp310-none-win32.whl
(2.1 MB
view hashes)
ry-0.0.6-cp39-none-win32.whl
(2.1 MB
view hashes)
Close
Hashes for ry-0.0.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c31ce6a95cfa1263df896801cf539afe8b22f56f6ccecd61f64ea28de4eb841 |
|
MD5 | 9542f8112a18ec7abe956231575e9e1f |
|
BLAKE2b-256 | a6039fe7c67bdbfb290343c2e14f255ce24297b11c0c22ec05ece34936e959a1 |
Close
Hashes for ry-0.0.6-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 467b0b367533c153d08e72e91305e7b16e969525db1697643d9581afdd2c2fac |
|
MD5 | 0405b6d86b7563c0c118c5a18063aa7b |
|
BLAKE2b-256 | 57d0eddfee9c04adc9374959ab53d066381a61c847fa55b5dbdd87fa2483b09d |
Close
Hashes for ry-0.0.6-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4763209a478ddc1c1cdc9fcdc792e19f3c63d000abdf4bd58cdba0d9a92d3640 |
|
MD5 | dd3435943c9680d1aad4dd6302ba6b0c |
|
BLAKE2b-256 | 9675539561fc8f96b49e66284bc842662c085b865bac92601d6ce3efe6f218a4 |
Close
Hashes for ry-0.0.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac1215fdd374c7942701fc817cff5561a112a8ccb89042f8904635f78a9126a5 |
|
MD5 | 3620a31f7c2e30b39c191c8e78a56c9d |
|
BLAKE2b-256 | 35e95f08c1f7f94018a7eb63f804918932d8acb8fb403c9d135a05ee8c0ffc48 |
Close
Hashes for ry-0.0.6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebf4f7ea299357b95880f5cd2166207b1c7fe1a209b0ee68f1caad8ea66a494b |
|
MD5 | 7950f460ecd6032561ecbff35b4635fc |
|
BLAKE2b-256 | 072fde112f03189f8680717b24ee022edae395cac24767e0c49f1985903ab849 |
Close
Hashes for ry-0.0.6-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83bf50da7eab3bf3655ace0df90ed0fd9a9d1902e254fe0e129d0fbc4fed0075 |
|
MD5 | ededf2a3e84e00f37586a38a3c797cf7 |
|
BLAKE2b-256 | 7be61f982adbfb5893b8ad737ac6a7a52fb9ea8c9e76eb153dbda7b1a1f9b9a7 |
Close
Hashes for ry-0.0.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f1b0af651e925bdb9a74cae328c8ba85cec7bec375f31b163992d50eb920641f |
|
MD5 | 1c290d1b5a0c95a9a4bea75168186b20 |
|
BLAKE2b-256 | 783277cc9b7967df6f0667741ca930f7d3a0cf0f0368f5b9a6b3f0e27aa814f4 |
Close
Hashes for ry-0.0.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34666b28244bdbba573cb62d5443666ec1bf6f153f3f5d12cc34c774e8a0a150 |
|
MD5 | 9ac6e665c8e18d16aa02f049c2483693 |
|
BLAKE2b-256 | 47592e18e11dc819828b3e25c17f3441b1be50bb2c6cd44246143fc86474e720 |
Close
Hashes for ry-0.0.6-cp312-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b9f769cc96e7edce232687ae95f981a47081e62d90713b333d83742a1cf70f1 |
|
MD5 | db797747d7464ddb29a3e52c30174913 |
|
BLAKE2b-256 | 980b27f5cfbd2b7068e7bd6d4cd0230431cb364dbdc7ed4a8731460a2ef09920 |
Close
Hashes for ry-0.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db547d7b35454b79b35b518eb28cb2b53c0af239ac60aa7eeaea9da444b851a2 |
|
MD5 | ef175481b441f157fc9bf2c4b9983eb3 |
|
BLAKE2b-256 | bb122bc58b6ba2d401197c0425a533e6cedde00720f30457d8f9b6eed7d43312 |
Close
Hashes for ry-0.0.6-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19de97a691e2cd03db137f16af1e350bf0fa4c8fbf3c7ee391970cb1ce698379 |
|
MD5 | 5a869f4b10b7df0b366cc966aace6802 |
|
BLAKE2b-256 | 1d8f2e323f62fe1dbfb91b16b3bc88f4879ac6f7ff900b22ab378f5de608aa38 |
Close
Hashes for ry-0.0.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b2541828e2d7b02d83b2103cb06b4407466f2574677d2471bae113268fa4bdf |
|
MD5 | d7ff9ef186abf1bf1ede0c004ab98be9 |
|
BLAKE2b-256 | 69a1919fa083713400689a006574e27c05c353b6e80ebb1711a08914e2d349dc |
Close
Hashes for ry-0.0.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1adbf90679c59abb65188a28ff3ae0827989ba61f8ab2d0afaaa2d3c3e961eb8 |
|
MD5 | 6eb217dcf12c5f9bd91648bc2a799864 |
|
BLAKE2b-256 | de8df9c4c8fdceaccb2ae39da35054e315a4185c0e40161e6a88141d8709f90b |
Close
Hashes for ry-0.0.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75a41a03da95ed274296aa82abe19f09bbd94cdae724309048c95a02f42fbbe9 |
|
MD5 | 42ee2b725763eb45ddfd8bcbff0ed501 |
|
BLAKE2b-256 | f01d1381267eca885bb2b0eebf2664ac95792bf47239aff6acb2bcee36b061a3 |
Close
Hashes for ry-0.0.6-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3ed8c1b28846187e098db2dc5f06a03643890fcf343bc26038d7d686f20f126 |
|
MD5 | 3376468cd5d71abbfb983eae27e2ac77 |
|
BLAKE2b-256 | d6ebb7dbacc791d6d517adec38f2d44830de20000fdec53bec7a163d76cb29e1 |
Close
Hashes for ry-0.0.6-cp311-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46628c375231242e7c3dce098ad96428ca37cb96c9159852989dfc3fcdfcd95b |
|
MD5 | d7cf46a8e8738d7e1181778cdd6387c9 |
|
BLAKE2b-256 | 46180fa0565a51841edb360bef17dcd9247e41c7e2133e2887e5d8af8cccc253 |
Close
Hashes for ry-0.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2d9a7b5dcb4c021cb717d3e940224ec301187c2135a1d8a35561d239912bdbf |
|
MD5 | f77ea913a496610933f368ac49a5a45a |
|
BLAKE2b-256 | 4d4be5290efb93371c0d804ad3d37d0950611f4241a49f5a40ec568d0974e316 |
Close
Hashes for ry-0.0.6-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26cceb498d1261daf18d98fb6401c4cabecb9b81448d11e08e35d495bae80a44 |
|
MD5 | 1a880eddc5d5490dbcab7198a3f4a3ac |
|
BLAKE2b-256 | 1994d8e6c622fa6b27f57b265da5c37a7564d60806cec736e83a82d3e42ceabe |
Close
Hashes for ry-0.0.6-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 403f810b82b11e4abd337d1c953d3ee8b9292f8815b2044ada929759d99a9507 |
|
MD5 | 3cd1b8382aed384979f5e14003d1427c |
|
BLAKE2b-256 | fb50bbd79e337aa4a93d92cfdc4b48fc3606fd015d18e452c38a3da1b88b4fd4 |
Close
Hashes for ry-0.0.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab877d313b9101f29ec63f97d6332a5d85e56fe47fabbcb72ad97ec01ec92e35 |
|
MD5 | fae77fa2ff45c5ddee21cc7c2c843397 |
|
BLAKE2b-256 | fa2b0128539b770d30db445eb1f0b40b7a41ce5e4908032fb9e515130cfe1a6b |
Close
Hashes for ry-0.0.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b10869c2dd7af374b21c2b7a13a728cde051a461aae9fbd08cfc5464bab0731d |
|
MD5 | 05c7f2a0504de3445bc1ed38d3bb63b6 |
|
BLAKE2b-256 | d9822419065918aed8f17a477e33494ddf4d5408d35882c3286e45d124aefd03 |
Close
Hashes for ry-0.0.6-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d627202b372481cfa16c2d10636c518942482083b96b676cd8b0877af4afb86 |
|
MD5 | a930d9da6d38c5cad645b5828e3b5d1e |
|
BLAKE2b-256 | 28e28f2d545fb83cf98896c4c463463b58dcdda14cfb7db858412614c51a4c82 |
Close
Hashes for ry-0.0.6-cp310-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | afb8c49327cd8c9da6d5af668d54c022ea8e340ac8dfa1174bfda826bcca0f0c |
|
MD5 | 494c6c50250da86150256dba377cb9e9 |
|
BLAKE2b-256 | 721419882ea5ae144b1bac5b747fb83acaee29c4084804a5a2a8a0a04f702e7a |
Close
Hashes for ry-0.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91f7e991025b2b0fe6eca843163c64a64e76b152a7c8a2a34ee8adf4998525a1 |
|
MD5 | 8c4f6a20457c24f56e6b43fff580f0cf |
|
BLAKE2b-256 | 1e7bf1142567db534c5b91db634083bfb67542d7940ff42d7b71db354c9d8da0 |
Close
Hashes for ry-0.0.6-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84623b0d92baf66c4c8aa4557687d4900a7a1c1d0c9d7cade880e1dd00834b9e |
|
MD5 | ebca83ecffb849d765204f20180a561f |
|
BLAKE2b-256 | 780d7b3dac519e522f94b24b92ea4bc332172aff04abf6997f402e21ca730fc7 |
Close
Hashes for ry-0.0.6-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6150fa18428c7d9a08b9452fdad8db6ec4411b54a1f8c5445a3288c632e863e |
|
MD5 | fa94179751b2467cbe5cdbb46e26dff4 |
|
BLAKE2b-256 | 35acc46f76fcbad2136c37221a96641f6eaf17be932bc5e1628eb2d82b2f657e |
Close
Hashes for ry-0.0.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce7886a2454f26de2e41afc9b9947c7f9b8b62d44ec4bfc4c840bd9bfe053003 |
|
MD5 | 6f78e99f5d4e624da8ae115fbadafc89 |
|
BLAKE2b-256 | 3c006b1d4e3fe4c89a7c19cb1baccbf15cbc094643d7b11f8c52824a9dcd500a |
Close
Hashes for ry-0.0.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1507f5270059584c25cca61308b62167b6e9988be0c7d7d04210273de64c51f7 |
|
MD5 | 001e8c225012c30326071aba6e7cf142 |
|
BLAKE2b-256 | 121337929eb26c60e0c22b93cf87f1c10cfba4634423c0353422f1d317522f33 |
Close
Hashes for ry-0.0.6-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66dc6b3b7bc0a9be2e142a9d72480c6eb7f3ea0b3296dece1e870ce0295d8a66 |
|
MD5 | 594c742f978d62ebc7af05c7c45ae0d8 |
|
BLAKE2b-256 | dfdbe4c818bdc993795843adb69ed0ac02f46aac422e3a5b1c45bd25495b63cf |
Close
Hashes for ry-0.0.6-cp39-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5227324182eb7e0f7376805dc451ac26dd06607e952ccc966029f02eb510ab6 |
|
MD5 | b11d3c3f2bb59ae3ba8d7ee9345dcb84 |
|
BLAKE2b-256 | 7b4e4541827e3b36b0f37a07577838c42f054f9a6bd98ce4860f362112809fc5 |
Close
Hashes for ry-0.0.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63aa0c72469336c05d36e04b97a7deb04f266d2ef01b723c705e117710c99711 |
|
MD5 | 445d469794b662189394e7f2fcd7c0ca |
|
BLAKE2b-256 | 0dabea5ca53730e80e06287cc7992d4b05fc26ff668f173b942f2d52795c0364 |
Close
Hashes for ry-0.0.6-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8be616730e32bc0b0e65aefdd039e2e295e5187bb456e20f2a25c46dbe29e4ce |
|
MD5 | 05fcd1ea787d94a2f17cabb8bd64ddec |
|
BLAKE2b-256 | dee05b64a55595b102c0ab4817d520ba8b2b7d2b11f9fc3bc3b230f49f8b343c |
Close
Hashes for ry-0.0.6-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba32ad6cc289cc275ce2bb1242fab6c7ff337ce0df2bb9d5b6b914b4295ecef6 |
|
MD5 | b473c417f2b59cce4bb3f4a29e9caa4f |
|
BLAKE2b-256 | f2522274002ba3541c81460122a988cae0c2fd5b828a1553a6c7a12d79f99bb6 |
Close
Hashes for ry-0.0.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3fa5b585ece2aba05910a5056427ec78a7006807d9d7dd53c3fe32d306bb0df8 |
|
MD5 | 1ff7dd0b1b3c937383fa227968dd38b0 |
|
BLAKE2b-256 | c2c686bcc44964f95513ec88814325c855f6fb17d5d0741b4815115dfe7714c6 |
Close
Hashes for ry-0.0.6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10de859a0157b2179b57a963a0a5f0679b86d42f210a3773f4dd0c2d226ad49a |
|
MD5 | 1d93a873b2f010959cd08c11130fb93c |
|
BLAKE2b-256 | ecd2cdcc2da6772ab4832020ffc6fb5dc72198e223fac85c3b353277e45d3a9c |
Close
Hashes for ry-0.0.6-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 743f7ac1ba49c6531fe8a37ba946698ff85f3bc55b7e44effddba11cd70cd292 |
|
MD5 | 4bf71baedf69de1b5e59eb6652250359 |
|
BLAKE2b-256 | 4d8abdfeb2748a8fcff7d3ee3b01f6aeb5126d850eae0dac8df393755af7fcaf |