ikat
Weave Markdown into camera-ready LaTeX. ikat is an md→tex/pdf
pipeline whose compute core is Rust (via PyO3/maturin) with thin Python
wrappers: Markdown documents go in, conference-ready PDFs come out, and
every figure is generated — never screenshotted.
The name is a fabric pattern: in ikat weaving, threads are patterned before they reach the loom, so the design is carried by the material itself. Likewise, an ikat document carries its figures as data and diagram source: the pipeline weaves them into TikZ/pgfplots at build time, set in the document's own fonts. No matplotlib, no pasted PNGs, no font mismatch between text and figures.
What it does
- Markdown → LaTeX (
ikat.pipeline): headings, tables, citations, code, footnotes, and fenced elements → a complete.texdocument. - Mermaid → TikZ (
ikat._core.flowchart_to_tikz, Rust): thegraph TD/LRflowchart subset,sequenceDiagrammessages (->>/-->>) withalt/else/optboxes, andstateDiagram-v2states with[*]markers,-->transitions, and one level of composite boxes → atikzpicturewith deterministic layout. Dispatch is on the header line; every grammar is strict (unknown statements are string errors). No Node.js, no browser, no SVG round-trip. - Data → pgfplots (
ikat._core, Rust): bar charts with min/max whiskers, log axes, line plots →tikzpicturecode compiled by your LaTeX installation, so figure fonts always match the paper. Legend placement is a keyword:auto(default) tries the inside corners against the drawn data and falls back below the axis;belowpins the under-axis row; the four corners andoutside-rightplace it by hand. Anything else is a build error. - Per-element spanning (
ikat.toml): one/two-column layout is not global — each element kind (diagram, plot, table) declarescolumnorwide, overridable per element from Markdown. - Compile (
ikat.compile):pdflatex/bibtexdriver that turns the woven tree into PDF, withtectonicandtexresengine options (compile_pdf(..., engine=...),--engineon thebuild/standaloneCLIs and the example builders). The tectonic crate as an optional cargo feature (off by default) is Linux-only by design: its C/C++ XeTeX core builds through pkg-config, which has no answer where no system C libraries exist; CI compiles the embed on ubuntu (cargo test --features tectonic). The supported path everywhere is thetectonicbinary (TECTONIC_EXEor PATH; CI pins 0.17.0 by checksum), and the Python cascade falls back to it automatically wherever the embedded binding is absent. Wheels stay lean (feature off).
Install
pip install ikat # wheels: CPython 3.10-3.15, PyPy 3.11 (win/mac/linux)
pip install "ikat[mcp]" # + the stdio MCP server extra
The wheel is self-sufficient for everything that does not render
PDF: weaving to LaTeX on stdout (ikat weave), mermaid/TikZ and
pgfplots emission, layout suggestions, package checks, templates,
skeletons, and the skills installer. PDF output additionally needs
a TeX distribution with pdflatex on PATH —
TinyTeX is the lightweight default;
skip the classic toolchain entirely with --engine texres (a
one-binary Rust TeX distribution:
LaTeX + packages + fonts + BibTeX bundled, fully offline) or
--engine tectonic (a tectonic
binary, bundle fetched on first run). Once a distribution exists,
ikat check --install fetches the exact packages a document needs
(see LaTeX requirements for the full table).
Showcase paper
Read the ikat showcase paper (PDF), or browse its Markdown source and build instructions.
Layout
ikat/
src/ Rust core (19 modules, pyo3 bindings in lib.rs):
md.rs (block splitter on pulldown-cmark, line
numbers), mermaid.rs (flowcharts), sequence.rs
(sequenceDiagram), state.rs (stateDiagram-v2),
emit.rs (shared TikZ emission), table.rs,
plot.rs (pgfplots + legend auto-placement),
preset.rs (bar/line JSON presets),
doc.rs (head/body assembly, author front matter),
mathwidth.rs (TeX-calibrated display-math width),
esc.rs (unicode/citations), config.rs (ikat.toml),
autolayout.rs (float measuring + policy),
layout.rs (shared 2D geometry),
texenv.rs (package scan), tectonic.rs (engine),
error.rs (line/column errors), md_spike.rs
(parser-spike harness, tests only)
python/ikat/ thin wrappers: pipeline.py (fences/spans/floats),
document.py (BuildSpec assembly), compile.py
(pdflatex/tectonic driver), texenv.py
(kpsewhich/tlmgr), cli.py (`ikat` script),
mcp_server.py (FastMCP stdio), layout.py
(suggest/apply/report for auto-layout),
preset.py (chart preset files), standalone.py
(single-fence figures), registry.py (one source
of truth for CLI/MCP/API tools + the skill
installer), templates/ (9 heads + skeleton-plain),
skills/ (Agent Skills: ikat guide, ikat-api,
ikat-cli, ikat-mcp — bundled in the wheel, served
as MCP resources)
tests/ pytest suite incl. the surface drift tests
(commands/flags/tools/skills pinned to the code)
docs/ ARCHITECTURE.md, QUICKREF.md, ROADMAP.md,
CHANGELOG.md, RESEARCH.md, FORMAT-DRAFT.md, PLAN-dev.md
examples/ mini.md starter + ikat-paper/ showcase (7-page
paper built by ikat itself), auto-proof/ (the
layout-bench corpus + the auto-layout showcase,
byte-identical to the hand build),
bench_fetch.py (downloads the bench cache),
plot/float/skeleton/heads proof scripts
site/ this website (index.html + assets incl. the
showcase PDF, check_links.py)
.github/ ci.yml (3-OS matrix + tex proofs), pages.yml
(site validate + link gate + deploy), release.yml
(tag-triggered PyPI/crates publish)
Develop
Requires Rust (cargo) and Python ≥ 3.10.
uv venv .venv && uv pip install -p .venv maturin pytest
VIRTUAL_ENV=$PWD/.venv maturin develop
.venv/Scripts/pytest tests/ # windows
cargo test # Rust unit tests
LLM agent surface: API, MCP, CLI, skills
Use ikat programmatically through its Python API, automate it with the CLI, or connect the optional stdio MCP server as agent tools. The repo also includes focused Python API, CLI, and MCP skills, plus a general ikat guide. These interfaces use the same Rust-backed pipeline; the skills guide the agent but do not install or run ikat.
Same core operations across API, CLI, and MCP. Python API is the reference;
the CLI and MCP server call it directly (ikat[mcp] pins mcp>=1,<2).
ikat build doc.md --toml ikat.toml --outdir out --ensure-packages
ikat weave doc.md --spec spec.json > doc.tex # tex to stdout, no TeX needed
ikat check doc.tex [--install] # missing packages (-> exit 1)
ikat templates | ikat template arxiv --show-preset
ikat skeletons | ikat skeleton skeleton-plain
printf 'graph TD\na[x]-->b[y]\n' | ikat flowchart -
echo '{"title":"t",...}' | ikat barchart - [--legend top-left]
ikat standalone fig.md --out fig.pdf # one mermaid|chart fence → PDF
ikat layout doc.md --toml ikat.toml [--apply] # suggest span/pos/width, no TeX
ikat skills install [--dest DIR…] [--force] # bundle the agent skills
ikat help [--json] [COMMAND] # command list / flags / registry JSON
ikat version
--spec is BuildSpec JSON (diagrams/plots/table_captions/authors/
affiliations/author_affils + opt-in authors_max collapse, bib_style/…;
unknown keys ignored). MCP server over stdio:
python -m ikat.mcp_server
// Claude Desktop / pi client config
{ "mcpServers": { "ikat": {
"command": "/path/to/.venv/Scripts/python.exe",
"args": ["-m", "ikat.mcp_server"],
"cwd": "/path/to/ikat" } } }
| operation | Python API | CLI | MCP tool |
|---|---|---|---|
| weave document | build_document / build_from_paths |
ikat build / weave |
weave_document |
| flowchart | flowchart_to_tikz |
ikat flowchart |
flowchart_to_tikz |
| bar chart | barchart_to_tikz / load_preset |
ikat barchart (JSON or --preset, --legend) |
barchart_to_tikz (preset_json=) |
| line plot | lineplot_to_tikz / load_preset |
ikat lineplot (JSON or --preset, --legend) |
lineplot_to_tikz (preset_json=) |
| standalone | compile_standalone / wrap_standalone / fence_to_tikz |
ikat standalone |
standalone_figure (.tex only) |
| auto-layout | suggest_layout / apply_layout / layout_report |
ikat layout [--apply] |
suggest_layout (advisory; plots report-only) |
| check packages | check_tex_env |
ikat check |
check_tex_packages |
| install packages | ensure_tex_packages |
ikat check --install |
ensure_tex_packages |
| templates | list_templates / template_path / template_preset |
ikat templates / template |
list_templates / get_template |
| skeletons | list_skeletons / template_path |
ikat skeletons / skeleton |
list_skeletons / get_skeleton |
compile_pdf stays out of MCP (workdir-bound, minutes-long);
drive it from the CLI.
Floats: span, position, width
Every floatable element (diagram, picture, plot, table) takes
{...} attributes on its fence — tables via a %% table {...}
comment on the line above:
```mermaid {span=column pos=both width=0.8}
%% table {pos=barrier}
| attr | values | default |
|---|---|---|
span |
column | wide |
per-kind [spans] (picture falls back to diagram) |
pos |
top | bottom | both([!tb]) | page | here | force([H]) | barrier |
[floats] pos_default (top) |
width |
fraction of span (0.8) or TeX length (5cm) |
span width |
captionpos |
top | bottom |
figures bottom, tables top |
Hard LaTeX rules are build errors, not log mysteries: figure*
with here/force is illegal (use span=column); wide+bottom
auto-loads dblfloatfix; force/barrier auto-load
float/placeins (generated head) or are required in template
heads (validated). Document-wide tuning lives in [floats]
(fractions, counters, barrier_sections, pos_default) and is
emitted only when non-default — default documents weave
byte-identically.
Templates
The generated preamble fits the common case; journals are not
the common case. [template] in ikat.toml hands you the head
(level 1) or the whole document (level 3):
[template]
preamble_file = "journal-head.tex" # replaces the generated head
preamble_append = ["\\usepackage{natbib}"] # extra lines before \\begin{document}
preamble_file(resolved relative to the toml) replaces everything before\begin{document}— class, packages, title, author. The body tail (\maketitle… bibliography …\end{document}) stays generated.- Safety over silence: ikat validates the replacement carries a
\documentclassand every package the woven body provably needs (tikzfor diagrams,pgfplotsfor plots,graphicxfor precompiled figures,tabularxfor tables). A head that drops one fails fast naming it, instead of dying in a TeX log. - Path-based builds resolve it for you:
build_from_paths(md, toml, spec);spec.preamble_overrideset directly beats the toml value.
Shipped library
Nine starting heads in ikat/templates/ (each documents its
companion config). Tokens {{{title}}}, {{{author}}} and
{{{thanks}}} fill from the manuscript H1 + spec author/thanks;
an emptied \\thanks{} is dropped (it kills IEEEtran titles).
| name | class | bib_style | needs flag |
|---|---|---|---|
arxiv |
article 11pt, arXiv-safe | IEEEtran | — |
article-1col / -2col |
article + geometry | IEEEtran | — |
article-3col |
article + multicol (all spans column) | IEEEtran | — |
ieee-conference |
IEEEtran conference (the generated default, explicit) | IEEEtran | — |
acm-sigconf |
acmart sigconf (no hyperref/lmodern/geometry: class-owned) | ACM-Reference-Format | abstract first |
springer-llncs |
llncs runningheads | splncs04 | — |
elsevier |
elsarticle preprint | elsarticle-num | abstract first |
aps |
revtex4-2 (title+authors ride AfterEndPreamble; no tabularx: REVTeX clashes) | apsrev4-2 | abstract first |
abstract_before_maketitle = true (in [template]) hoists the
body's abstract env before \\maketitle for top-matter classes
(ACM, Elsevier, APS set the abstract in the title block — a late
abstract is silently dropped, proven by probe). template_preset(name)
returns each head's bib_style + toml snippet:
from ikat import template_path, template_preset
preset = template_preset("elsevier")
# {'bib_style': 'elsarticle-num', 'toml': '[template]\nabstract_before_maketitle = true\n'}
Every head is compile-proven locally (abstract + TikZ + table
through pdflatex, title/abstract text verified in the PDF);
examples/headsproof.py re-runs the proof. Publisher classes
were installed from TeX Live archives into the local texmf tree
(same trick as IEEEtran/pgfplots) — on a full TeX Live they just
work. Heads are starting points, not submissions: always verify
against the publisher's proof.
Level 3: whole-document skeletons
skeleton = "paper-skel.tex" (in [template], mutually
exclusive with preamble_file) replaces the WHOLE document —
head and tail. The skeleton is complete .tex with tokens:
| token | fills from |
|---|---|
{{title}} {{author}} {{thanks}} |
as level 1 (brace them: \title{{{title}}}; empty \thanks{} drops) |
{{body}} |
woven body — required exactly once |
{{bibliography}} |
bib style + name — required exactly once unless bib_name is empty (biblatex skeletons print refs themselves) |
{{abstract}} |
the whole woven abstract env — required exactly once when the manuscript has one (needs abstract_before_maketitle) |
Unknown {{word}} tokens and duplicates are build errors;
% comments may document tokens freely (counting and rendering
skip them). Package validation scans the whole skeleton, and
preamble_append splices before \begin{document} as usual.
This unlocks multicol wraps, per-journal tails, and biblatex —
whatever the generated tail cannot express. skeleton-plain.tex
(article + the tokens, placeins/float preloaded) is the
starting point, compile-proven to PDF; level-1 heads stay the
recommended path.
LaTeX requirements
ikat emits standard LaTeX; it never bundles classes or packages.
The pdflatex engine needs a working TeX installation (and
bibtex if you stage a .bib); the texres engine bundles
its own archive (this table applies to the pdflatex path). TeX Live scheme-full covers everything;
minimal schemes (TinyTeX included) need at least:
| what | packages | needed when |
|---|---|---|
| base document | amsmath amssymb tabularx graphicx hyperref lmodern textcomp + your document class (IEEEtran, …) |
always |
| inline diagrams | pgf (tikz) + TikZ libraries shapes.geometric arrows.meta positioning |
any woven tikzpicture |
| data plots | pgfplots (compat 1.18) |
any woven axis environment |
Precompiled-PDF figures need nothing beyond the base set — one reason to prefer them for journal submissions.
tlmgr install amsmath amssymb tabularx graphicx hyperref lmodern \
textcomp pgf pgfplots IEEEtran
Ask ikat what a given body needs instead of guessing:
from ikat import tex_requirements
tex_requirements(has_tikz=True, has_plots=False)
# ['\\usepackage{tikz}',
# '\\usetikzlibrary{shapes.geometric,arrows.meta,positioning}']
The document builder does this automatically: build_document
scans the woven body and injects only the packages it contains.
Never debug a missing .sty by hand again — the texliveonfly-style
helper probes any .tex preamble and installs what's absent:
from ikat import check_tex_env, ensure_tex_packages
check_tex_env(open("doc.tex").read())
# {'missing': ['pgfplots.sty'], 'unprobed': [], 'ok': False, ...}
ensure_tex_packages(open("doc.tex").read()) # tlmgr install + re-probe
compile_pdf(workdir, main, ensure_packages=True) runs the same
check before compiling and raises with a fix-it hint (manual
texmf install or MiKTeX Portable) instead of a cryptic TeX error.
Notes:
- If
tlmgrfails (broken mirror/GPG — seen in the wild), install from a TeX Live archive instead: unpacksystems/texlive/tlnet/archive/<pkg>.tar.xz, copy itstex/tree into your texmf-local tree, runmktexlsr. That is how the dev setup gainedIEEEtranandpgfplots. Windows alternative: MiKTeX Portable needs no admin rights and auto-installs missing packages at compile time (its own manager/mirrors); ikat'scompile_pdfshells topdflatex, so it works unchanged. - arXiv's TeX Live ships everything above, so an ikat bundle
(
.tex+.bbl+ figure PDFs, no class/style files) compiles there as-is.
License
MIT OR Apache-2.0.
Metadata
Release files for ikat 0.12.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 | Provenance | |
|---|---|---|---|---|
| ikat-0.12.0.tar.gz | 980.8 kB | With provenance | Details |
Built distributions (wheels)
Total release size: 29.9 MB
Release files / ikat-0.12.0.tar.gz
| Download URL | ikat-0.12.0.tar.gz |
|---|---|
| Size | 980.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2401d27044e3e1d7eb2ed939214f9be708cd6de9a4871640f8cab896b518af7b
|
|
BLAKE2b-256 checksum How to use checksums |
e8228da3fdf69c2c098bc777a28c0c9bc25ec021c4f3f27b21f0b0fb3b3f6c89
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | ikat-0.12.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3 |
|
SHA-256 checksum How to use checksums |
478aec1a57bdc95803efe8604669e20960298e31ff5a6b829e57c39e751b7532
|
|
BLAKE2b-256 checksum How to use checksums |
a63d319417e730a404b546ba19a2ef759fc9b162b8428e2b590972242175d3df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | ikat-0.12.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
bdb98ebb4cd9592370ba7cd0556f6b3cc7309ff17eeafdb578559043a08f64d7
|
|
BLAKE2b-256 checksum How to use checksums |
0f2c1b62e5ca838d7d038ca289436db701adc5ca6b2c3ae8ccc3960e0f76c5ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp315-cp315-win_amd64.whl
| Download URL | ikat-0.12.0-cp315-cp315-win_amd64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.15 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a16ee01e6d516db7d8afa5fbf9d35e1fc4cbac611e744cd1a0555d78eb96f7c8
|
|
BLAKE2b-256 checksum How to use checksums |
d625123321e7e87fd045dc8c6c1c2328b8216054610dbf3b4c961adf441c9eba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | ikat-0.12.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.15 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
a7ed53a54c926ba60f688073d9bca8d00fd77f179affaa5e2b3b705d7b32a1d5
|
|
BLAKE2b-256 checksum How to use checksums |
fc2d6b5139c7482b5b943cf8b4374f4da741effaf628c505450e9bd4b25d03ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp315-cp315-macosx_11_0_arm64.whl
| Download URL | ikat-0.12.0-cp315-cp315-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.15 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
f7e271f08f45a4b27a1468156bcac574966652091748cf94722f8febae9062b2
|
|
BLAKE2b-256 checksum How to use checksums |
3cee7ea5e3b665679cae3faa00186027fce8ef413a70325cceb48ca5445e4803
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | ikat-0.12.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
ca582a6e4c517a7191112c414444024a5bf4908ae8d972f0317614b40fc104c3
|
|
BLAKE2b-256 checksum How to use checksums |
8ff547609fa86752a3b6d8902477f2aa83deadfbe4bf6a19180233f8738b0234
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp314-cp314-win_amd64.whl
| Download URL | ikat-0.12.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
de791c2b3eb59605004a3acac43fe148f2dc1377f52c59a60c2eb395d3b19860
|
|
BLAKE2b-256 checksum How to use checksums |
d056f6d619f18034a2e9102f15bbce78e4d2c020d14fc59ae92953313f536430
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | ikat-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
4e1a8477a6bbfb38d42f85c93f1a764843c79cff793e3655d2200edb2edf0eec
|
|
BLAKE2b-256 checksum How to use checksums |
67fa79c468f7a8696da6d6502d0ea7443a24ce921e42197f5774ea0d1182c4c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | ikat-0.12.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
be7af10a002761630d8d81a0deb9a19d4253c9e45d1e7e6b059a58cc74469ff5
|
|
BLAKE2b-256 checksum How to use checksums |
0b5a1cd94b57e52586c79e62070baff38a2e9c1ba6aafd5f683a12b2003f3fe7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp313-cp313-win_amd64.whl
| Download URL | ikat-0.12.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b70b9a853ec0ab5c131e81ac4806af148236452698af3607e9e440d223b217d2
|
|
BLAKE2b-256 checksum How to use checksums |
d777c4ec326393f50ad9afa65d8dd434cf6b4f8dabe8206ab18b44efc5a0c703
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | ikat-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
2603d3ce4fa9256b8a2548518046f906a6c98abe64b643deb83f09d9ca1024f3
|
|
BLAKE2b-256 checksum How to use checksums |
99844127a7e0e33ad533edd1786cc8fbbfe9b38acbe55d213048bd63f73bc0ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | ikat-0.12.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ac27d9798722590aaa1cd646baf891b23633892bd576d907bff70389e5c0cbec
|
|
BLAKE2b-256 checksum How to use checksums |
a59a681bf82a5dcaccb791a6e00372f7a025e938a1d65b8a8b77a36c1414755e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp312-cp312-win_amd64.whl
| Download URL | ikat-0.12.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
46c8b3aa45fc9231d272fad96d72dec93ada7cf61d9fb3570e473bedf2893cdb
|
|
BLAKE2b-256 checksum How to use checksums |
5df12a3ece60b308d0c1a6f721464db648e934642d5c3f679abc545f0013d6d2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | ikat-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
d93b12c561d065e512f3c91021cc69f6965cabd862d14101791f2a360df668e4
|
|
BLAKE2b-256 checksum How to use checksums |
5d67665c98f82d3adc14c3c68a6d321c803d41d5e27dda7fca10112a3e0a8653
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | ikat-0.12.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e4be1b65f7708031e6e4d3deb33427f37b024bd89f7f3a1cbeb08045ecb5700f
|
|
BLAKE2b-256 checksum How to use checksums |
b996aefafd6054eac4f07e4b329c018a9ebbd4726548d63baa5def8c31f7ddd6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp311-cp311-win_amd64.whl
| Download URL | ikat-0.12.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
5136490047edef1f881e64ded66aeb73854e2a4f6a7be79cd29a09afd173a79c
|
|
BLAKE2b-256 checksum How to use checksums |
119924bb8fd33f2c71f73c006f23bceeddc114e0f90e10fca02af6cef35ed4a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | ikat-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
4cc8a54c110b2370683ce3b9e0f7c275ae57ee1633abb499c725f0c5ede75b44
|
|
BLAKE2b-256 checksum How to use checksums |
1fbbd91465e164ea004fde6c94c05d978668b0c599f269b10ebb177e50759a50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | ikat-0.12.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d609d570bfbe30414af7103a42aa36eebd79874844a5fed79914eb46843ad65d
|
|
BLAKE2b-256 checksum How to use checksums |
78c8071541e59a5a0c5b95f8cbbeeabd1f79d00d8a52e7b91780247e06e67a8d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / ikat-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | ikat-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
a3b4f21612e1f8af40105d0ed3550871b063f51eea31aaf2cd125d46f9a61661
|
|
BLAKE2b-256 checksum How to use checksums |
38e1af47ee279de8c1f04fba1ab5515d7101380881da54cf08c9bc4852535579
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logSecurity for ikat 0.12.0
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.
Full provenance
All 20 files in this release have been uploaded with provenance metadata.
Attestation for ikat-0.12.0.tar.gz
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 Oct 27, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.