Skip to main content

ikat

CI GitHub Pages PyPI crates.io License: MIT License: Apache-2.0 Python Rust 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 .tex document.
  • Mermaid → TikZ (ikat._core.flowchart_to_tikz, Rust): the graph TD/LR flowchart subset, sequenceDiagram messages (->>/-->>) with alt/else/opt boxes, and stateDiagram-v2 states with [*] markers, --> transitions, and one level of composite boxes → a tikzpicture with 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 → tikzpicture code 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; below pins the under-axis row; the four corners and outside-right place 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) declares column or wide, overridable per element from Markdown.
  • Compile (ikat.compile): pdflatex/bibtex driver that turns the woven tree into PDF, with tectonic and texres engine options (compile_pdf(..., engine=...), --engine on the build/standalone CLIs 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 the tectonic binary (TECTONIC_EXE or 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 \documentclass and every package the woven body provably needs (tikz for diagrams, pgfplots for plots, graphicx for precompiled figures, tabularx for 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_override set 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 tlmgr fails (broken mirror/GPG — seen in the wild), install from a TeX Live archive instead: unpack systems/texlive/tlnet/archive/<pkg>.tar.xz, copy its tex/ tree into your texmf-local tree, run mktexlsr. That is how the dev setup gained IEEEtran and pgfplots. Windows alternative: MiKTeX Portable needs no admin rights and auto-installs missing packages at compile time (its own manager/mirrors); ikat's compile_pdf shells to pdflatex, 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)

Source distribution for ikat 0.12.0
File Size Uploaded Provenance
ikat-0.12.0.tar.gz 980.8 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for ikat 0.12.0
File
ikat-0.12.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-64 Details
ikat-0.12.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 Details
ikat-0.12.0-cp315-cp315-win_amd64.whl CPython 3.15 CPython 3.15 Windows x86-64 Details
ikat-0.12.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.17+ x86-64 Details
ikat-0.12.0-cp315-cp315-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 macOS 11.0+ ARM64 Details
ikat-0.12.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
ikat-0.12.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
ikat-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
ikat-0.12.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
ikat-0.12.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
ikat-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
ikat-0.12.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
ikat-0.12.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
ikat-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
ikat-0.12.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
ikat-0.12.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
ikat-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
ikat-0.12.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
ikat-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details

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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Security 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.

Select from 20 files

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 log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page