knolo — legacy v3-compatible runtime
Compatibility status: legacy v1–v3 Python reader/query profile. The v4 container, analyzer profiles, retrieval plans, receipts, and TrustBench equivalence are currently implemented in TypeScript first.
knolo is the pure-Python runtime for mounting existing .knolo packs and running deterministic lexical queries locally.
It is intentionally release-scoped for the legacy compatibility profile:
- local-first retrieval
- deterministic lexical retrieval
- no vector database
- no embeddings on the default query path
- no Python pack builder
- no LangChain or LlamaIndex integration
- no Node.js runtime dependency for mount/query
- not certified as v4-equivalent in
conformance/
Packs are still built with @knolo/core in TypeScript, then mounted and queried from Python.
Install
From this package directory:
python -m pip install -e ".[dev]"
For a normal install, omit the extra:
python -m pip install .
Query
from knolo import mount_pack, query
pack = mount_pack("tests/fixtures/simple.knolo")
hits = query(pack, "alpha beta", top_k=5)
for hit in hits:
print(hit.block_id, hit.score, hit.text)
You can also mount bytes directly:
from pathlib import Path
from knolo import mount_pack_from_bytes
pack = mount_pack_from_bytes(Path("tests/fixtures/simple.knolo").read_bytes())
Release Readiness
The package publishes from GitHub release events via Trusted Publishing. No secret-based PyPI credentials are required in CI.
Before a release, run:
python -m pytest
python -m build
python -m twine check dist/*
A manual upload fallback is still available when needed:
python -m twine upload dist/*
See RELEASE.md for the release checklist.
Fixture Regeneration
The committed fixture at tests/fixtures/simple.knolo is what tests use, so the test suite does not need Node.js at runtime.
To regenerate the fixture from the checked-in corpus, run the root helper script from the repo root:
node scripts/regenerate-python-fixture.mjs
The script reads tests/fixtures/corpus/intro.md, runtime.md, and other.md, then rewrites the committed binary fixture. Pass --check to verify that the committed bytes match the corpus without rewriting.
API
The public package exports:
mount_pack(source)mount_pack_from_bytes(data)query(pack, q, ...)KnoloErrorInvalidPackErrorPackStatsPackMetaPackQueryOptionsHittokenize()normalize()__version__
Current Scope
- No Python pack builder yet
- No semantic reranking
- No embeddings or vector database integration on the default path
- No Node.js runtime dependency at query time
- No LangChain or LlamaIndex adapters in this package
Release files for knolo 4.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| knolo-4.0.0.tar.gz | 12.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| knolo-4.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size:20.5 kB
Release files / knolo-4.0.0.tar.gz
| Download URL | knolo-4.0.0.tar.gz |
|---|---|
| Size | 12.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1eaa0817ed0300c8e6708864312ae6dfc4b95cc2812119ac45e1abbfa58cfe91
|
|
BLAKE2b-256 checksum How to use checksums |
6dabc55b2af45a9841f0a3cebf17819b354c3513c051feac349c2e870b913068
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|
Release files / knolo-4.0.0-py3-none-any.whl
| Download URL | knolo-4.0.0-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
74961fc5f7f43a65fd517ec6b54aef0de03435d963ae7ade19b109323f4ad280
|
|
BLAKE2b-256 checksum How to use checksums |
110779ab9250f0488f957baf92e22d9817347db5588eb5c6a9c94d76c1a3172d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|