Skip to main content

Lokit

PyPI Downloads

The fastest and highest performing localization library.


Supports Python 3.10+.


Unlike legacy tools that wrap XML DOM element trees in memory, Lokit ingests localization formats (.lokit, TMX, XLIFF, PO, XLSX, CSV, JSON, HTML, IDML, DOCX, and PPTX) into one strict structural data model. This enables parsing, robust data manipulation, semantic extraction, and translation-memory features without coupling applications to a source format. Lokit emphasizes bounded streaming and asynchronous processing for large files.


This format type can be easily converted to JSON for interchange with other systems. I've made parsing and data transfers as native as possible by capturing all elements of traditional interchange formats in a common format structure. This allows for much better compatibility, especially in terms of segment matching and leveraging as it uses flattened strings as standard. Tags are preserved but as a common format, meaning the structure parsed from XLIFF will be the same as the structure parsed from HTML.


These legacy file formats have supported vendor-lock in for many year, making it difficult for any client to move to another system. Seeing that this is a major issue across the domain, something new is needed where vendors do not use hidden, legacy technology to lock in their clients. Localization deserves innovation. Lokit is the first open source package that supports direct localization interchange to database ingestion; even outside the Python ecosystem.



The main premise here is a common, structured and type-safe dataclass model structure that is intentionally compatible with any file format, not just localization interchange formats, although these are optimized for performance and memory efficiency due to the verbose nature of XML based formats.


The TMX, XLIFF, and .lokit paths require the native Rust parser included in every wheel. They do not fall back to a second Python file parser. The Python projection layer remains strictly typed and is compiled with mypyc in release wheels.


Core Features


Lokit provides a comprehensive suite of tools for managing localization data:

  • Native Structural Modeling: Converts interchange formats into a strict, unified Python Data classes, ensuring complete type safety.
  • Advanced Matching Engine: Provides Exact Matching, Fuzzy Matching (via SequenceMatcher), and In-Context Exact (ICE) Matching leveraging previous and next segment context, as well as with inline tags.
  • Sub-segment Extraction: Automatically parses and isolates inline tags, properties, and formatting markers, allowing for safe manipulation of text without corrupting code.
  • Semantic Querying: Easily filter translation units using any attribute, exact ID lookups, or deep nested JSON path querying (where()).
  • Plural Support: Native extraction and structuring of pluralized translation units, compatible with UI frameworks.
  • Universal Format Conversion: Instantly import and export between any supported format (e.g., TMX to JSON, HTML to XLIFF) with zero data loss.
  • Sparse Native Interchange: Round-trip every Lokit model field within explicit v1 safety bounds through the versioned, no-null, streamable .lokit format.
  • Synchronous and Asynchronous Streaming: Process massive enterprise files natively using Python async generators to keep memory overhead to an absolute minimum.
  • Native DOCX & PPTX Support: Using C# extensions without external dependencies ensuring no overhead and no data loss.

Type Safety and C-Extensions


The entire library is very strictly typed and mypy compliant, so strict it compiles to C-extensions via mypyc and pre-attached via wheels. Additionally, any XML processing uses C-based packages. Compiling to these extensions has shown a 23% in overall performance increases over pure-python modules with additional benefits such as lower memory usage. C extensions are standard for MacOS (ARM+Intel), Windows, and Linux.


Parsing Performance


When dealing with enterprise-scale localization environments, parsing performance and memory efficiency are paramount. Lokit is designed to be significantly leaner and faster than the industry standard. Current benchmarks show much higher performance than any other localziation library in any other language for parsing localization files.


Benchmarks

To demonstrate converting common file types between localization interchange files, the following shows performance metrics against comparable tools in other programming languages. This parsing stress test used the sequence DOCX -> CSV -> XLIFF -> TMX -> CSV -> XLIFF -> DOCX with a monolingual source.

Language Library Total Time (s) Peak Memory (MB)
Python Lokit 4.29 393.39
Rust quick-xml + csv 23.11 26.66
Go encoding/xml + encoding/csv 23.63 61.88
Node.js sax 29.9 36.11
Java Okapi Framework 463.15 952.68

Using another package, `translate-toolkit`, as a reference as it is the de-facto and feature-rich standard for localization file format parsing and conversion in Python for comparison, we benchmarked lokit's modules against its equivalents. In a stress-test benchmark on a +600 MB `.TMX` file containing over **550,000 segments**, converting to normalized JSON file over 3 iterations yielded the following comparative averages:
Library Avg Duration Peak Memory Memory Efficiency
lokit 13.57s 135.9 MB 15x Less Memory
translate-toolkit 20.30s 2,034.5 MB ~2.0 GB

Tests for both covered from TMX to JSON with inline tag sanitization in both using the respective packages' tooling.


The major focus on memory safety allows for parallel processing of events, making it suitable for large-scale localization workflows and backend systems.


Note: this package is not a replacement or substitution for the already amazing translate-toolkit. The functionality is quite differet across both libraries and have their own use cases.



SDK Usage Reference


Lokit operates around a central BaseStructure dataclass model, which standardizes localization units and segments. This instructs better standardization and branching in a more language native way compared to XML based file formats. Parsing SDKs are added for both extraction and export tasks for localization interchange formats along with common file types.


Installation


Install lokit via pip:

pip install lokit-python

Basic Parsing and Conversion


Converting files synchronously is straightforward through the modular lokit API. Import the package once, then use lokit.parse and lokit.parse.write.

import lokit

document = lokit.parse.tmx("path/to/source.tmx")
document = lokit.parse.lokit("path/to/catalog.lokit")
document = lokit.parse.docx("path/to/document.docx")
document = lokit.parse.pptx("path/to/presentation.pptx")
documents = lokit.parse.files(["memory.tmx", "catalog.xliff", "messages.po"])

lokit.parse.write.xliff(document, "path/to/target.xliff")
lokit.export.lokit(document, "path/to/catalog.lokit")
document.export.csv("path/to/target.csv")

PO parsing defaults to standard Gettext semantics, where msgid is the source and msgstr is the translation. Catalogs that use msgid as a stable key can select the translated text as the source explicitly; .pot files are detected as source templates:

catalog = lokit.stream.po("path/to/fr.po", mode="msgid_as_id")
template = lokit.parse.po("path/to/messages.pot", mode="auto", progress=False)

The equivalent explicit standard mode is mode="msgid_as_source". Both modes are available on parse, stream, and async PO entry points. The native streaming reader accepts up to 1 MiB of content per physical PO line and 16 MiB of cumulative raw input per logical entry, returning a located parse error when either safety limit is exceeded.

Runtime and inline placeholders

Every parse, stream, async, and detected-file entry point projects runtime variables and native inline codes by default. Ordered, collision-safe tokens such as {LOKIT_P1} make the strings safe to send to machine translation while the exact original code and its position remain in the unit's tag graph:

from lokit.placeholders import PlaceholderSyntax

document = lokit.stream.po(
    "path/to/messages.po",
    placeholder_syntaxes=(PlaceholderSyntax.PYTHON_BRACE,),
)

# Restore the original variables/tags (the default) or deliberately keep the
# generic tokens as literal output for an MT-oriented intermediate file.
document.export.xliff("path/to/restored.xliff")
document.export.xliff("path/to/projected.xliff", resolve_placeholders=False)

Set runtime_placeholders=False or inline_placeholders=False to opt out independently. The Rust scanner recognizes Gettext format families as well as ICU MessageFormat, Unicode MessageFormat 2, Fluent, Mustache/Handlebars, ECMAScript templates, shell parameters, Swift interpolation, Rust formatting, and related standard syntaxes. Translation-memory matches compare a canonical placeholder graph and, when compatible, reform the returned translation to the query source's current placeholder names.

PowerPoint extraction includes slides, speaker notes, slide masters, used slide layouts, notes and handout masters, comments, charts, SmartArt/diagrams, document metadata, alt text, and hidden slides by default. Each area can be disabled independently for parsing, streaming, and export:

from lokit.office import OfficeExportOptions, OfficeImportOptions

parse_options = OfficeImportOptions(
    include_speaker_notes=False,
    include_comments=False,
    include_document_metadata=False,
)
presentation = lokit.parse.pptx(
    "path/to/presentation.pptx",
    options=parse_options,
)

presentation.export.pptx(
    "path/to/translated.pptx",
    options=OfficeExportOptions(include_speaker_notes=False),
)

Native .lokit interchange

.lokit is Lokit's lossless interchange format for the documented BaseStructure domain. It uses a compact, line-oriented syntax inspired by TOON's readability, but it is a distinct localization schema. Missing optional values are omitted instead of encoded as null; present empty strings, zeroes, and empty optional objects remain distinguishable and round-trip exactly. Version 1 represents signed 64-bit integers and limits canonical physical lines to 1 MiB; out-of-domain values fail explicitly and never replace an existing output.

@lokit 1
document {
  source_locale = "en-US"
  target_locale = "fr-FR"
}
unit "home.title" {
  source = "Welcome"
  target = "Bienvenue"
  status = translated
}

All three API styles are available in synchronous and asynchronous form:

import lokit

document = lokit.parse.lokit("messages.lokit")
stream = lokit.stream.lokit("messages.lokit")
lokit.export.lokit(document, "copy.lokit")


async def copy_catalog() -> None:
    units = [unit async for unit in lokit.parse.async_.lokit("messages.lokit")]
    await lokit.export.async_.lokit(document, "async-copy.lokit")
    assert units

Full consumption closes async readers automatically. For an intentional early exit, use the returned bounded bridge as an async context manager so its reader is closed immediately:

async with lokit.stream.async_.lokit("messages.lokit") as units:
    async for unit_id, data in units:
        print(unit_id, data.source)
        break

The complete grammar, field mapping, canonicalization rules, and compatibility policy are in docs/lokit-format.md; implementation decisions are in docs/lokit-architecture.md, and reproducible measurements are in docs/lokit-performance.md. The standalone Rust language server and editor setup are documented in tools/lokit-lsp/README.md.

Dictionary projections

Interchange dictionary rows are separate from JSON-i18n documents and from newline-delimited JSON output. lokit.stream.to_dict yields rows lazily; lokit.parse.to_dict materializes the same rows. The default schema is source_language, target_language, source, target, and domain, and a multilingual unit yields one row per target locale in document order.

import lokit
from lokit.types import DictField, StringMode

rows = lokit.parse.to_dict("messages.tmx")

for row in lokit.stream.to_dict(
    "messages.xliff",
    target_language="fr",
    strings=StringMode.RAW,
    fields=(
        DictField.UNIT_ID,
        DictField.SOURCE_LOCALE,
        DictField.TARGET_LOCALE,
        DictField.SOURCE,
        DictField.TARGET,
        DictField.DOMAIN,
    ),
):
    print(row)

StringMode.SANITIZED returns plain text. StringMode.RAW reconstructs the source-format inline XML, including original tag names, attributes, and inline payloads. The asynchronous equivalents are lokit.stream.async_.to_dict and lokit.parse.async_.to_dict. Existing JSON-i18n parsing remains available as lokit.parse.json_i18n; use lokit.stream.write_jsonl when a JSONL file is the desired output.

Splitting multilingual documents

Materialized documents split into independent single-target models. A one-shot streaming document uses a context manager backed by bounded native .lokit spools, so it never duplicates the source iterator or retains the whole import in memory.

from pathlib import Path

import lokit

document = lokit.parse.tmx("multilingual.tmx", progress=False)
for locale, localized in document.split_targets().items():
    localized.export.xliff(Path("out") / f"messages-{locale}.xliff")

stream = lokit.stream.xliff("multilingual.xliff")
with stream.split_targets(include_missing=False) as localized_streams:
    for locale, localized in localized_streams.items():
        localized.export.lokit(Path("out") / f"messages-{locale}.lokit")

The streaming split files are valid only inside the context. Pass an explicit tuple of target locales to either split_targets method to select a subset.


Asynchronous Streaming for Large Interchange Files


For files spanning hundreds of megabytes, parsing the entire DOM structure into memory is inefficient. Lokit supports stream-parsing natively.


Here is a complete scripting example. It can be reduced to a few lines, but the wrapper functions make each stage explicit. The stream APIs keep document-level attributes such as language codes immutable while yielding translation units incrementally. The other parsers use the same common typed model.

import asyncio
import os

import lokit

input_dir = "data/language_tmx"
output_dir = "data/out"


async def convert_to_json(filepath: str):
    print(f"Starting: {filepath}")
    output = f"{output_dir}/{os.path.splitext(os.path.basename(filepath))[0]}.json"
    await lokit.stream.async_.write_jsonl(
        filepath=filepath,
        output=output,
    )
    print(f"Completed: {output}")


async def process():
    if not os.path.exists(output_dir):
        os.makedirs(output_dir, exist_ok=True)

    files = [os.path.join(input_dir, i) for i in os.listdir(input_dir)]
    tasks = [convert_to_json(filepath=file) for file in files]
    await asyncio.gather(*tasks)


if __name__ == "__main__":
    asyncio.run(process())

Advanced Querying and Matching


The Lokit logic wrapper provides access to the powerful matching engine and data manipulation features. This does not substitute for enterprise database semantic search but can be used as an after-step for evaluating matching results after retrieving translation units from a semantic/vector database.

import lokit

engine = lokit.Lokit.parse("path/to/source.xliff")

button_units = engine.where("extensions.component", "checkout_button")

results = engine.fuzzy_find("Complete your purchase", limit=5, threshold=0.75)
for match in results:
    print(f"Match found: {match.unit_id} (Score: {match.score})")

ice_match = engine.match(
    source="Submit",
    target_unit_id="submit_btn_1",
    previous_source="Enter your email",
    require_context=True
)

Structured API Paths

The preferred public API is available from a single package import:

import lokit

document = lokit.parse.file("path/to/source.tmx")
documents = lokit.parse.files(["path/to/source.tmx", "path/to/source.xliff"])
document = lokit.parse.lokit("path/to/source.lokit")
document = lokit.parse.csv("path/to/source.csv", source_locale="en-US")
document = lokit.parse.docx("path/to/source.docx")
streamed_tmx = lokit.stream.tmx("path/to/source.tmx")
streamed_lokit = lokit.stream.lokit("path/to/source.lokit")
streamed_docx = lokit.stream.docx("path/to/source.docx")


async def stream_to_json() -> None:
    await lokit.stream.async_.write_jsonl("path/to/source.tmx", "path/to/out.jsonl")

lokit.parse.write.csv(document, "path/to/target.csv")
lokit.export.lokit(document, "path/to/target.lokit")
document.export.xliff("path/to/target.xliff")
document.export.docx("path/to/translated.docx", source_docx="path/to/source.docx")


async def export_xlsx() -> None:
    await lokit.parse.write.async_.xlsx(document, "path/to/target.xlsx")

CsvExtractor = lokit.parsers.extractors.csv

Predefined conversions live under lokit.quick_parse for fast one-liner conversions:

import lokit

stats = lokit.quick_parse.tmx_to_csv("path/to/source.tmx", "path/to/target.csv")
lokit.quick_parse.csv_to_xliff("path/to/source.csv", "path/to/target.xliff")

PostgreSQL API

Lokit is the first localization package to have native support for storing translations in local and enterprise databases. Fast and effeciant TM matching is also included out of the box.

Here's an example of how easy it is to ingest and use the TM database:

import lokit


async def load_and_match() -> None:
    tm = await lokit.database.connect("postgresql://localhost/lokit_tm")
    async with tm:
        await tm.setup()

        stream = lokit.stream.tmx("translation_memory.tmx")
        await tm.load(stream)

        results = await tm.match(
            source="Roses are red",
            source_locale="en-US",
            target_locale="fr-FR",
            limit=5,
            threshold=0.5,
        )
        print(results[0].unit_id, results[0].kind, results[0].score)

The database stores plain source and target text in PostgreSQL, uses pg_trgm for exact and fuzzy lookup, and reconstructs Lokit Data objects with tags, comments, metadata, and adjacent context. This supports plain-string matching with tag and metadata propagation.

The stable row serializers and ordered schema statements are public for custom SQL loaders and migration tools such as Alembic:

from alembic import op

from lokit.database import database_schema_statements

for statement in database_schema_statements(partitioned=True):
    op.execute(statement)
import lokit
from lokit.database import iter_serialized_units

document = lokit.stream.tmx("translation_memory.tmx")
for serialized in iter_serialized_units(document, project="checkout", domain="web"):
    unit_row = serialized.unit
    tag_rows = serialized.tags

lokit.database.serialization also exports the typed insert/fetch row models, serialize_unit, and deserialize_unit for integrations that own their SQL execution and retrieval lifecycle.


Enterprise Database Support

With the above local database ingestion and runtime logic, Lokit has direct connection APIs to external enterprise services. Currently supporting AWS (RDS & Aurora), GCP (Cloud SQL & AlloyDB) along with serverless platforms Supabase and Neon. Pipeline is support and enabled by default but configurable. Dual read and write URIs are also accepted for maximum performance while a single URI can still be used for simplicity or where it is not supported in the service used.

The API includes a full backend framework for handling localization database operations including matching, tag, pluralization and properity propigation, read and writes, and concurrent data handeling to and from the database server. All in async and with concurrency where supported by the service.

Lokit can handle direct streaming from legacy interchange formats to enterprise databses with complete customization, no hidden dependencies, no boilerplate and highly optimized data flows.

Lokit is the first ever package to support this in any language ecosystem.

import lokit

tm_rds = await lokit.database.connect(
    "postgresql://user:pass@instance.rds.amazonaws.com:5432/tm?sslmode=require"
)

tm_aurora = await lokit.database.connect(
    "postgresql://user:pass@cluster.rds.amazonaws.com:5432/tm?sslmode=require",
    reader_uri="postgresql://user:pass@cluster-ro.rds.amazonaws.com:5432/tm?sslmode=require"
)

tm_gcp = await lokit.database.connect(
    "postgresql://user:pass@/tm?host=/cloudsql/project:region:instance"
)

tm_supabase = await lokit.database.connect(
    "postgresql://postgres.project-ref:pass@aws-0-region.pooler.supabase.com:6543/postgres?sslmode=require",
    pipeline=False
)

tm_neon = await lokit.database.connect(
    "postgresql://user:pass@ep-cool-darkness-123456.us-east-2.aws.neon.tech/tm?sslmode=require",
    pipeline=False
)


Supported Formats for Parsing


  • TMX
  • XLIFF
  • PO/POT
  • XLSX
  • CSV
  • JSON
  • HTML
  • IDML
  • DOCX
  • PPTX


Learn More

Visit the official homepage at lokit.org, more detailed documentation is to come before the V1 release.

Metadata

Release files for lokit-python 0.5.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lokit-python 0.5.3
File Size Uploaded
lokit_python-0.5.3.tar.gz 494.6 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for lokit-python 0.5.3
File
lokit_python-0.5.3-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
lokit_python-0.5.3-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
lokit_python-0.5.3-cp314-cp314-macosx_12_0_x86_64.whl CPython 3.14 CPython 3.14 macOS 12.0+ x86-64 Details
lokit_python-0.5.3-cp314-cp314-macosx_12_0_arm64.whl CPython 3.14 CPython 3.14 macOS 12.0+ ARM64 Details
lokit_python-0.5.3-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
lokit_python-0.5.3-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
lokit_python-0.5.3-cp313-cp313-macosx_12_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 12.0+ x86-64 Details
lokit_python-0.5.3-cp313-cp313-macosx_12_0_arm64.whl CPython 3.13 CPython 3.13 macOS 12.0+ ARM64 Details
lokit_python-0.5.3-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
lokit_python-0.5.3-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
lokit_python-0.5.3-cp312-cp312-macosx_12_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 12.0+ x86-64 Details
lokit_python-0.5.3-cp312-cp312-macosx_12_0_arm64.whl CPython 3.12 CPython 3.12 macOS 12.0+ ARM64 Details
lokit_python-0.5.3-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
lokit_python-0.5.3-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
lokit_python-0.5.3-cp311-cp311-macosx_12_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 12.0+ x86-64 Details
lokit_python-0.5.3-cp311-cp311-macosx_12_0_arm64.whl CPython 3.11 CPython 3.11 macOS 12.0+ ARM64 Details
lokit_python-0.5.3-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
lokit_python-0.5.3-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
lokit_python-0.5.3-cp310-cp310-macosx_12_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 12.0+ x86-64 Details
lokit_python-0.5.3-cp310-cp310-macosx_12_0_arm64.whl CPython 3.10 CPython 3.10 macOS 12.0+ ARM64 Details

Total release size: 173.1 MB

Release files / lokit_python-0.5.3.tar.gz

Download URL lokit_python-0.5.3.tar.gz
Size 494.6 kB
Tags Source
SHA-256 checksum
How to use checksums
440e5198cdce7d0e7e397dc3147567d3b36abdda7be35a0783616ee18ec20fd9
BLAKE2b-256 checksum
How to use checksums
811d25d65b49b29efc409060773fe9c62cd032bdea9177dd6c167a81f2beaa6d
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp314-cp314-win_amd64.whl

Download URL lokit_python-0.5.3-cp314-cp314-win_amd64.whl
Size 8.0 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
6831933c3c5859a48db55ec395e219de6daf9dbced5a2c6213a937ba2006d69e
BLAKE2b-256 checksum
How to use checksums
e82129ff1513cc796f174d311303d067d47344e30e7a1bb536ad0d20f6d5d6bf
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL lokit_python-0.5.3-cp314-cp314-manylinux_2_28_x86_64.whl
Size 9.4 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1515f1451ac043ab7103e874f0e2818819b512a14e2326ff3a2ed863234740c4
BLAKE2b-256 checksum
How to use checksums
be1152e3a9bbcc0250dd9c1a6625a104c93c1634f47306ac940e6b38390ebf56
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp314-cp314-macosx_12_0_x86_64.whl

Download URL lokit_python-0.5.3-cp314-cp314-macosx_12_0_x86_64.whl
Size 9.1 MB
Tags CPython 3.14 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
0f72a353b65b509b6130fe02066e45151239cee1480a006cfe0664d06fc12fe4
BLAKE2b-256 checksum
How to use checksums
3e3339d70b9578274a8fbc8d4eab3f138d89d5b78ab8e9f4da1e1d94b38d24aa
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp314-cp314-macosx_12_0_arm64.whl

Download URL lokit_python-0.5.3-cp314-cp314-macosx_12_0_arm64.whl
Size 8.3 MB
Tags CPython 3.14 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
b3408e8cfc5713923e9b003c4caf9cff5298ffc735b937be82813f7438107485
BLAKE2b-256 checksum
How to use checksums
8db91fd7031efba632556ea38a2c6366e9b802e88968a26cfa444abd7095dc30
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp313-cp313-win_amd64.whl

Download URL lokit_python-0.5.3-cp313-cp313-win_amd64.whl
Size 7.8 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
6370de4e70591c9f6076a82128849194e4eade07abf0cefeb6be2405d65f0ce1
BLAKE2b-256 checksum
How to use checksums
274effa8812a8f2c0eb785a1dd9e6324e6a010f0d64b718f0f222ecfb69ed671
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL lokit_python-0.5.3-cp313-cp313-manylinux_2_28_x86_64.whl
Size 9.4 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
23f26b20aa4bcc69832da0ded55954414c95f464bfa1553eec2f07bdc3f6c573
BLAKE2b-256 checksum
How to use checksums
d1d7c4c1c273a0803a3445969f64559269ea1c6380870c113ad06fb4fd19bc75
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp313-cp313-macosx_12_0_x86_64.whl

Download URL lokit_python-0.5.3-cp313-cp313-macosx_12_0_x86_64.whl
Size 9.1 MB
Tags CPython 3.13 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
6088da1ba6d6cb41a84d16e17add25caa7b6f09f5d74ab78799c4c2f90dc6dc3
BLAKE2b-256 checksum
How to use checksums
28baded6e160e9e75f57b82f113c2e92b6be4608fda30abdd965458f0417516e
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp313-cp313-macosx_12_0_arm64.whl

Download URL lokit_python-0.5.3-cp313-cp313-macosx_12_0_arm64.whl
Size 8.3 MB
Tags CPython 3.13 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
ccaddcbe990cf74822be6fd96a30c420eccc717e526788e2876bf6db06e9b27a
BLAKE2b-256 checksum
How to use checksums
308c7d1812382a019b08dfd646d919d5aa6432eb91fe0ed3c027d16476cc179c
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp312-cp312-win_amd64.whl

Download URL lokit_python-0.5.3-cp312-cp312-win_amd64.whl
Size 7.8 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
a6bd1fefcc56b174f09d7a7cd3b89adad9dbc9a90a062c8257152543f4a20d00
BLAKE2b-256 checksum
How to use checksums
ed573cdbfffda925fd3ab91a18e03f21f54a272bc893263e138debd74c6b74aa
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL lokit_python-0.5.3-cp312-cp312-manylinux_2_28_x86_64.whl
Size 9.4 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3c5857d17e642b33a851b50e622853d33702b1d799e83e7447f1bf5f92cb6178
BLAKE2b-256 checksum
How to use checksums
a6cdb777db99249da48e876b3319ff6beaf4394ebe794d8266262e8c94ff4303
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp312-cp312-macosx_12_0_x86_64.whl

Download URL lokit_python-0.5.3-cp312-cp312-macosx_12_0_x86_64.whl
Size 9.1 MB
Tags CPython 3.12 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
77b0113d0eb708a41f562ac6e71b01531aa9406ab3a88ee32cacde5b7064b5b0
BLAKE2b-256 checksum
How to use checksums
3d42b2ca3142ee4b6c911b1c867279496969724e7179067dfa543b8c41ba5313
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp312-cp312-macosx_12_0_arm64.whl

Download URL lokit_python-0.5.3-cp312-cp312-macosx_12_0_arm64.whl
Size 8.4 MB
Tags CPython 3.12 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
abfd4d86fdc7410df8bf11213e6889d800d9f4bcb3683c95d4f482afb12d66ce
BLAKE2b-256 checksum
How to use checksums
0859f16ffa7d80468dfd5806386447baf604f2d76e0d11916980fdcec5e71722
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp311-cp311-win_amd64.whl

Download URL lokit_python-0.5.3-cp311-cp311-win_amd64.whl
Size 7.7 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
cbb4ece73c2e710381f86538c3358176b4670b7e3e39f077c840577fbc1a91fd
BLAKE2b-256 checksum
How to use checksums
2cf909e65c46987ba68236d0d0bf73a17410fe9de5cd04142305ef1a6bcf7eb3
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL lokit_python-0.5.3-cp311-cp311-manylinux_2_28_x86_64.whl
Size 9.3 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
95a75c411da0bbdbef88c85fc42c1f7c059211b6fae1c3dfe487d085b2088f62
BLAKE2b-256 checksum
How to use checksums
571b5b1c3070215dfa931326336adaf12c9fd0095317ea3347c1076fe7ea539f
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp311-cp311-macosx_12_0_x86_64.whl

Download URL lokit_python-0.5.3-cp311-cp311-macosx_12_0_x86_64.whl
Size 9.0 MB
Tags CPython 3.11 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
79ac5c83a48905f90818d6ee7f668887763ffce857ba7aabb53f50fa10d1a3d7
BLAKE2b-256 checksum
How to use checksums
950575fbcc4ea7b9b21a19998be6ddbfd77044caeab029afe48578e31d3e9a2f
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp311-cp311-macosx_12_0_arm64.whl

Download URL lokit_python-0.5.3-cp311-cp311-macosx_12_0_arm64.whl
Size 8.3 MB
Tags CPython 3.11 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
312bb039e111efac77b1705a16dd79bd592358d7a9b3e63639393943541c92f3
BLAKE2b-256 checksum
How to use checksums
d7f8e871cf5e7df7ad9367a50b0a1f738a2b2f4669e8ec20507fd6628b278d52
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp310-cp310-win_amd64.whl

Download URL lokit_python-0.5.3-cp310-cp310-win_amd64.whl
Size 7.8 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
5ccf0f3ae73d566b9c87560462aea8f038da2e4227528f1a0cad7dafd5fda04f
BLAKE2b-256 checksum
How to use checksums
8bad82d21c0b65785fec8ae0af80b6cd5b9960d3a5bb073894db25c52549c6f1
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL lokit_python-0.5.3-cp310-cp310-manylinux_2_28_x86_64.whl
Size 9.3 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7590a731d82f248426bcd6c88f19be189ecfb03e49f8460cb61bdc2ba00f15bc
BLAKE2b-256 checksum
How to use checksums
127aa19522289d4808e212aedcea4cada50f70f6126e6d1cd1e01d0b666053fe
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp310-cp310-macosx_12_0_x86_64.whl

Download URL lokit_python-0.5.3-cp310-cp310-macosx_12_0_x86_64.whl
Size 9.0 MB
Tags CPython 3.10 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
a2ba46f859f304c34da5a8b942cf1571a6b439999cfdce04eb3aec319d3807e7
BLAKE2b-256 checksum
How to use checksums
85946b27bf4bb4f4f29398398b3bd7995faa4ec16200a3f2293ec61b4934daea
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 3, 2026.

Transparency log

Release files / lokit_python-0.5.3-cp310-cp310-macosx_12_0_arm64.whl

Download URL lokit_python-0.5.3-cp310-cp310-macosx_12_0_arm64.whl
Size 8.3 MB
Tags CPython 3.10 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
898418389d5925e9897ff4741f314e406ca65bcec985d3dc4b15b19408ba7a75
BLAKE2b-256 checksum
How to use checksums
c7910e4565e11c4bb2ec6ed1c73230c0fcc5b8713bb79221db9fcc48df3cbba5
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 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.3 This release

21 release files

0.5.2

21 release files

0.5.1

21 release files

0.5.0

21 release files

0.4.1

21 release files

0.4.0

21 release files

0.3.2

26 release files

0.3.1

26 release files

0.2.2

11 release files

0.1.3

11 release files

0.1.2

11 release files

0.1.1

11 release files

0.1.0

11 release files

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