ry = rust + python kitchen sink utils (WIP)
Project description
ry
python bindings for rust crates I wish existed in python
THIS IS A WORK IN PROGRESS
Install
pip install ry
poetry add ry
pdm add ry
rye add ry
Check install: python -m ry
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 python xxhash
and fnv-64
Who?
- jessekrubin jessekrubin@gmail.com
- 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
brotli
bzip2
flate2
fnv
shlex
walkdir
which
xxhash
zstd
- TBD:
subprocess.redo
(subprocesses that are lessy finicky and support tee-ing)globset
(technically done, but not yet inry
-- globsters)regex
tokio
(fs + process)tracing
(could be nicer than python's awful logging lib -- currently a part of ry/ryo3 for my dev purposes)reqwest
(async http client / waiting on pyo3 asyncio to stablize and for me to have more time)
API
"""ry api"""
from collections.abc import Iterator
from os import PathLike
from typing import Any, AnyStr, Literal, final
__version__: str
__authors__: str
__build_profile__: str
__build_timestamp__: str
__pkg_name__: str
__description__: str
# ==============================================================================
# TYPE ALIASES
# ==============================================================================
JsonPrimitive = None | bool | int | float | str
JsonValue = (
JsonPrimitive
| dict[str, JsonPrimitive | JsonValue]
| list[JsonPrimitive | JsonValue]
)
# ==============================================================================
# RY03-CORE
# ==============================================================================
class FsPath:
def __init__(self, path: PathLike[str] | str | None = None) -> None: ...
def __fspath__(self) -> str: ...
def __str__(self) -> str: ...
def __repr__(self) -> str: ...
def __eq__(self, other: object) -> bool: ...
def __ne__(self, other: object) -> bool: ...
def read_text(self) -> str: ...
def read_bytes(self) -> bytes: ...
def absolute(self) -> FsPath: ...
@property
def parent(self) -> FsPath: ...
FsPathLike = str | FsPath | PathLike[str]
def pwd() -> str: ...
def home() -> str: ...
def cd(path: FsPathLike) -> None: ...
def ls(path: FsPathLike | None = None) -> list[FsPath]: ...
def quick_maths() -> Literal[3]:
"""Performs quick-maths
Implements the algorithm for performing "quick-maths" as described by
Big Shaq in his PHD thesis, 2017, in which he states:
> "2 plus 2 is 4, minus one that's 3, quick maths." (Big Shaq et al., 2017)
Reference:
https://youtu.be/3M_5oYU-IsU?t=60
Example:
>>> result = quick_maths()
>>> assert result == 3
NOTE: THIS IS FROM MY TEMPLATE RY03-MODULE
"""
# ==============================================================================
# SLEEP
# ==============================================================================
def sleep(seconds: float) -> float: ...
# ==============================================================================
# FILESYSTEM
# ==============================================================================
def read_text(path: FsPathLike) -> str: ...
def read_bytes(path: FsPathLike) -> bytes: ...
def write_text(path: FsPathLike, data: str) -> None: ...
def write_bytes(path: FsPathLike, data: bytes) -> None: ...
# ==============================================================================
# SUBPROCESS (VERY MUCH WIP)
# ==============================================================================
def run(
*args: str | list[str],
capture_output: bool = True,
input: bytes | None = None,
) -> Any: ...
# ==============================================================================
# DEV
# ==============================================================================
def string_noop(s: str) -> str: ...
def bytes_noop(s: bytes) -> bytes: ...
# ------------------------------------------------------------------------------
# \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
# ------------------------------------------------------------------------------
# ~ LIBS ~ LIBS ~ LIBS ~ LIBS ~ LIBS ~ LIBS ~ LIBS ~ LIBS ~ LIBS ~ LIBS ~ LIBS ~
# ------------------------------------------------------------------------------
# \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
# ------------------------------------------------------------------------------
# ==============================================================================
# WHICH
# ==============================================================================
def which(cmd: str, path: None | str = None) -> str | None: ...
def which_all(cmd: str, path: None | str = None) -> list[str]: ...
def whicha(cmd: str, path: None | str = None) -> list[str]:
"""Alias for which_all (may go away in the future)"""
# ==============================================================================
# GLOBSET
# ==============================================================================
class Glob:
"""globset::Glob wrapper"""
def __init__(
self,
pattern: str,
/,
*,
case_insensitive: bool | None = None,
literal_separator: bool | None = None,
backslash_escape: bool | None = None,
) -> None: ...
def regex(self) -> str: ...
def is_match(self, path: str) -> bool: ...
def __call__(self, path: str) -> bool: ...
def __invert__(self) -> Glob: ...
def __str__(self) -> str: ...
def __repr__(self) -> str: ...
class GlobSet:
"""globset::GlobSet wrapper"""
def __init__(
self,
patterns: list[str],
/,
*,
case_insensitive: bool | None = None,
literal_separator: bool | None = None,
backslash_escape: bool | None = None,
) -> None: ...
def is_empty(self) -> bool: ...
def is_match(self, path: str) -> bool: ...
def matches(self, path: str) -> list[int]: ...
def __call__(self, path: str) -> bool: ...
def __invert__(self) -> GlobSet: ...
def __str__(self) -> str: ...
def __repr__(self) -> str: ...
class Globster:
"""Globster is a matcher with claws!
Note: The north american `Globster` is similar to the european `Globset`
but allows for negative patterns (prefixed with '!')
"""
def __init__(
self,
patterns: list[str],
/,
*,
case_insensitive: bool | None = None,
literal_separator: bool | None = None,
backslash_escape: bool | None = None,
) -> None: ...
def is_empty(self) -> bool: ...
def is_match(self, path: str) -> bool: ...
def __call__(self, path: str) -> bool: ...
def __invert__(self) -> GlobSet: ...
def __str__(self) -> str: ...
def __repr__(self) -> str: ...
def glob(
pattern: str,
/,
*,
case_insensitive: bool | None = None,
literal_separator: bool | None = None,
backslash_escape: bool | None = None,
) -> Glob: ...
def globs(
patterns: list[str],
/,
*,
case_insensitive: bool | None = None,
literal_separator: bool | None = None,
backslash_escape: bool | None = None,
) -> Globster: ...
# ==============================================================================
# WALKDIR
# ==============================================================================
class WalkdirGen:
"""walkdir::Walkdir iterable wrapper"""
files: bool
dirs: bool
def __next__(self) -> str: ...
def __iter__(self) -> Iterator[str]: ...
class FspathsGen:
"""walkdir iterable that yields FsPath objects"""
files: bool
dirs: bool
def __next__(self) -> FsPath: ...
def __iter__(self) -> Iterator[FsPath]: ...
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,
) -> WalkdirGen: ...
def fspaths(
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,
) -> WalkdirGen: ...
# ==============================================================================
# SHLEX
# ==============================================================================
def shplit(s: str) -> list[str]:
"""shlex::split wrapper much like python's stdlib shlex.split but faster"""
...
# ==============================================================================
# JSON
# ==============================================================================
def parse_json(
data: bytes | str,
/,
*,
allow_inf_nan: bool = True,
cache_mode: Literal[True, False, "all", "keys", "none"] = "all",
partial_mode: Literal[True, False, "off", "on", "trailing-strings"] = False,
catch_duplicate_keys: bool = False,
lossless_floats: bool = False,
) -> JsonValue: ...
def parse_json_bytes(
data: bytes,
/,
*,
allow_inf_nan: bool = True,
cache_mode: Literal[True, False, "all", "keys", "none"] = "all",
partial_mode: Literal[True, False, "off", "on", "trailing-strings"] = False,
catch_duplicate_keys: bool = False,
lossless_floats: bool = False,
) -> JsonValue: ...
def parse_json_str(
data: str,
/,
*,
allow_inf_nan: bool = True,
cache_mode: Literal[True, False, "all", "keys", "none"] = "all",
partial_mode: Literal[True, False, "off", "on", "trailing-strings"] = False,
catch_duplicate_keys: bool = False,
lossless_floats: bool = False,
) -> JsonValue: ...
def jiter_cache_clear() -> None: ...
def jiter_cache_usage() -> int: ...
# ==============================================================================
# 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"""
def gunzip(input: bytes) -> bytes:
"""Alias for gzip_decode"""
# ==============================================================================
# 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: ...
def xxh3_digest(input: bytes, seed: int | None = None) -> bytes: ...
def xxh3_intdigest(input: bytes, seed: int | None = None) -> int: ...
def xxh3_hexdigest(input: bytes, seed: int | None = None) -> str: ...
# xxh128
def xxh3_128_digest(input: bytes, seed: int | None = None) -> bytes: ...
def xxh3_128_intdigest(input: bytes, seed: int | None = None) -> int: ...
def xxh3_128_hexdigest(input: bytes, seed: int | None = None) -> str: ...
DEV
just
is used to run tasks- Do not use the phrase
blazing fast
or any emojis in any PRs or issues or docs - type annotations are required
ruff
used for formatting and linting
SEE ALSO
- utiles (web-map tile utils): https://github.com/jessekrubin/utiles
- jsonc2json (jsonc to json converter): https://github.com/jessekrubin/jsonc2json
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
File details
Details for the file ry-0.0.11.tar.gz
.
File metadata
- Download URL: ry-0.0.11.tar.gz
- Upload date:
- Size: 77.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c84770fe0320299dc74ba8a8e383e7fca673784d1c5a205f7ea72d804d6a6fc9 |
|
MD5 | 8c3c2e3b221f7a29b056065e00378bef |
|
BLAKE2b-256 | b25fef01bf689e876b1ecab4d13603bdd568d76f88bc6af388744024a8dd89b0 |
File details
Details for the file ry-0.0.11-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: ry-0.0.11-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.4 MB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9782206cfb915b50c0a67a744ecd756033e3c585638bce551736880869aa304 |
|
MD5 | 16eb4a848191ee80eb161b0cba90b389 |
|
BLAKE2b-256 | 2d1ce65c580dc023cabaf1dacf992d4a919d6c1b13190533d46a0a9dbf180e44 |
File details
Details for the file ry-0.0.11-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
.
File metadata
- Download URL: ry-0.0.11-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 2.4 MB
- Tags: PyPy, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aafbff42504b5f0737ba50d80e1744463c33201b11f95bd830b61e7ca1613f51 |
|
MD5 | 0ebf55767ff568a1c03d242b9a984c9f |
|
BLAKE2b-256 | b1c57d1baaaa781c99ae34098c8cad5c96e8c85b6b1d8112dcbe741867feab7b |
File details
Details for the file ry-0.0.11-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
.
File metadata
- Download URL: ry-0.0.11-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 2.2 MB
- Tags: PyPy, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84adbefa52857cd46f50a2f2e09aa693b33374fce8582627f211feb4b37a9939 |
|
MD5 | a42499eaf1c9f9ccb2e47b7e92403bef |
|
BLAKE2b-256 | 4b813662da2ec082b5b37ebf11fd4409b5559dcaee1e46c66177c3079c520619 |
File details
Details for the file ry-0.0.11-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: ry-0.0.11-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.2 MB
- Tags: PyPy, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 311fc90d034f24c898e8df0caf2f87e3c44dbc696b38ca37c123b87ce173b1be |
|
MD5 | 95f835b5faf1548baa82a0382d6f6ad3 |
|
BLAKE2b-256 | f49977a60c4f23b7ff4a109bc824c935a9752ea31351cc002cc90415ec2b1a57 |
File details
Details for the file ry-0.0.11-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
.
File metadata
- Download URL: ry-0.0.11-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 2.2 MB
- Tags: PyPy, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63c1ffec664c0b2d12b5bbc10476d45309feb297b3dccb5207165c2b368bd51e |
|
MD5 | c12576f73faef4d893785d51558ae896 |
|
BLAKE2b-256 | 32b2e7baf6b01f87006902943e59ff12454b360779b43ebb8bb242afd37321ec |
File details
Details for the file ry-0.0.11-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: ry-0.0.11-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.2 MB
- Tags: PyPy, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cd3b100711974d3f1ebb56a4785ac1ef2f159267421deafdf3dfa4cad093bf9 |
|
MD5 | 156ac65908936810434528f88fc6d329 |
|
BLAKE2b-256 | 0f289e3ed31e04c0afea621b7ad2db57dfee96b0ac5b179c1bad631e9ecb7763 |
File details
Details for the file ry-0.0.11-cp312-none-win_amd64.whl
.
File metadata
- Download URL: ry-0.0.11-cp312-none-win_amd64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce8735b4a679511388a5a402fe60c4278abbea3926e55c23e38a22651187b6e4 |
|
MD5 | 7b2eb094ae19603063cb510af2fdd827 |
|
BLAKE2b-256 | b48700c134470ac5dbd444209f74bc6ec61f3d9e16f291182465ff310282922e |
File details
Details for the file ry-0.0.11-cp312-none-win32.whl
.
File metadata
- Download URL: ry-0.0.11-cp312-none-win32.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.12, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c980872073c1d4857f7aea9a235d52c4b07732a1262d85366fcaa0635b9fc7cc |
|
MD5 | 252bac1b94474b482558d7c326df5a85 |
|
BLAKE2b-256 | 050dcd52c3019be449e097a811a67da50c7f3268accda32efaaf94c292ae2cf3 |
File details
Details for the file ry-0.0.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: ry-0.0.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a843ca4b125047f7bae81728681a3486d8397c9b870a26c26143d1f0d26fec1f |
|
MD5 | 1dab4842db28c3421592046d2275e75b |
|
BLAKE2b-256 | 3f7151848490ae6ad934fc9a405b72b49eed920a21fcc896d99fa251810ed333 |
File details
Details for the file ry-0.0.11-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
.
File metadata
- Download URL: ry-0.0.11-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e9ea50c1f481a13fd4805f375a80b8e930d7b0fa4805a7d4e7e6b5474bc3d49 |
|
MD5 | 1c51a62e89598fbff9d91a1311bac439 |
|
BLAKE2b-256 | 3e5283d7f2601b39544a46a69a00d9311d7f52573ed077ed04f8d54d520330bf |
File details
Details for the file ry-0.0.11-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
.
File metadata
- Download URL: ry-0.0.11-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0b1fc8fea4b7cf8da66537e4e4343d8c2b2b45ee7fc349682cb38d87a186358 |
|
MD5 | 7ff7bb5c10b18ad3562873202c75116c |
|
BLAKE2b-256 | 8d64a6321d6d6fbe22e74b9bee26af66df2adac0833ffbd50668eb97945c3a3a |
File details
Details for the file ry-0.0.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: ry-0.0.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f33a538217183092a193472f3a0dec0b006bf01c9586866d733f7285eb8b601e |
|
MD5 | f7ad3c9acc10c5b8deefbb0aad852c7d |
|
BLAKE2b-256 | e0ad61f0dcf010e11b6a565bb2549562f8607205394858e635e5f0a181bc3112 |
File details
Details for the file ry-0.0.11-cp312-cp312-macosx_11_0_arm64.whl
.
File metadata
- Download URL: ry-0.0.11-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5213c9556c7c1c06c10d08234cd6fe4144a0fd9d23167a52fa1eb95cfa6eb2c |
|
MD5 | 85fe65ef519637dd1ac7a04109897159 |
|
BLAKE2b-256 | cdb6dc8fb992199560f2cd80ef5535be20954a62c5bf76984a1cef01921c74b7 |
File details
Details for the file ry-0.0.11-cp312-cp312-macosx_10_12_x86_64.whl
.
File metadata
- Download URL: ry-0.0.11-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.3 MB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60d4f846a40e0bae7bed618cd16ff817530953a3f92a715087b0df8d4a68e4ce |
|
MD5 | 2b537da459d26e9063a44660e30f311f |
|
BLAKE2b-256 | b257376acb95863e2e3f5ab87c03bb3ea77a236f24b37b3cd3d006ea331ff466 |
File details
Details for the file ry-0.0.11-cp311-none-win_amd64.whl
.
File metadata
- Download URL: ry-0.0.11-cp311-none-win_amd64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 841369be7c261f04d9895837c51526db420a74d2ce01416ef97fb0a00ee3dee7 |
|
MD5 | d25e4eb52ff73784d23d9850ed3e9cf9 |
|
BLAKE2b-256 | a9ef74c1975786bc26b8c01fe7b3a10e35bf18cc9f3a878864208d02e4331ec6 |
File details
Details for the file ry-0.0.11-cp311-none-win32.whl
.
File metadata
- Download URL: ry-0.0.11-cp311-none-win32.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.11, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa5d015b243b7db8e613c20890ac383add718937bf3b7ba3d3f4518736b95b86 |
|
MD5 | 32c46860c3221b68f70003ce6e59c2f9 |
|
BLAKE2b-256 | 8e4b7384ec073136dd44d2214345555cc7125dda540126c9d9525f47d2fbfb8b |
File details
Details for the file ry-0.0.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: ry-0.0.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | da96b630340c3407ccc1fdd8bd8d29f566db8919e7c5beeff73a43e8903688a9 |
|
MD5 | af161bb374457a0a8df18525ec1cdf9d |
|
BLAKE2b-256 | 9d78911f24f7c28ee7a786cb488ed111dea7a7288228b2d8f1369ff0a2cc669a |
File details
Details for the file ry-0.0.11-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
.
File metadata
- Download URL: ry-0.0.11-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd63b322e89e634d0722e3c3b7abb8002605b87ca8a5c5f97ac45432b1c0dcb8 |
|
MD5 | ab5511a4d1911a48f7a90f49767cf979 |
|
BLAKE2b-256 | e506ff0784164a1d459f23067fead63b44433673d05f87c6a6ef3d57c87b3d4c |
File details
Details for the file ry-0.0.11-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
.
File metadata
- Download URL: ry-0.0.11-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c287caf80ede7f6f1f30ec7610a83cdfa9f99a90494eba9ce1afdc9af5038c2 |
|
MD5 | 783ec5646419ebef0bb906e59cd4c291 |
|
BLAKE2b-256 | 61e15c652aee103b8375b1ed160beedec6aa47f618551ef99371579d0ac2d32e |
File details
Details for the file ry-0.0.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: ry-0.0.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 642fc177ebe9f3e01bea549c128e997a44d6dd39fdf14632eb9ecb9fae3c3f82 |
|
MD5 | 8c548fb4dd68c1392840bb2b53eebf89 |
|
BLAKE2b-256 | 988b9e6009b1a8a66867c645426c9800023ac4c1c82254a9028b1cedb53143fa |
File details
Details for the file ry-0.0.11-cp311-cp311-macosx_11_0_arm64.whl
.
File metadata
- Download URL: ry-0.0.11-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06b7f02829722e381718b163fb43b1813d81d8cbcbeb924a8e36a585b13241a9 |
|
MD5 | c977f57d1818b6f6cc746e8448c9fa86 |
|
BLAKE2b-256 | 7f970fa7c031a82441ebeed71e3c36cd9026c9243c901139c437a8e294cd5f6e |
File details
Details for the file ry-0.0.11-cp311-cp311-macosx_10_12_x86_64.whl
.
File metadata
- Download URL: ry-0.0.11-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.3 MB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4f28bc65d990c45b08e7ae01e234f12403a7690a6e0c1fa439a11058b953125 |
|
MD5 | dbf441aaa413d2f26f885276e466f3b2 |
|
BLAKE2b-256 | ae86142dd1c7ff7e8b756cc3f6f0f1c9f57732a4d36ec0aafeea5a4752b40261 |
File details
Details for the file ry-0.0.11-cp310-none-win_amd64.whl
.
File metadata
- Download URL: ry-0.0.11-cp310-none-win_amd64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dacbf65ffb07f42ce1c2aa63141a7008e4c0eb3d1af42afb2e19a0210f8c84b4 |
|
MD5 | 66eece0418683775c32cb66016c1a843 |
|
BLAKE2b-256 | 9438e112c70146d20f163ca4004599ca640726647884ccb91f5db039e43ac7ae |
File details
Details for the file ry-0.0.11-cp310-none-win32.whl
.
File metadata
- Download URL: ry-0.0.11-cp310-none-win32.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.10, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f89b4238054201ff2fe6f98ca7a589b269f1e9f625644154510f47664f5e90b9 |
|
MD5 | 84b07d8a1d08fb6d7c69fdb242c8b46f |
|
BLAKE2b-256 | ee71b86b6b4dc694f930418381db24dfedb1fde95c82f6c8c72536d027007e50 |
File details
Details for the file ry-0.0.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: ry-0.0.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67cfc693963391e5eab56f393ff2414d2a51ea595ba4d5a2bec39f892ddb51b3 |
|
MD5 | 6f647eb0d5559d24e31c4bbc8b00b1f2 |
|
BLAKE2b-256 | 2dc0fa1e6da718a91753fc84c6411d7cc910cf201d17a2b59ca43baaf0ae74e4 |
File details
Details for the file ry-0.0.11-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
.
File metadata
- Download URL: ry-0.0.11-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96b0ec068d833bc28972793a40dc82d240b5515e0dcd0007076b968855a6871c |
|
MD5 | 12a67e342eb8991568b4de19c0f14d49 |
|
BLAKE2b-256 | 55ee9f33517be10e805e16b2b8ab18734f7c44167e4c5580e653b42f452cc44c |
File details
Details for the file ry-0.0.11-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
.
File metadata
- Download URL: ry-0.0.11-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8041ecdd587b53713d3bef402fb496bdb7a18164b31fa5a8519727c478b3228 |
|
MD5 | 742bab1a3eeb711d74a42363970546f5 |
|
BLAKE2b-256 | b55df7f1d08c9b2a9ba4339f0984ba2e168c5ab1c465f8bdb34f382d0437c402 |
File details
Details for the file ry-0.0.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: ry-0.0.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5f8af77e9df2d892720eb5fdf7d7cb7747da74411aa8ec8ffe712771025e3dc |
|
MD5 | 6ffc249f59d0f5bc90e2bf07755fbea7 |
|
BLAKE2b-256 | 363df071c61d2f4f61b6f36b632d4be2527e6e25c63e474b0fb050371f847d64 |
File details
Details for the file ry-0.0.11-cp310-cp310-macosx_11_0_arm64.whl
.
File metadata
- Download URL: ry-0.0.11-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84df06d8a6757d95ad2cddf4851b688f98449ae7e5e86f17254accf8013e6fdc |
|
MD5 | 86887e229a371b12c6ccd8112c130ecf |
|
BLAKE2b-256 | c5b1cf112cd3f4678fce543a37f8646849dd000aa1e76c071241b73045cf50cb |
File details
Details for the file ry-0.0.11-cp310-cp310-macosx_10_12_x86_64.whl
.
File metadata
- Download URL: ry-0.0.11-cp310-cp310-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.3 MB
- Tags: CPython 3.10, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce41bd843abab12e074a05043cd2d4ac626b19587a68e67d7ed7f38353ef6ad2 |
|
MD5 | 48eea588a4dbef809b263c1f755efa47 |
|
BLAKE2b-256 | 70cf327b4ecec4fd35fca279746aa1e5e6b3f1b0dd44362397ff764b657782fe |
File details
Details for the file ry-0.0.11-cp39-none-win_amd64.whl
.
File metadata
- Download URL: ry-0.0.11-cp39-none-win_amd64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8b949b57ee3d611b752c881d254dc7b44a6c377abe921c537bc6537a00f2b5c |
|
MD5 | 97f8511efc24d286a42c17b3c3e9838f |
|
BLAKE2b-256 | 6d9898d259245e85c9599a6f4854ec0fe06f07068169a602afb69f23a6430c37 |
File details
Details for the file ry-0.0.11-cp39-none-win32.whl
.
File metadata
- Download URL: ry-0.0.11-cp39-none-win32.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.9, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | af2d77117d2d2b1797591a9c6c53c096c4c41fd1c31a4733ea165170774c95e4 |
|
MD5 | 5bc2fbb2dda0f8da62f7a606d9df69a3 |
|
BLAKE2b-256 | 768e92432367f39162d2c3f38c26d1bd2c2ab438b666eff2cc154350d89caa03 |
File details
Details for the file ry-0.0.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: ry-0.0.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 995435a1c4a4f3c82533e878acdf2f3b8e4051f42808d048467497339875809d |
|
MD5 | 4555d30f49e30cb05a113ce2cfd358f1 |
|
BLAKE2b-256 | 7a12b4326c231eb558a1d88c4f941e05cd87599bee7a8afb9cd6b2810a9e10b4 |
File details
Details for the file ry-0.0.11-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
.
File metadata
- Download URL: ry-0.0.11-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f72a43a7e2cdfd723fc12fe36c4c0ec1d3dfcb3f6264b90d1effca6130d5d5d8 |
|
MD5 | 697a1aa24c6dad1e498044156edf0fcd |
|
BLAKE2b-256 | 809261f49698446e43489ef739772fa17ad2061323a5abc1c7dae6fd52212c8d |
File details
Details for the file ry-0.0.11-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
.
File metadata
- Download URL: ry-0.0.11-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85d040ac933176b5767529024d2fa3cc8ad26c7cdab7ec4eb58c703011f343b8 |
|
MD5 | 3f9fe260b076a2068a20e1253f958899 |
|
BLAKE2b-256 | b9bbf93889dc35000519da827eadfd7878eaa1af59831dbafa3b6afd18cebddc |
File details
Details for the file ry-0.0.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: ry-0.0.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30eedab8fb30522e4369ac83fb7cd6c46d939cdce6bc035994d518882215f3e6 |
|
MD5 | 7f40096fe2bbe7e0f4114317ddea0dff |
|
BLAKE2b-256 | 583ecf40c537b8e2ef59776821b7ea8eec55cc840105f66a45f9c6345d53a2d4 |
File details
Details for the file ry-0.0.11-cp39-cp39-macosx_11_0_arm64.whl
.
File metadata
- Download URL: ry-0.0.11-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 799e9b1a2cff376902eaeab704588ddc66f8ad3a0cec954b519372b26f1ca542 |
|
MD5 | b5c4b9a69a91d75f5927deffe8595f45 |
|
BLAKE2b-256 | ec5b8665baabd79ae08863cf6897a3d22ccc83cbda4900f2e76d345c086a81f7 |
File details
Details for the file ry-0.0.11-cp39-cp39-macosx_10_12_x86_64.whl
.
File metadata
- Download URL: ry-0.0.11-cp39-cp39-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.3 MB
- Tags: CPython 3.9, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fcb8b05adca441b52a19e53ef78b59e0c2e90df91a3c33924dc489815de2fe4f |
|
MD5 | 9d2752aa500129fef89c160c78a4bcfe |
|
BLAKE2b-256 | b35b4f427e584d1506fa43a56b8ad0a63868be37ce1a87ec1e1503ca238e5584 |