Skip to main content

Python localization toolkit for parsing, converting, and matching TMX, XLIFF, PO, JSON, HTML, CSV, XLSX, IDML, DOCX, and PPTX. Includes direct translation memory database ingestion.

Project description

Lokit

PyPI Downloads

The fastest and highest performing localization library.

[!WARNING] Beta Release: lokit is currently in Beta. The API is volatile and subject to rapid, breaking changes prior to the official V1 release.


Supports Python 3.10+.


Unlike legacy tools that wrap around XML DOM element trees in-memory, lokit represents a shift away from XML-based localization interchange formats towards native language parsing. It ingests localization formats (TMX, XLIFF, PO, XLSX, CSV, JSON, HTML, IDML, DOCX, PPTX) and compiles them into a strict, unified structural data model. This enables not just parsing, but robust data manipulation, semantic extraction, and advanced translation memory features out-of-the-box. Lokit focuses on streaming and asynchronous processing rather than synchronous events using in-memory 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.


Note: This project was originally written in Rust and is still unreleased. Adding Rust extensions did not show a major performance improvement over the current C-Extension modules due to bridging overheads, this will be re-addressed in future releases. SDKs in other languages including the Rust prototype are coming soon.


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.
  • 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 filetypes between localization interchange files, the following shows the performance metrics agains the most similar tools used in other programming languages. This was a parsing stress test in this order: docx->csv->xliff->tmx->csv->xliff->docx. A monolingual source was used for this benchmark.

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.docx("path/to/document.docx")
document = lokit.parse.pptx("path/to/presentation.pptx")

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

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's some simple scripting code to show how easy it is. This simple program has no boilderplate and can be reduced to a few lines of code, but for the purpose of showcasing, we added some wrapper functions. The stream APIs take the static attributes such as language codes, keeping them in an immutable state. Then quickly streams the mutables. All other parsing modules also use streaming to parse to and from the common typed format.

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_.json(
        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")
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_docx = lokit.stream.docx("path/to/source.docx")


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

lokit.parse.write.csv(document, "path/to/target.csv")
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/fuzzy lookup, and reconstructs lokit Data objects with tags, comments and metadata along with adjecent context. This allows for plan string matching with tag and metadata propagation.


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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lokit_python-0.3.2.tar.gz (136.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

lokit_python-0.3.2-cp314-cp314-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.14Windows x86-64

lokit_python-0.3.2-cp314-cp314-win32.whl (1.2 MB view details)

Uploaded CPython 3.14Windows x86

lokit_python-0.3.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

lokit_python-0.3.2-cp314-cp314-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

lokit_python-0.3.2-cp314-cp314-macosx_10_15_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

lokit_python-0.3.2-cp313-cp313-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.13Windows x86-64

lokit_python-0.3.2-cp313-cp313-win32.whl (1.2 MB view details)

Uploaded CPython 3.13Windows x86

lokit_python-0.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

lokit_python-0.3.2-cp313-cp313-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

lokit_python-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

lokit_python-0.3.2-cp312-cp312-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.12Windows x86-64

lokit_python-0.3.2-cp312-cp312-win32.whl (1.2 MB view details)

Uploaded CPython 3.12Windows x86

lokit_python-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

lokit_python-0.3.2-cp312-cp312-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

lokit_python-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

lokit_python-0.3.2-cp311-cp311-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.11Windows x86-64

lokit_python-0.3.2-cp311-cp311-win32.whl (1.2 MB view details)

Uploaded CPython 3.11Windows x86

lokit_python-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

lokit_python-0.3.2-cp311-cp311-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

lokit_python-0.3.2-cp311-cp311-macosx_10_9_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

lokit_python-0.3.2-cp310-cp310-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.10Windows x86-64

lokit_python-0.3.2-cp310-cp310-win32.whl (1.2 MB view details)

Uploaded CPython 3.10Windows x86

lokit_python-0.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

lokit_python-0.3.2-cp310-cp310-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

lokit_python-0.3.2-cp310-cp310-macosx_10_9_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file lokit_python-0.3.2.tar.gz.

File metadata

  • Download URL: lokit_python-0.3.2.tar.gz
  • Upload date:
  • Size: 136.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lokit_python-0.3.2.tar.gz
Algorithm Hash digest
SHA256 6978a39b030e2e5f3e14108394b6a78facac1fef9dabee7ded77423d40c49109
MD5 389cb95eec46abaa91319f4f6463a9be
BLAKE2b-256 140009ddf509d8268576e212516e984ad1bfa773c782f781c951b9b95056076a

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2.tar.gz:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e9ec24e37b70a5ac44037e765c5dd1671575081d0bd8429bb917ff1d08f466a7
MD5 e52447e73647f25a7eadc7fa234d05bd
BLAKE2b-256 52b94e3bfc5c429893e1aa7c7eff3764e4195f5924d88fef8721a1e8ea6e0491

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp314-cp314-win_amd64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp314-cp314-win32.whl.

File metadata

  • Download URL: lokit_python-0.3.2-cp314-cp314-win32.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lokit_python-0.3.2-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 c399ea24daa3c36f7ead0611f5152e6d9ba79a2ca48366a36fe885f41fc96108
MD5 69d6be35d2de5b1020478a7916ee0d25
BLAKE2b-256 df07b82965a0a54e979765b7ee3e1c77651f094064eee09cf6ecb722f25ef3ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp314-cp314-win32.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 005f5e8aa5c867a54793e1a03fad060a83e4b0c3a0248ce6ed7372c5c1431062
MD5 1e07799e8b70169473c6d82665ff175a
BLAKE2b-256 f8541eb3cba40bb1e9389a3c23a4903dd063ca9ab38e5c7c6693f8ad14ee9103

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a182d2e1d97b52946499252feeaad823d454a1eace8bd6ea10e0042fc84b0f26
MD5 db25be1ad2dd20e3bd577d7505db4d7b
BLAKE2b-256 648db60d33e086c73ffea5ca8163a51acd4f9f7154825e3ed91a8fc2c159155f

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 aacbe38296e84512faa2b1f9ef19a04297050667ebc22f3018bf62c89c287a09
MD5 26668c854dc4582d32f850a4fff06b7c
BLAKE2b-256 ff7e4842fab76ce52df534c2bf49fea4a8ec797d998d15bd5722d2f0d3b05263

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 dfdf3b7b1d6af8ef4f02dfc4312d763048fe9ffe822d0167ada27495c64d0742
MD5 bbfa65db038b047a13528f99383a4e72
BLAKE2b-256 41a6139e066253b949f46218b6fa66bc7affa597fc1c3c88dc30974e54b7f47c

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp313-cp313-win32.whl.

File metadata

  • Download URL: lokit_python-0.3.2-cp313-cp313-win32.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lokit_python-0.3.2-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 99879cef46621b635a464aa402e1f8288d3f78728a44de47a2dc0b751223458f
MD5 bb47f5445829c627bf71b12fa7cc1b77
BLAKE2b-256 28c56e8ed6e74f0d97ffea4b60385b7e0cd38c788481c43c9297d7a5ba2ef039

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp313-cp313-win32.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 79d7839ef42fc8dd7bf0a2012d9e691c34c12415513cdd27eb12d39e824441d9
MD5 901ac723136a5acfd4e9bd7b2149b894
BLAKE2b-256 451c7a5e6e9381a95e059f6446b1ef66bb8d4883039142737bd38e67780a455c

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5422854e0fcf9e9d48a965dd3b630bdf3f0b0f928e1033a9296fae761ceba6b0
MD5 583853182be8709a4b4160c4a50704b0
BLAKE2b-256 aeb02254704af60fec0882bad64499d9b6432f22ec2d699435270d773ca40473

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 065ca02e2b792d114bc358a864aecebde2547b8183516e928b4e4c0d45b551d8
MD5 65d8e48d193f06c6464233987a23b5b4
BLAKE2b-256 934e7a21619a3447fe7fe1c1733b7b8e2da0bd5b37e462bce6ad8cf3c77bfd81

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d6266d10cf49ac8101d8adcbdeb9955f0af0a1a27351e369c03966148924a879
MD5 e05596ea869db6895ffbee9b4dbaf13e
BLAKE2b-256 446f592fa98d80792d1ad4fde20bceb6c94a0b6d5709edad58532c0c863c143f

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp312-cp312-win32.whl.

File metadata

  • Download URL: lokit_python-0.3.2-cp312-cp312-win32.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lokit_python-0.3.2-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 2401ed50dd00e22ea9eedc82afa2189f4205eec7b41e5532e8649f8584ff577c
MD5 36104c2e8fdea917ca3fa81feed9428b
BLAKE2b-256 4783eb86eb9c9f42e51f38e2cbf44258ba22e31971e951104947977b5286fedf

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp312-cp312-win32.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cf68224babdcfa48a3167f938455cc1a1285577935352f400e0525c4178a0234
MD5 d1f43db54ca462bacd472606338ab59e
BLAKE2b-256 bb26380d0e01fc663bf384583e8503564c923d4e9f9e5ff48a88a7591fb867d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ffe4ef797604c2fc64f254cb1c33aa0d1919ea0356eb496ed96351e38d89026d
MD5 2a27e36433e736b24845359d6d2d089a
BLAKE2b-256 fc4fdcc0c4173920375981a4e6620505f060bc6850451268e0f47413c827b594

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 0c9f0c6c4270ffac4e7a0d5941999481102be1ae47a27a75a049322bbb52a9fd
MD5 c35922494266384975e27bd7672e0824
BLAKE2b-256 af9d9d423cf46652c3bc0915cf9b9709217d1bb669f339a765b85cf6ee0fd83d

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4c2aa90d2cfa71a0fc9ab186e9fd448a41bf7f3b73fc6a89fdd27f9b3a23b2a4
MD5 e7e97bff321d5a2a282ae95ddc8c55c0
BLAKE2b-256 3c5b8404145ef568e706651b4c08a7bb702aa24c06f9c2a4eb7c779d922b9704

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp311-cp311-win32.whl.

File metadata

  • Download URL: lokit_python-0.3.2-cp311-cp311-win32.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lokit_python-0.3.2-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 e9541da38e0ec269e7818f8411ce30d2ffbabe801ad77b6ca69b4b0595c34507
MD5 c973fc566d408d0595d22a3cabc69051
BLAKE2b-256 da73249d253702e34148af6ea4ec4d722e3cd5097cb09f1a71883428657b7b81

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp311-cp311-win32.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bafbc06f30a3184581f70d08fe52780c2701e26a12ebc60ae7fc02743b475503
MD5 e403cc2ace21d78dc5e348c4d14a955b
BLAKE2b-256 3e7656067593a1b38c1d35baf1b766de5e4c96aab9970aa4d850c66eac05586f

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 389293b250869a8896cd982a10f01cfdd4d9c3222b834ae3015dad986c4c0a68
MD5 cf364a1909a4b2530a7a1c19461b603c
BLAKE2b-256 a29a2ac318f1e85fc7c4632cb7fed49a73ff37b086fc7ef67a9ad56e8f09704a

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4af3493c314eeb3a6aba1ac205a6254129486864ec1aeba6a1dcf2a789add344
MD5 074f802d4f2bdfa646d31dec583025db
BLAKE2b-256 ec397c7dfc93ae96e4a76161c897fb6df8cb34f4cee5141c9f58c24e75557ede

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 616cfcee507aa12f0dd3615598a44abff4ca6f120303eb7445c373cde902db11
MD5 fcb905aba724df5e3b7cfe6ffd34b979
BLAKE2b-256 d2298299fed59dc81a3051db387c2eaaf3be1c21b316d14cbb02c21fbd520ab5

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp310-cp310-win32.whl.

File metadata

  • Download URL: lokit_python-0.3.2-cp310-cp310-win32.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lokit_python-0.3.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 81ea2717ba5ef60abaa73b6b64274f3d72c54f62d1e00dc72f89b38ceb57e40a
MD5 759cec163b3f165e020e8f808d5e19b7
BLAKE2b-256 0fa6bb120f056fb2c071a4a00f34f12ef5e5617eb150ad236ae09181826c00cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp310-cp310-win32.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3ddc5712ce6fb7ac830aefcb994ad93acbbcbbb931ca97f9595712fc3503bb18
MD5 a2f1f735c2283999dc395df25aeecf4e
BLAKE2b-256 d029432c5e0bc02140082ca2c280627a38fd6ae4a9c30b6690080c629f89a4e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5c19fe0de773d2dfa5cfb8e5fde1e646347d9a9f394e7821b27ef0b278687fe1
MD5 e4d63c84fca17d8312480a75bc83ea24
BLAKE2b-256 babace9fd4bef0bd4ca10a011d9bca85361737512ee3299689f8992d5b5ce0a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lokit_python-0.3.2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.3.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2c4db5cc0a457cf5b87778e42d86ff362c58152a50006687207b03c49c5f7275
MD5 15af90a35308d3adf0f49ae8515657f4
BLAKE2b-256 e50dba38b3eb373921ea0d147cab5b1351a83d4a19ad7e0d6e97a891ae03d816

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.3.2-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: publish.yml on ciarandarby/lokit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page