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.4.0.tar.gz (162.9 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.4.0-cp314-cp314-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.14Windows x86-64

lokit_python-0.4.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.9 MB view details)

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

lokit_python-0.4.0-cp314-cp314-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

lokit_python-0.4.0-cp314-cp314-macosx_10_15_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

lokit_python-0.4.0-cp313-cp313-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.13Windows x86-64

lokit_python-0.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.9 MB view details)

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

lokit_python-0.4.0-cp313-cp313-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

lokit_python-0.4.0-cp313-cp313-macosx_10_13_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

lokit_python-0.4.0-cp312-cp312-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.12Windows x86-64

lokit_python-0.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.9 MB view details)

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

lokit_python-0.4.0-cp312-cp312-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

lokit_python-0.4.0-cp312-cp312-macosx_10_13_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

lokit_python-0.4.0-cp311-cp311-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.11Windows x86-64

lokit_python-0.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.8 MB view details)

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

lokit_python-0.4.0-cp311-cp311-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

lokit_python-0.4.0-cp311-cp311-macosx_10_9_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

lokit_python-0.4.0-cp310-cp310-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.10Windows x86-64

lokit_python-0.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.9 MB view details)

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

lokit_python-0.4.0-cp310-cp310-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

lokit_python-0.4.0-cp310-cp310-macosx_10_9_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: lokit_python-0.4.0.tar.gz
  • Upload date:
  • Size: 162.9 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.4.0.tar.gz
Algorithm Hash digest
SHA256 16a5e369bddcb09a767bd8ef4cb7fe4f034e5a7ef7c0fe724f1bd9e38e83a75d
MD5 8a66394ab214e3ca2878eaed58655378
BLAKE2b-256 2bdcb5e7a01862a348c0cabd6f87f304ccd7688ee6b4a0a57c785c79b7359a28

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0.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.4.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3f63465d17e3d6432be7bb7fd0d014e599517e6fc0a5380336f28e6f9a601660
MD5 8525638132f50ad90bb60a4d558601e1
BLAKE2b-256 383dab98a9c83c661feea27b8171b77949d1533a901c4944c45307a780c767a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-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.4.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 49dbb91aa6394a62217ec5b830c6e41d8b420862049cffaf1789781da79e1457
MD5 f1ebd97f3934373c749f2529abc6bf5c
BLAKE2b-256 cbf8c25fb326dcb9a6500b7c617c4d217c8c786c1d32a347e5971f7e5250be01

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fffc297a9ef3ac2bfc70b40b739a4b8b72d4fba0203d0ef6592cf5910db95f93
MD5 c2891f92174851fcf656b568db99d3d1
BLAKE2b-256 b551578fb8fff82c9fd99b13d338fa4a30c7203d5b17186fe95763b42f772af9

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 8cc3070f74540bcfda05dad5084d86fb9fb70036cd6afce3b315580cf069c570
MD5 860cefe111b43d0b6ec3b846c843f094
BLAKE2b-256 3e928dac87f9850547fad9df673f5c77e6159f2c4176ede59917bbf07381de44

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5c73e8964814803e4aae7f92062b05238602f7bc9cf03a7486dfc68271be8df5
MD5 1608594df2a721f3700f029d5498f6e9
BLAKE2b-256 a0003a9c938b7934ca0acfc2180fd09cd53691a6ded72bc489b42bc4f193c617

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-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.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6cf8ff5c9d2bce17d95f1681fddf7840b518edc1d29c52b4bb97eb3c17f3da31
MD5 8b09964e884b43a48cd69ed45fdea190
BLAKE2b-256 2dd4d33a9a660bb146766f1a04b8c332159033fe8fe223c7c97812b8c2630467

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 94c8fa45da57d455138a6b812759f17d804a1bc4c329092bbc3223429e46b187
MD5 86db9cb41e8445b3e1c1be511197f074
BLAKE2b-256 9410327f241852fc09988a312099637969ce9435abc8ac3c0383341118af9850

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ce5ec24970cc9f116a1206151fa911ee00ee8511221259a66984e1d584c1c5a7
MD5 92a6314d6ded7bd88376af9f428c7c16
BLAKE2b-256 324c6d8cb0af95bc5cecfb925da898e7022209847376e1e60af91eac8eebf6d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 850b69a6816d01473d04d964f062cec8276ef2bc181c379c268033792c6f9022
MD5 080df44ca57ebd95f0b037a0b57ddcfd
BLAKE2b-256 cfe25c14aa76bd2b0caad13d919e089da39530661a479e40a0f962cb5f757607

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-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.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4815cc90192027b1e1ae48d765e8a9c45ceb81c91c837d2d06bfed7f64f16686
MD5 63bff274cadb3228b8d46ee756582c77
BLAKE2b-256 a8404fff74c8b65a6009170fe0e436a057569d1202f1d410391b710283bce2d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7911c050eeff5cdcb942b3c188d49503a3f761f5382ce563da14c27512aed539
MD5 d2229f3905d17533e108bf98bcd6aff1
BLAKE2b-256 a3b2787e36b4d2c1ba90f8b75148542cc8addccd845a345c18b56778f0675cae

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 cbb0af580207bbfc106b08ea8d4590593f188ba072af0db7a51274ce1ae3bcfd
MD5 8d78c4a5147974650878950da9d5c096
BLAKE2b-256 e5bbfd5aaaf34e9daf2544e2cc972ca9c9fd936b18331874caf7e9665293ce54

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e2d36bcd767b7c1e1d550684bce13fb8aaa15ca83f3e94b48730013d61761507
MD5 f6bd077fd2a2816aa8173229b466d61c
BLAKE2b-256 6ae4c113aec7678b0c7e3bcdf520644dae6b32cf8d9aa6f8b03fe569c5236c21

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-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.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e0b53b2e3ef3c47a76a0926ed78e8670c1ec997bd2b02261bf2cac261a8b5f72
MD5 ba7606517de6e5666a857599d0b303bf
BLAKE2b-256 9a71bb746e4e386ef5ae887835388b6e2f98572dc236332f7ff219a6952ddb74

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e5e121f4bb3a50d05236758928a02a98c62b47d261c22123cf95c0c89447ce5
MD5 88301a6bf7abf5406d489772f4d1ec0f
BLAKE2b-256 359312996ce337d5bd585de82b01d5acd2a19b441f64a933e89904af47b45898

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 877c65ccf5589143491b5430207227e4283c6bf270824342b53da66c786daa61
MD5 1059fabd2ae59bb820704c0b7bbdd418
BLAKE2b-256 3750c7e16875c52699e52e5890bc46c072131c267db2f3ea1a0fbcc701b4d303

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b30a4e3488f23d460e41968dc5f937ef937e10f2a8f99cfcc65f8a6f4f3a220e
MD5 a590e8d204f0a5ffcf7eaa292f96ff83
BLAKE2b-256 364513b3dd46776becf4a52784a5c1585a803d5ccb15e9067a8e7fce16566fbc

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-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.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 05309530adbfe18b7b6b97b4cb27bdb651e0cdd778eebd47c773a23554974c3b
MD5 23a3a63e823ea5fc11680a39bf272777
BLAKE2b-256 920d09f9a06c815dd3754db8ffe00c18539dc71b501b86862be25a3864540669

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7755f7f9e3aedb0a8b364c97d83f3a06d1ac61b5eb652ec723e700ff8916ff19
MD5 26073d489b4911b51f7b9235746204a3
BLAKE2b-256 4e6623c593e4bfffa58dc3b25dcc1e29093a7f7a8d8ce489d8176e7300a6cc5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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.4.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2c4716c02702b2b846dce3721366e9d950a4fb9ef98b477efa888ba34e74a631
MD5 1ac135e9cd969fea779739081f8dd3f4
BLAKE2b-256 1f0511bbaff78d88eddeaa50aa6e8475d3018a12462e5d6148b48461b31feaf2

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.0-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