YoungLion 0.1.1
YoungLion is a dependency-light Python toolkit backed by a C++17 native extension. Version 0.1 focuses on four practical problems that appear repeatedly in desktop applications, bots, developer tools, local services, automation programs, and data-heavy Python applications:
- Dynamic structured data through DDM and its specialized variants.
- Fast bulk operations and indexed search over large collections of DDM records.
- File and structured-format workflows without a large tree of Python runtime dependencies.
- Reusable application utilities for scripts, scheduling, logging, caching, resilience, terminal output, text processing, e-mail construction, and file transfer.
The package keeps a Python-friendly API while moving performance-sensitive traversal, serialization, searching, file primitives, and batch operations into C++ where that provides a real benefit.
Development status:
0.1.1is still the active v0.1 development line. The repository is prepared for reproducible source/wheel builds, but this README does not imply that a particular commit has already been published to PyPI.
Highlights
- C++17 native extension built directly against the CPython C API.
- Zero required third-party Python runtime dependencies in the core package.
- Typed package with
py.typedand detailed.pyifiles. - CPython 3.10–3.14 stable target line.
- DDM core plus
PackedDDM,FrozenDDM,IdentityDDM,SchemaDDM,DefaultDDM,LazyDDM, andViewDDM. ListDDM,SetDDM,DictDDM, andDDMTablefor collection-scale work.- Native batch arithmetic, aggregation, sorting, selection, filtering helpers, and
BatchPlansingle-pass mutation plans. - Nested path indexes such as
profile.name, numeric range indexes, composite indexes, and fuzzy/text search over DDM collections. - General application search using inverted indexes, BM25, autocomplete, fuzzy metrics, structured filters, and multi-pattern matching.
- Native/standard-library file operations for JSON, text, binary data, CSV, INI, properties, XML, practical YAML, backups, checksums, atomic writes, and directory workflows.
- Application helpers: scheduler, script runner, logger, event bus, TTL cache, rate limiter, retry policy, circuit breaker, stopwatch, terminal renderer, text processor, e-mail manager, and transfer manager.
- Multi-platform GitHub Actions build configuration that produces one downloadable release bundle instead of publishing to PyPI automatically.
Installation
From PyPI after a release
python -m pip install YoungLion
From a local source checkout
A C++17 compiler is required when building the native extension from source.
git clone https://github.com/Cavanshirpro/YoungLionPythonLibrary.git
cd YoungLionPythonLibrary
python -m pip install .
For editable development:
python -m pip install -e .
For a strict local native build:
YOUNGLION_STRICT=1 python setup.py build_ext --inplace --force
On Windows PowerShell, set the variable first:
$env:YOUNGLION_STRICT = "1"
python setup.py build_ext --inplace --force
See docs/installation.md, docs/development/building.md, and docs/development/compatibility.md for platform details.
Quick start
DDM: dynamic structured data
from YoungLion import DDM
user = DDM({
"id": 42,
"profile": {
"name": "Alice",
"age": 28,
},
"active": True,
})
print(user.id)
print(user.get_path("profile.name"))
user.set_path("profile.age", 29)
print(user.to_dict())
print(user.to_json(indent=2))
DDM is deliberately dynamic: it is useful when your structure is known at runtime, evolves over time, comes from JSON-like data, or must remain easy to inspect and serialize.
Typed DDM subclasses: model your own domain classes
DDM is intentionally subclass-friendly. For application code, a useful pattern is to keep the native/dynamic storage and serialization behavior from DDM, while normalizing the fields that your domain actually understands into typed attributes and nested DDM subclasses.
from collections.abc import Mapping
from typing import Any
from YoungLion import DDM
class UserProfile(DDM):
name: str
country: str
age: int
def __init__(self, data: Mapping[str, Any]):
super().__init__(data)
self.name = str(data.get("name", "Unknown"))
self.country = str(data.get("country", "Unknown"))
self.age = max(0, int(data.get("age", 0)))
@property
def is_adult(self) -> bool:
return self.age >= 18
class User(DDM):
id: int
username: str
profile: UserProfile
def __init__(self, data: Mapping[str, Any]):
super().__init__(data)
self.id = int(data.get("id", 0))
self.username = str(data.get("username", "unknown"))
self.profile = UserProfile(data.get("profile", {}))
def rename(self, value: str) -> None:
value = value.strip()
if not value:
raise ValueError("username cannot be empty")
self.username = value
user = User({
"id": 42,
"username": "cavan",
"profile": {"name": "Cavan", "country": "AZ", "age": 18},
})
print(user.profile.name)
print(user.profile.is_adult)
print(user.get_path("profile.country"))
print(user.to_dict())
This pattern is useful because it does not replace DDM with a conventional dataclass. The object still participates in native DDM serialization, nested-path search, ListDDM batch operations and DDMSearchEngine; your subclass simply adds domain validation, methods, type annotations and nested models.
For larger projects, keep models, repositories/search indexes and services in separate modules instead of putting every rule in __init__. See Typed DDM subclass modeling. The separate examples branch contains complete multi-file projects built around this style.
Choosing a DDM variant
| Type | Best fit |
|---|---|
DDM |
General mutable dynamic records |
PackedDDM |
Read-heavy records where per-object Python overhead matters |
FrozenDDM |
Immutable, value-hashable records and cache/set keys |
IdentityDDM |
Mutable objects that need identity-based hashing |
SchemaDDM |
Runtime schema validation |
DefaultDDM |
Missing-value/default-factory workflows |
LazyDDM |
Derived or expensive fields evaluated on demand |
ViewDDM |
Zero-copy view over an existing mapping |
See Choosing a DDM variant and the DDM variants API.
Large DDM collections
ListDDM, SetDDM, and DictDDM are not just aliases around Python containers. They provide a shared collection API designed for repeated path operations and bulk data manipulation.
from YoungLion import ListDDM
users = ListDDM([
{"id": 1, "profile": {"name": "Alice", "age": 24}, "score": 70},
{"id": 2, "profile": {"name": "Bob", "age": 31}, "score": 85},
{"id": 3, "profile": {"name": "Carol", "age": 27}, "score": 91},
])
users.increment("score", 5)
users.clamp("score", 0, 100)
adults = users.filter_path("profile.age", ">=", 25)
average = users.mean("score")
leaderboard = users.top("score", 2)
Single-pass batch plans
When several mutations target the same collection, BatchPlan can group them so the outer record traversal happens once.
plan = (
users.batch()
.add("score", 3)
.multiply("score", 1.05)
.clamp("score", 0, 100)
.set("active", True)
)
plan.execute(users)
Other collection operations cover grouping, distinct values, partitioning, chunking, deduplication, path moves/renames, numeric reductions, nth/top/bottom selection, stable sorting, binary-search helpers, and bulk callback application.
Read DDM collections, Batch processing, and Large datasets.
Indexed DDM search
A common application pattern is repeatedly searching thousands or millions of structured records by a nested field. Re-running a Python loop for every query is wasteful when the searched path is stable.
from YoungLion import DDMSearchEngine, ListDDM
users = ListDDM([
{"id": 1, "profile": {"name": "Alice", "age": 24}},
{"id": 2, "profile": {"name": "Bob", "age": 31}},
{"id": 3, "profile": {"name": "Alicia", "age": 27}},
])
engine = DDMSearchEngine(users)
engine.create_indexes("profile.name", "profile.age")
exact = engine.find("profile.name", "Alice")
age_band = engine.between("profile.age", 25, 35)
fuzzy = engine.text("profile.name", "Alcie")
Indexes are reusable. Depending on the path/query type, the search layer can maintain exact lookup structures, sorted/range information, text indexes, and composite indexes.
engine.create_composite_index("country", "status")
matches = engine.composite(("country", "status"), ("AZ", "active"))
The engine can consume YoungLion DDM collections and ordinary iterable/mapping collections of DDM-like records.
See DDM search indexing, Search API, and Search indexing performance.
General application search
ApplicationSearch is intended for search bars, command palettes, help centers, settings pages, local catalogs, knowledge tools, and similar application-facing search.
from YoungLion import ApplicationSearch
search = ApplicationSearch()
search.add(
"settings.general",
title="General settings",
body="Change language, startup behavior and interface preferences",
tags=["preferences", "configuration"],
fields={"category": "settings"},
payload={"route": "/settings/general"},
)
search.add(
"settings.account",
title="Account settings",
body="Manage profile and account information",
fields={"category": "settings"},
payload={"route": "/settings/account"},
)
results = search.search("setings") # typo-friendly search
suggestions = search.suggest("acc") # autocomplete
facets = search.facet("category")
The search module includes:
- inverted indexes;
- BM25 ranking;
- Levenshtein distance;
- Damerau-Levenshtein distance;
- Jaro-Winkler similarity;
- trigram/Dice similarity;
- prefix/autocomplete indexes;
- numeric range/nearest search;
- structured mapping search;
- Aho-Corasick multi-pattern matching;
- file name/content search;
- DDM path-aware indexes.
The algorithms are exposed as building blocks as well as through higher-level search classes. See Search algorithms for when each one is appropriate.
Real-life example projects
The main branch intentionally stays focused on the library itself. A separate examples branch in this same repository is intended for large, runnable mini-projects rather than tiny snippets:
- typed
class User(DDM)/ nested-model designs; - large
ListDDM/SetDDM/DictDDMbatch pipelines; - reusable nested-path indexes;
- application search backends;
- File/configuration/ETL workflows;
- integrated scheduler/cache/logger/resilience examples.
After the branch is pushed, browse it at tree/examples.
File workflows
File combines the core file/path primitives with structured-format helpers.
from YoungLion import File
files = File("workspace")
files.atomic_json_write("settings.json", {
"theme": "dark",
"autosave": True,
})
settings = files.json_read("settings.json")
checksum = files.checksum("settings.json", "sha256")
backup = files.backup("settings.json")
print(settings)
print(checksum)
print(backup)
Common capabilities include:
- text and binary read/write;
- atomic text/binary/JSON replacement;
- JSON;
- CSV read/write/append/update;
- INI;
- Java-style properties;
- XML;
- practical dependency-free YAML for normal configuration files;
- Markdown/HTML/CSS/JS/RTF/LaTeX-oriented helpers;
- file/folder copy, move, rename, delete, list and discovery;
- backup and checksums;
- CRC32;
- directory size and line counts;
- head/tail/chunked reads;
- binary comparison;
- metadata inspection.
Some complex file ecosystems are intentionally scoped. For example, a small dependency-free PDF helper is not intended to replace a full professional PDF engine, and the practical YAML helper does not claim support for every advanced YAML feature. Exact format boundaries are documented in Format support.
Application utilities
Scripts
from YoungLion import ScriptRunner
runner = ScriptRunner(default_interpreter="python")
result = runner.run("tools/example.py", args=["--check"], timeout=30)
print(result.returncode)
print(result.stdout)
Scheduling
from YoungLion import TaskScheduler
scheduler = TaskScheduler()
task_id = scheduler.schedule_task(lambda: print("cleanup"), repeat=False)
scheduler.wait(task_id)
Cache and resilience
from YoungLion import TTLCache, RetryPolicy, CircuitBreaker, RateLimiter
cache = TTLCache(max_size=1000, default_ttl=60)
cache.set("user:42", {"name": "Alice"})
retry = RetryPolicy(attempts=3, base_delay=0.1)
breaker = CircuitBreaker(failure_threshold=5, recovery_timeout=30)
limiter = RateLimiter(rate=10, capacity=20)
Events, logging, terminal and text
YoungLion also includes EventBus, rotating/contextual Logger, Terminal, Colors, TextProcessor, and Stopwatch. These are standard-library-first utilities intended to cover frequently repeated infrastructure without forcing a separate package for every small task.
See Utilities API, Colors and Terminal, Caching and resilience, Scheduler and automation, and Logging.
Model helpers
The DataModel package also includes specialized helpers that remain DDM-friendly:
Range— bounds, clamping, normalization and subdivision.Vector— vector math, distance, dot/cross operations and interpolation.Timeline— time-positioned events and progress.Dataset— lightweight row-oriented data utilities.SizeandPoint— common geometry primitives.Color— RGBA-oriented color helpers.Matrix— small matrix transformations.TreeDDM— hierarchical tree structures.SmartCache/SC— fast reusable completion/default templates.DDMBuilder— fluent construction of nested structures.
See Model helpers and SmartCache and Builder.
Typing and IDE support
YoungLion ships as a PEP 561 typed package:
src/YoungLion/py.typedmarks inline typing support;- public Python modules have
.pyiinterfaces; - the native C++ extension has
_native.pyi; - collection classes expose generic type parameters where useful;
- overloads describe path defaults, slicing, dictionary access, and common collection operations;
tools/check_stub_coverage.pystructurally checks that public source classes/functions/methods remain represented in the corresponding stubs.
Run the audit with:
python tools/check_stub_coverage.py
The structural audit complements—not replaces—mypy, Pyright, an IDE type engine, and real runtime tests. Read docs/typing.md and Stub maintenance.
Performance philosophy
YoungLion does not assume that rewriting everything in C++ is automatically better. Native code is used where it can reduce Python-level loop overhead, repeated parsing/traversal, or expensive index work. Python remains the control layer where flexibility is more valuable.
Important design choices include:
- a single-storage DDM design rather than duplicating record fields in two Python dictionaries;
- packed/frozen/view variants for different memory or mutability requirements;
- native recursive serialization and path helpers;
- persistent search indexes for repeated queries;
- shared record stores across DDM path indexes where practical;
- single-pass
BatchPlanexecution for groups of bulk mutations; - C++ algorithms for stable sort, lower/equal range, binary search, nth selection, partitioning and reductions;
- source distributions containing native source while prebuilt wheels omit C++ source files.
Any benchmark number is workload-dependent. Use the included scripts under benchmarks/ and follow Benchmark methodology before making architectural decisions.
Building release artifacts on GitHub
The repository workflow is designed to build, test, and collect artifacts only. It does not publish to PyPI and does not need a PyPI token.
A release build ultimately assembles one downloadable artifact:
YoungLion-0.1.1-release-bundle/
├── pypi/
│ ├── younglion-0.1.1.tar.gz
│ └── *.whl
├── experimental/
├── checksums/
│ ├── MANIFEST.json
│ └── SHA256SUMS.txt
└── UPLOAD_TO_PYPI.md
Only the stable files under pypi/ are intended for the normal manual upload flow. Preview/interpreter/platform builds stay separated under experimental/.
Typical manual release check:
cd pypi
python -m twine check *
python -m twine upload *
See CI, Release bundle, Packaging, and Manual PyPI publishing.
Real-life examples
A separate archive—not part of the main repository tree—contains 70 standalone real-life mini projects. They cover DDM modeling, collection-scale batch operations, nested-path search, application search, file formats, automation, resilience, terminal/text tools, and combined local applications.
Each numbered example has its own README.md and executable main.py, for example:
31_ddm_exact_user_search/
├── README.md
└── main.py
The examples are intentionally kept outside tree/main so the core repository remains focused. They are validated against the v0.1 source during release preparation.
Documentation
Start at docs/index.md. The documentation includes:
- installation and quick start;
- architecture;
- complete API references;
- DDM and every DDM variant;
- collection/batch operations;
- DDM indexes and application search;
- search algorithm reference;
- file format support and file workflows;
- utilities and thread-safety notes;
- typing/stub maintenance;
- memory/performance guides;
- build, CI and packaging;
- release bundle and manual PyPI upload;
- security notes;
- troubleshooting, FAQ and migration guidance;
- generated public API signatures.
Development checks
Useful local checks:
# Native extension
YOUNGLION_STRICT=1 python setup.py build_ext --inplace --force
# Tests
PYTHONPATH=src python -m pytest -q
# Stub/source structural coverage
python tools/check_stub_coverage.py
# Build distributions
python -m build
The GitHub CI matrix additionally tests supported operating-system/distribution targets and wheel construction.
Project layout
YoungLionPythonLibrary/
├── .github/workflows/ # CI and artifact builds
├── benchmarks/ # performance experiments
├── docs/ # full documentation
├── src/YoungLion/
│ ├── DataModel/ # DDM core, variants, collections and models
│ ├── function/ # File and application utilities
│ ├── _native.cpp # native extension entry point
│ ├── _native_*.inc # native implementation units
│ ├── _native.pyi # native type interface
│ ├── search.py # search stack
│ ├── search.pyi
│ ├── Colors.py
│ └── py.typed
├── tests/
├── tools/
├── pyproject.toml
├── setup.py
└── README.md
Compatibility and dependency policy
- Stable Python target: CPython 3.10–3.14.
- Native language level: C++17.
- Core runtime third-party Python dependencies: none required.
- Developer/build dependencies are separate from runtime dependencies.
- Complex optional protocols/formats are not silently emulated through undeclared packages.
Read Compatibility for the exact support policy.
Contributing
Before proposing changes:
- keep existing public compatibility unless a change is deliberately documented;
- update
.pyifiles with public API changes; - add tests for behavior and regression cases;
- update the canonical docs, not only a compatibility redirect page;
- run the stub audit and normal test suite;
- avoid adding required runtime dependencies without a strong architectural reason.
See CONTRIBUTING.md and docs/development/contributing.md.
License
YoungLion is distributed under the MIT License. See LICENSE.
Metadata
Release files for YoungLion 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| younglion-0.1.1.tar.gz | 208.1 kB | Details |
Built distributions (wheels)
Total release size: 26.3 MB
Release files / younglion-0.1.1.tar.gz
| Download URL | younglion-0.1.1.tar.gz |
|---|---|
| Size | 208.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
23fedbfeac3952963c7ad9fdb454b3a6a26908b9860dae8282f36c850b09ebc6
|
|
BLAKE2b-256 checksum How to use checksums |
39a95d048bdb814ba8e74fecee53c5cac5d295e080147c9583c6a05e4d36e4b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp314-cp314-win_amd64.whl
| Download URL | younglion-0.1.1-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 482.2 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
bd52c7e4fff7a9fadc72227615e709fcd9de0202442cfe55a1d8331267bb9ec3
|
|
BLAKE2b-256 checksum How to use checksums |
a3812c8c0541c846a8a820a083e9307a47f945b41a02ac86e07fe952ebcbd47e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp314-cp314-musllinux_1_2_x86_64.whl
| Download URL | younglion-0.1.1-cp314-cp314-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.14 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
6da093ab8203ae764ea8bfaffd81867a45722144ee152d2c5ec969eaedc50c47
|
|
BLAKE2b-256 checksum How to use checksums |
aa2154a328ae2f09cb5d99683707519f241541a5ee8e44b33a6345e8b51fa0e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp314-cp314-musllinux_1_2_aarch64.whl
| Download URL | younglion-0.1.1-cp314-cp314-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.14 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
60588226689d1f9c67abb2dc36468ccf410624a3d20b1dad90bbb5b4cb07f9bd
|
|
BLAKE2b-256 checksum How to use checksums |
a8bdf38682a0c14548db44c306ad60b7a9f275aaf4d90cb3354c6749b23019cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | younglion-0.1.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 608.6 kB |
| Tags | CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
c0fec0864c54c9caac1e1e27c8b85946e00e26693e4c93f2f06d9fe0e646b195
|
|
BLAKE2b-256 checksum How to use checksums |
c0f9cc9533b1e095ca34b47eb20b3f12d864352860ccd8711cd832a0a2621130
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | younglion-0.1.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 570.7 kB |
| Tags | CPython 3.14 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
cb6ff6cb23ebc15c876f7545d22939ddd932ec47552c9c22990c679706c45af3
|
|
BLAKE2b-256 checksum How to use checksums |
54946543bd0877db9437030fc12f1a77b099971721647012605501e8b05c1536
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | younglion-0.1.1-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 253.6 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
feaf87c4e2452403ddcb10be8454adf0d963322ba1bd4a2e7107d7c96e2f696b
|
|
BLAKE2b-256 checksum How to use checksums |
a327b90d1cb076473f78585899b140155ff77614c3a00e295c613caf2388359b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp314-cp314-macosx_10_15_x86_64.whl
| Download URL | younglion-0.1.1-cp314-cp314-macosx_10_15_x86_64.whl |
|---|---|
| Size | 262.9 kB |
| Tags | CPython 3.14 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
85943be5a8da08bb5ba2851eb049c20e8f7ddae0dbaf51ec749d19559295a263
|
|
BLAKE2b-256 checksum How to use checksums |
7e2231691c261cb9c19763ed3c3705c13c0db6a83e04f716775cebcb055f8f1c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp313-cp313-win_amd64.whl
| Download URL | younglion-0.1.1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 471.2 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
030a9a9bf7a1ba2ebaa0f7617d06bc43918fdb9085b42d6f418ca206b6db556f
|
|
BLAKE2b-256 checksum How to use checksums |
9cab2212f6a2e307dd7f2f929e6994dc5698d7af89fafd08f50ee4039ef525f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | younglion-0.1.1-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
1a2cbedac3cbcf59789acd816d09bc8726b082337f5c7e1ac728bbd3a93c4131
|
|
BLAKE2b-256 checksum How to use checksums |
0b93fc47fa66ee5112a3b8a8e51ca11e5c8ec836cea0eec004956205e80b90bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp313-cp313-musllinux_1_2_aarch64.whl
| Download URL | younglion-0.1.1-cp313-cp313-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.13 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
8a7199ca4de2e460d85b1be9b7fbff2a702ccab5e5318ff6357b0d7f9bea2b48
|
|
BLAKE2b-256 checksum How to use checksums |
a79fc9f668e467eaf240434ef66deb661cd4ef9882d14264ab7e970c4cf03ac2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | younglion-0.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 608.4 kB |
| Tags | CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
0c669322f70dd85a5010811d3d115d6a037e09090198679839d37344f0a314f7
|
|
BLAKE2b-256 checksum How to use checksums |
9502876e04d5b7ff3fb336dbfeca3085bd1cda2efeae1e24354f1097218c1a42
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | younglion-0.1.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 570.4 kB |
| Tags | CPython 3.13 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
1bd717b7f2f51177f6c7479c2c4e398bef714727c3ad0e6626c1dc9c7e69aacf
|
|
BLAKE2b-256 checksum How to use checksums |
3129db26d8b3f5ea4a6309308fda520ed149b4b3747f4991896d3f2ec5addc59
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | younglion-0.1.1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 253.4 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1ca3c213a3fc33557c3c99449202d1dbcb4c37a05b22a9f147484618519761b9
|
|
BLAKE2b-256 checksum How to use checksums |
20b0d2cada708bff273877182ffcd53a617ad49b2c8d15b2d9a7d05de2f0b7af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp313-cp313-macosx_10_15_x86_64.whl
| Download URL | younglion-0.1.1-cp313-cp313-macosx_10_15_x86_64.whl |
|---|---|
| Size | 263.1 kB |
| Tags | CPython 3.13 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
ffd46572a72dc42544914a6117c9cde83a1047f8012d69184a65661593151682
|
|
BLAKE2b-256 checksum How to use checksums |
da9acca75c42011d2ef288f32b76d1874ae875183752e2f978fe7f2c2282f6b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp312-cp312-win_amd64.whl
| Download URL | younglion-0.1.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 471.2 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
668ea2454b9b3bc393f7e61104f63409d2687a66c69f549ee0b9372b34957b3e
|
|
BLAKE2b-256 checksum How to use checksums |
cf5aab10e5259dbbd660a9f2526f06448d16101cddb5bdaea1587f25e18eb7e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | younglion-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
683d2c9e062b27d77ff1bc027a27d50ccdb4f4b93ad97db0efc42cefab26def0
|
|
BLAKE2b-256 checksum How to use checksums |
cee54387c071c47ef606b7d8a5ab6d5a8b23cf13fb7b9c211ca7ccc403a4474f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp312-cp312-musllinux_1_2_aarch64.whl
| Download URL | younglion-0.1.1-cp312-cp312-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.12 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
3d0ccee327688307c81123ca6b31ec8e6de2d1ee5fb008f7e447790d1953de45
|
|
BLAKE2b-256 checksum How to use checksums |
1cf38491f170a3e38211a6c3f425b0b1685dee649cd0495f6af2b5b17fa6caff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | younglion-0.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 608.4 kB |
| Tags | CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
ee5c545d830d42244742541f8dafde45a9624f750ca62ae7de4add96fabadaae
|
|
BLAKE2b-256 checksum How to use checksums |
22e2fecf78611f6e70a77c3cf9d6b02f24a98104ebc253f087058f5d4e777c85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | younglion-0.1.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 570.4 kB |
| Tags | CPython 3.12 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
0b40d550c2ea4434eb019de981399a06e003134d2abbbe0c7d6a74761c6b54f9
|
|
BLAKE2b-256 checksum How to use checksums |
1cb0379e420c608e82c82a0985ba1604fce3614d8f860377f2e042d7f616754e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | younglion-0.1.1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 253.4 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
70e90cf025b22131ab537f5852110ea8cac028971f1b92493656b93f40dc4a91
|
|
BLAKE2b-256 checksum How to use checksums |
4959bcc9da36b213e05754ac31445d48b40f082949dc9309ff275bba67a07b37
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp312-cp312-macosx_10_15_x86_64.whl
| Download URL | younglion-0.1.1-cp312-cp312-macosx_10_15_x86_64.whl |
|---|---|
| Size | 263.2 kB |
| Tags | CPython 3.12 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
df294f8b9b9e76db6b9c9f14d8fc253bbb4e8a2b6cc2784348393ff6a7bb628f
|
|
BLAKE2b-256 checksum How to use checksums |
af617d803c1a4ee8000101469c18e15ad6f0a69c1b42ba58cfca50b348e482c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp311-cp311-win_amd64.whl
| Download URL | younglion-0.1.1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 471.2 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
05f8ea0d644f33f2abc5682bd7c458193d88b08a4b4a0752f84326d52292fa6f
|
|
BLAKE2b-256 checksum How to use checksums |
9c0c4046b79e6ac857d3c417ee341b22114403df3fc883d362650dfc27fd5aef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | younglion-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
ae6a5b60187905d7d96c473f9b00fd922846ed32b1b4a11858032f837971d8f4
|
|
BLAKE2b-256 checksum How to use checksums |
bb76f319b9bb1708edec48e9a1daa4f2f504b71faf7567458e294003acb77f29
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp311-cp311-musllinux_1_2_aarch64.whl
| Download URL | younglion-0.1.1-cp311-cp311-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.11 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
c5f51addb597ec249ad01e00f66876797d88d024e4475d0a250f76e3e705d813
|
|
BLAKE2b-256 checksum How to use checksums |
6ea9d784e6abd9cc23d046a23b1105aeb3d25e133e8d54bb1e70532990c4fcb0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | younglion-0.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 608.1 kB |
| Tags | CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
6d4d49325f144b9729b158bb62487f7f61cb15edb1330a79ebe6175ebdddb6f0
|
|
BLAKE2b-256 checksum How to use checksums |
42172b4aa47ae0eb7570470cfe1aa06de3f8dd12db45258dd9f01b2267614080
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | younglion-0.1.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 571.1 kB |
| Tags | CPython 3.11 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
f92669289f45b989391c0d33333abb77a88ff24d0dca59372f4482fd5a4c091c
|
|
BLAKE2b-256 checksum How to use checksums |
9f1dbc1e3c64acfbb0fa824c3bd2d1d03226c10676e916cff076ac8eeac36af0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | younglion-0.1.1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 252.9 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
68d42f28825e3363535ef01a1755255f693ba64a37cd2cd723e1b98fbde573ce
|
|
BLAKE2b-256 checksum How to use checksums |
a09a82ee89b09f2f796c52ff2bcca3145f0e361dccf70584a865de359ac4eb7a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp311-cp311-macosx_10_15_x86_64.whl
| Download URL | younglion-0.1.1-cp311-cp311-macosx_10_15_x86_64.whl |
|---|---|
| Size | 262.7 kB |
| Tags | CPython 3.11 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
ae67783429a9d16425b93b1e76abbbd2f5db26f71c50d379a8e280e9250ffc09
|
|
BLAKE2b-256 checksum How to use checksums |
0692915bafc8e6d43c868cfd347a2df724ebab195e093f260182e6b936cb85cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp310-cp310-win_amd64.whl
| Download URL | younglion-0.1.1-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 471.3 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
23cd4a4906944662ce25b0c8850cd1ba17aa6b6178fd652bed7266378981159c
|
|
BLAKE2b-256 checksum How to use checksums |
06da8d16651b077dc4e045f63407e7731514b4a72ef6c1e4c4287e5986d47bcb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp310-cp310-musllinux_1_2_x86_64.whl
| Download URL | younglion-0.1.1-cp310-cp310-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
7159ceada2ed98b44f6b6428260c915db4244df0dc6adb7bc704ee55ab0af033
|
|
BLAKE2b-256 checksum How to use checksums |
6b688db8e80c961cc87ffd9a8a01e4ab0ed195de063b4849ba3e9d3cd8ed9885
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp310-cp310-musllinux_1_2_aarch64.whl
| Download URL | younglion-0.1.1-cp310-cp310-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.10 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
d93df96a51da2d48c4c00eee774d28b0942d59e309e31dc9025a2478800bc66b
|
|
BLAKE2b-256 checksum How to use checksums |
941f861818bc334b0126b9d76f4bfb07d62869eae909e15bc9e6b9eeb5f5be81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | younglion-0.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 608.2 kB |
| Tags | CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
bad7b8597589c00b3d1403588db39b006e62e36f130749fe230c7e376dd408c0
|
|
BLAKE2b-256 checksum How to use checksums |
788d5928b25e79bfed580b29c7a255b1c5d853d367ce7587f1750ea827203024
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | younglion-0.1.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 570.9 kB |
| Tags | CPython 3.10 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
7b823b84d008613a93fe819740b9a646bbd0e00f66dee2d8ca427b0139591661
|
|
BLAKE2b-256 checksum How to use checksums |
c75781c2d7a894444d141a5a73927230e6741c3b29dccf8774033d48fe9c5e69
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | younglion-0.1.1-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 253.5 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
697610708ab40f6f08ac10ee3ef4e6ce9fcb2ad17f2f1902e19539878a34f780
|
|
BLAKE2b-256 checksum How to use checksums |
82d7a70d952053e98619a2dae00688a08ca3368d4d140abea641178aae831c6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / younglion-0.1.1-cp310-cp310-macosx_10_15_x86_64.whl
| Download URL | younglion-0.1.1-cp310-cp310-macosx_10_15_x86_64.whl |
|---|---|
| Size | 263.1 kB |
| Tags | CPython 3.10 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
3ea431ab80089575db28e516ebab2acfdd482298f68f02a910ba2f9a77a2cb63
|
|
BLAKE2b-256 checksum How to use checksums |
20b85424e8067ce53a582d7af980397f007d3fd979d5004b3281bc941a1599d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|