OC-Sidememory
Make an LLM remember semantic rules while it generates structured output.
Exact semantic memory for schema-constrained token generation in Rust and Python.
Why · Decision rule · Start here · Stateful rules · Patterns · Documentation
OC-Sidememory blocks tokens that violate stateful rules: duplicates, counted predicates, runtime membership, and cross-field relations.
Why OC-Sidememory?
Structure alone can still repeat an action:
{"actions":["search","search","search"]}
With semantic memory:
{"actions":["search","compare","answer"]}
Token acceptance rule
For guide state $\sigma$, token $x$, DFA decision $D$, and semantic decision $S$:
A(\sigma,x)=D(\sigma,x)\land S(\sigma,x)
The semantic layer can remove structurally valid candidates, but it cannot add new candidates:
M_{OC}=M_{DFA}\land\neg M_{deny}
What it enforces
| Capability | Behavior |
|---|---|
uniqueItems |
Rejects an exact duplicate in the current array instance |
contains |
Enforces minContains and maxContains over completed direct items |
| Captures | Compares a later property with an earlier property in declared order |
| Imported membership | Checks values against immutable, versioned sets |
| Exact equality | Handles numbers, decoded strings, arrays, and order-independent objects |
| Transactions | Makes probes pure and rejected advances atomic |
| Rollback | Restores bounded token checkpoints, including EOS |
Unsupported schema combinations fail during compilation. See the supported profile and limitations.
How uniqueness changes a mask
After completing "red" in a unique array:
| Layer | Next item candidates |
|---|---|
| Structural DFA | "red", "green", "blue" |
| Semantic guide | "green", "blue" |
Exact guarantees
| Symbol | Meaning |
|---|---|
| $v$ | Completed JSON value being checked |
| $C(v)$ | Canonical form of $v$ used for exact comparison |
| $H_a$ | Values already completed in array instance $a$ |
| $Q(v)$ | Whether $v$ matches the contains predicate |
| $c_a$ | Number of matching items in array instance $a$ |
| $l,u$ | Required minimum and maximum match counts |
| $r$ | Earlier captured value |
| $\mathcal{M}$ | Imported membership set |
| $\sigma$ | Current logical guide state |
| $x$ | Token being tested or committed |
| $P_x$ | Probe token $x$ without changing logical state |
| $T_x$ | Commit token $x$ |
| $R_k$ | Roll back $k$ committed tokens |
Uniqueness:
U(v)\iff C(v)\notin H_a
Counted contains predicate:
c_a=\sum_{i=1}^{n}\mathbf{1}[Q(v_i)],\qquad l\le c_a\le u
Exact equality:
E(v,r)\iff C(v)=C(r)
Imported membership:
I(v,\mathcal{M})\iff C(v)\in\mathcal{M}
Pure probe and rollback:
P_x(\sigma)=\sigma
R_k(T_{x_k}(\cdots T_{x_1}(\sigma)))=\sigma
Installation
Python:
pip install oc-sidememory
For the model-backed walkthrough:
pip install "oc-sidememory[transformers]"
Rust:
cargo add oc-sidememory
From a checkout:
uv sync
uv run maturin develop --release
Start here: prompt to guaranteed JSON
Qwen writes the plan. OC-Sidememory keeps the activities distinct.
import oc_sidememory
from transformers import AutoModelForCausalLM, AutoTokenizer
MODEL_ID = "Qwen/Qwen2.5-0.5B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
model = AutoModelForCausalLM.from_pretrained(MODEL_ID).cpu().eval()
schema = {
"type": "object",
"properties": {
"city": {"type": "string", "enum": ["Kyoto", "Paris", "Reykjavik"]},
"pace": {"type": "string", "enum": ["relaxed", "balanced", "busy"]},
"activities": {
"type": "array",
"items": {
"type": "string",
"enum": ["temples", "food tour", "museum", "hiking"],
},
"minItems": 3,
"maxItems": 3,
"uniqueItems": True,
},
},
"required": ["city", "pace", "activities"],
"additionalProperties": False,
}
prompt = """Create a balanced Kyoto itinerary.
Choose exactly three different activities from temples, food tour, museum, and hiking.
Return only the JSON object."""
messages = [
{"role": "system", "content": "Return only JSON matching the requested schema."},
{"role": "user", "content": prompt},
]
runtime = oc_sidememory.from_transformers(model, tokenizer)
generate = oc_sidememory.Generator(runtime, schema)
itinerary = generate(messages, max_new_tokens=128) # parsed dict, not JSON text
The model, tokenizer vocabulary, and compiled schema are reused. Each call gets independent semantic
state, so the same generator also accepts a batch of prompts or chats. Pass a Pydantic-compatible
type instead of schema to receive a validated instance.
Advanced: compile and drive a guide yourself
The facade uses the same public low-level objects. Use them directly when you need explicit probes, rollback, or control over token selection:
import json
import torch
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
input_ids = tokenizer(text, return_tensors="pt").input_ids
vocabulary = oc_sidememory.Vocabulary.from_transformers(tokenizer)
compiled = oc_sidememory.compile_schema(
json.dumps(schema), vocabulary, model.get_output_embeddings().weight.shape[0]
)
guide = oc_sidememory.SidememoryGuide(compiled)
generated = []
past_key_values = None
with torch.inference_mode():
for _ in range(128):
result = model(
input_ids=input_ids,
past_key_values=past_key_values,
use_cache=True,
)
past_key_values = result.past_key_values
allowed = torch.tensor(guide.get_tokens(), dtype=torch.long)
if allowed.numel() == 0:
raise RuntimeError("schema has no valid continuation")
logits = result.logits[0, -1]
token = allowed[torch.argmax(logits[allowed])].item()
guide.advance(token)
if token == vocabulary.get_eos_token_id():
break
generated.append(token)
if guide.is_accepting():
break
input_ids = torch.tensor([[token]])
else:
raise RuntimeError("generation exceeded max_new_tokens")
output = tokenizer.decode(generated)
itinerary = json.loads(output)
Output from the verified CPU run:
{
"activities": ["temples", "food tour", "museum"],
"city": "Kyoto",
"pace": "balanced"
}
Run the complete travel-itinerary example:
python examples/python/00_travel_itinerary.py
The decoding flow
prompt -> model logits -> OC-Sidememory valid token IDs -> choose token
-> advance model cache + semantic state -> repeat -> valid JSON
Generator compiles once per tokenizer/schema pair and creates one SidememoryGuide per sequence.
Compose stateful rules
One guide can enforce all of these:
actionsmust contain three distinct values and include"answer";customermust exist in an immutable allowlist loaded for this request;confirmationmust exactly match the earlierrequest_id, even when numbers use different valid JSON spellings such as1and1.0.
Prompt:
Build an action plan for customer cust_7 and assign a numeric request ID.
Use search, compare, and answer exactly once. Repeat the request ID in confirmation.
Return only the JSON object.
schema = {
"type": "object",
"properties": {
"request_id": {"type": "number"},
"customer": {"type": "string"},
"actions": {
"type": "array",
"items": {"enum": ["search", "compare", "answer"]},
"minItems": 3,
"maxItems": 3,
"uniqueItems": True,
"contains": {"const": "answer"},
},
"confirmation": {"type": "number"},
},
"required": ["request_id", "customer", "actions", "confirmation"],
"additionalProperties": False,
}
extensions = {
"version": 1,
"objects": [{
"schemaPath": "$",
"propertyOrder": ["request_id", "customer", "actions", "confirmation"],
"captures": [{"name": "rid", "sourceProperty": "request_id"}],
"relations": [
{
"targetProperty": "customer",
"operator": "memberOf",
"import": "live_customers",
},
{
"targetProperty": "confirmation",
"operator": "equal",
"capture": "rid",
},
],
}],
}
imports = {
"identity": "customer-snapshot",
"version": "catalog-v1",
"data": {"live_customers": ["cust_7", "cust_9"]},
}
generate_plan = oc_sidememory.Generator(
runtime, schema, extensions=extensions, imports=imports
)
plan_messages = [
{"role": "system", "content": "Return only JSON matching the requested schema."},
{
"role": "user",
"content": "Build an action plan for cust_7. Use search, compare, and answer exactly "
"once, and repeat the numeric request ID in confirmation.",
},
]
plan = generate_plan(plan_messages, max_new_tokens=160)
Run the complete model-backed version:
python examples/python/06_customer_action_plan.py
A verified run produced:
{
"request_id": 1234567890,
"customer": "cust_7",
"actions": ["search", "compare", "answer"],
"confirmation": 1234567890
}
Patterns you can ship
| Product pattern | Schema and memory recipe | What cannot slip through |
|---|---|---|
| Agent tool plan | uniqueItems + contains |
Repeated tools or a plan missing a required action |
| Product bundle | uniqueItems + counted contains |
Duplicate products or the wrong category mix |
| Account selection | Imported memberOf |
An ID outside the request's authorized snapshot |
| RAG answer | Imported memberOf on the selected citation |
A citation ID that was not retrieved |
| Two-field confirmation | Capture + exact equal relation |
A confirmation value differing from its source |
| Exclusion workflow | Imported notMemberOf |
A blocked or previously consumed value |
| Beam search/backtracking | Pure probe + bounded rollback |
Semantic state leaking from an abandoned branch |
Validate candidates without running a model
The same guide validates tokenized candidates:
schema = {
"type": "array",
"items": {"type": "string", "enum": ["red", "green", "blue"]},
"minItems": 3,
"maxItems": 3,
"uniqueItems": True,
}
compiled = oc_sidememory.compile_schema(json.dumps(schema), vocabulary, tokenizer.vocab_size)
guide = oc_sidememory.SidememoryGuide(compiled)
valid = tokenizer.encode('["red","green","blue"]', add_special_tokens=False)
duplicate = tokenizer.encode('["red","red","blue"]', add_special_tokens=False)
assert guide.accepts_tokens(valid, finish=True)
assert not guide.accepts_tokens(duplicate, finish=True)
accepts_tokens, probe, advance, and mask construction use the same Rust transition routine.
Python does not contain a second semantic validator.
Command-line interface
oc-sidememory capabilities
oc-sidememory compile --schema schema.json --vocabulary vocabulary.json
oc-sidememory check --schema schema.json --vocabulary vocabulary.json \
--tokens tokens.json --finish
Commands emit versioned JSON. Vocabulary files store token bytes as base64, so token data does not need to be UTF-8. See the CLI reference.
Performance
Mask latency depends on candidate count, token bytes, emitted events, predicate work, equality work, and current semantic history. Recorded release-mode measurements and their environment are in docs/performance.md. They are engineering measurements, not universal throughput claims.
Documentation
| Guide | Subject |
|---|---|
| Architecture | Ownership, transitions, journals, and rollback |
| Python API | Compilation, guides, imports, masks, and exceptions |
| Rust API | Core construction, lifecycle, and error types |
| Extensions v1 | Ordered captures and relations |
| Imported memory | Identity, canonicalization, and lifetime |
| Supported profile | Implemented schema surface |
| Limitations | Explicit boundaries and non-goals |
The example ladder covers uniqueness, contains, capture equality, imported membership, and composed rollback using public APIs.
Development
cargo fmt --all --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-features
uv run pytest -q
Deterministic correctness tests require no model or network. See CONTRIBUTING.md and SECURITY.md.
Provenance and license
OC-Sidememory is independently developed from an Apache-2.0 outlines-core source import and is
not endorsed by its upstream authors. See PROVENANCE.md,
MODIFICATIONS.md, NOTICE, and LICENSE.
Metadata
Release files for oc-sidememory 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| oc_sidememory-0.1.2.tar.gz | 164.0 kB | Details |
Built distributions (wheels)
Total release size: 26.4 MB
Release files / oc_sidememory-0.1.2.tar.gz
| Download URL | oc_sidememory-0.1.2.tar.gz |
|---|---|
| Size | 164.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ebdd807f3d2788784c62ae432d5fcd199659d69c78359d5556fa9ad3ef08b12f
|
|
BLAKE2b-256 checksum How to use checksums |
dae19a9a80a0036ff10135f99fcf1f6d8bac5b6d7ef8d4de12a251608128d692
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_sidememory-0.1.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3 |
|
SHA-256 checksum How to use checksums |
cbecf0472bcf444b63c8d3340134cefb5ce023920db651d2962b9bcfb47ee816
|
|
BLAKE2b-256 checksum How to use checksums |
42fcb95481df80383eac47e40d4a0c6b24bedf6e2fd2becd6819692af02ab905
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_sidememory-0.1.2-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
4e6845bc0e3cc174f91e0852abf16fd6e0e77021f9b5e6989a833507539a6870
|
|
BLAKE2b-256 checksum How to use checksums |
ef6d12bffc227157a016d3a254c2bfbb59d06fe51c24423bf0fc5bfb391c2d5a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_sidememory-0.1.2-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.15 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
0802378f399899bfaa7834f91b5241f216754653fc3140649f4ffd67113bb5e4
|
|
BLAKE2b-256 checksum How to use checksums |
2e444019a1714aa86f8bf19f0f03dd703bec86916b300b4a8557a5c559424c5c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_sidememory-0.1.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
2dc54ad069e60be735679451e8f4e9d421c72934f9ebffe78acdd560abc5eba3
|
|
BLAKE2b-256 checksum How to use checksums |
d5dc8c27aba0b8cf320655f6c1e56bb1024cf64f1a22cd0b60ebee7d7ac059a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-cp314-cp314-win_amd64.whl
| Download URL | oc_sidememory-0.1.2-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
6b0ba41b249f497d8a46f1d7ddf5c673d3f63ea7bee2806e5a5f3ea2022d7f5d
|
|
BLAKE2b-256 checksum How to use checksums |
e21c0489a5b324d1852d878ee537428f87e185478806f2334a3ac75b2e73a0c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_sidememory-0.1.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
fca1735f73d7df1eabd288ed6aee654ce798ac9dcc9043873614ff4194ac4fbc
|
|
BLAKE2b-256 checksum How to use checksums |
2d455ed229dfa3152a8da01bcb63a4c0cfae5104b3a1095acfff0751342d1b57
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | oc_sidememory-0.1.2-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.3 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
cbb07374f9218f2c3a9afaabce2ff16502c061f0cbb22b6e06b93999a0d9b046
|
|
BLAKE2b-256 checksum How to use checksums |
35e8d87139a72aad2f1f23380c9c1bf5fc060a84799c03ecf38ded9c73856fce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-cp313-cp313-win_amd64.whl
| Download URL | oc_sidememory-0.1.2-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f1968a3fb376f17e6f9c6a7a96fb601e427c12a3d8fb4fb7aa7ff309394266b3
|
|
BLAKE2b-256 checksum How to use checksums |
5ba57807e3036756ae7fb9d07b772d932ea1425efd8b8b380b953bbe510c3183
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_sidememory-0.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
7debaa9de26a5e7833b609c9c31866e571c565b9acb1eff633f330aa6864d3ae
|
|
BLAKE2b-256 checksum How to use checksums |
b6a1c1b3defc879417158d46f90c4fbaabe4838571533fc8e423fa574208fb1d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | oc_sidememory-0.1.2-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.3 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
217b3babf95e025b9f522d55daa5c350e1aefd565202d7c282652fc58d75b21e
|
|
BLAKE2b-256 checksum How to use checksums |
55b8de7ac5bdd0e18f2cee59ab5fbcf0e2fee25e8871018bf51fab0c36ab55f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-cp312-cp312-win_amd64.whl
| Download URL | oc_sidememory-0.1.2-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d5f55af2738f644dcf76efb6a0cfda7aaee05323c34a2a281a6f72a7a6694e94
|
|
BLAKE2b-256 checksum How to use checksums |
efcafe76c86777020ba98a8968208a71ca455b7557b55921a58b241450b07d98
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_sidememory-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
d883108e424d28064624db9f53881e1b072b2398b650766a2223872c55b39c7c
|
|
BLAKE2b-256 checksum How to use checksums |
1be74a89a875d2418ef6933bc8e117323c48015d858f84ecdb4854f91c420486
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | oc_sidememory-0.1.2-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.3 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
bb02e543b5a1733cbddd3301415b80d04fbd3b0c9aff2d9052bc737414dea4e4
|
|
BLAKE2b-256 checksum How to use checksums |
508d4663e5db56bca9a432210304566fdd41de5ec65d7c29c0189263317df2bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-cp311-cp311-win_amd64.whl
| Download URL | oc_sidememory-0.1.2-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ea961b630e334570e56db21defeff51c8ff628c9b1d7e440d85dd378fc1341aa
|
|
BLAKE2b-256 checksum How to use checksums |
7cd9efae7410ac3013e1ac15c81d9b606c512e8b96a83c52f988df60ed6b77f1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_sidememory-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
afcb373b3d41eb8755c533af4a987a6683e29c37767021206266f044caf381f5
|
|
BLAKE2b-256 checksum How to use checksums |
526785d7790b8675966a4801c554fe36812580ca5f74c675bb49fb0908b036d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | oc_sidememory-0.1.2-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.3 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0bd035eee58d8186fc1243b275d6ab47e3ec2bcbe73380f258b4679ed4d9e378
|
|
BLAKE2b-256 checksum How to use checksums |
d08c9f208ab8f8e3dbe8d7c8124327553f5e5d2ba00a2b7740d5fd3765ed3a7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-cp310-cp310-win_amd64.whl
| Download URL | oc_sidememory-0.1.2-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c0074a1db0931ec41f2bdf025f1d5702c2e02f496ecc3dac95a82581d759e9a1
|
|
BLAKE2b-256 checksum How to use checksums |
ad06f7017c024a6b67f508aeacdc00c0294bdc56588acac87616fa7f0b4c9916
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / oc_sidememory-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | oc_sidememory-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
0fe53e9f00c44a3e6909f7602de714ed729ecde52edc71281fc5ba65d77b9486
|
|
BLAKE2b-256 checksum How to use checksums |
a58b6e9c3c4e14bc0a4d3c3832282d359a25a2f69380be04dae46c2a35a5efae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency log