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.1.tar.gz (181.2 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.1-cp314-cp314-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.14Windows x86-64

lokit_python-0.4.1-cp314-cp314-manylinux_2_28_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

lokit_python-0.4.1-cp314-cp314-macosx_11_0_arm64.whl (2.7 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

lokit_python-0.4.1-cp314-cp314-macosx_10_15_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

lokit_python-0.4.1-cp313-cp313-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.13Windows x86-64

lokit_python-0.4.1-cp313-cp313-manylinux_2_28_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

lokit_python-0.4.1-cp313-cp313-macosx_11_0_arm64.whl (2.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

lokit_python-0.4.1-cp313-cp313-macosx_10_13_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

lokit_python-0.4.1-cp312-cp312-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.12Windows x86-64

lokit_python-0.4.1-cp312-cp312-manylinux_2_28_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

lokit_python-0.4.1-cp312-cp312-macosx_11_0_arm64.whl (2.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

lokit_python-0.4.1-cp312-cp312-macosx_10_13_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

lokit_python-0.4.1-cp311-cp311-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.11Windows x86-64

lokit_python-0.4.1-cp311-cp311-manylinux_2_28_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

lokit_python-0.4.1-cp311-cp311-macosx_11_0_arm64.whl (2.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

lokit_python-0.4.1-cp311-cp311-macosx_10_12_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

lokit_python-0.4.1-cp310-cp310-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.10Windows x86-64

lokit_python-0.4.1-cp310-cp310-manylinux_2_28_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

lokit_python-0.4.1-cp310-cp310-macosx_11_0_arm64.whl (2.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

lokit_python-0.4.1-cp310-cp310-macosx_10_12_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: lokit_python-0.4.1.tar.gz
  • Upload date:
  • Size: 181.2 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.1.tar.gz
Algorithm Hash digest
SHA256 d87ddc890c8b8d19d4cc7aa158ad8aca25fed1b3a58fc79df1f17637628d2dc9
MD5 af10e6074acc025f83ebcd4719563f06
BLAKE2b-256 6e8f2c2074e64001e3be8fcbea9104a70285bb7a7ed73d4a1d03007e1807e2eb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 59c8e68c2ed0e8d8f4c157a57e81815bb34cc8511ae0c159807dc4f36584d7de
MD5 a7d19199bc54925409f0d201a45bba42
BLAKE2b-256 6fa92979cfc4edc8543611384ec47c9e999760866e0645ab62ea0417cbf982cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.1-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.1-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0ca7b05c438fa65c982a00e8ab9adb0ff23944ffb924e45f562299e21f26af39
MD5 e6eb11b543ca28f7be7c65715e98b4de
BLAKE2b-256 160f694a0f74e49b957f1f518a57a32c8d1f1cc598b9c3c78a3c73510b13aa7b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d9fc859104bc33f1463fe0809b341fd6d8c2561160a6f04c3e2e6f3a1c0665cd
MD5 082a43ae3e0f40636cea102a675ec30b
BLAKE2b-256 d075cbaa11a73d5c51f0016e859bb52750dd51f64103cdb62c0c07ee2a98a83a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e8c86af693109dd8b21c0c23c760d146e236fb0732087861b9ebf6a72f9ce83a
MD5 a63dc0d27c96d3c41dbdfd4776746d6f
BLAKE2b-256 6801d6e4088672bae250c3277e368d599038cad763dcbd6dde6ddec4d08377ed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4e5bf5cc1f25373fe626fd1f590c3bad1fde67f6cdf7e658d497323059a73050
MD5 26b419211501b2dd9e66b84c1e76f229
BLAKE2b-256 08dc5426f0543344b4d434ee3c920e5212c820a61d25456430adeeca4d0eac96

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.1-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.1-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 391d46ed994a763a9fac4af9c5c715f7bde00e5b8341357389b64262e383cd58
MD5 7577fbd212306ed5c2323c055af44831
BLAKE2b-256 3b1f9e71bcbf52e0b21894d9d5ed57695f4cf097755244f2a6d826d961f27a1f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 31a5bb16ae90788462d65e608cdab7269a9891ce4694d6c15d7649e0e2c6794f
MD5 859878f1906b4a179a48376ea7965852
BLAKE2b-256 d4fc0a51c40bdea002e4312c7a2438f6bebc836e648a99ae67ad42e82a6d3767

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 6724159b453cbbe17de2434b935e48e2ae0dbf4081056cf320351905d0165540
MD5 23c8154307a8c551e27b57ba7a1bedfe
BLAKE2b-256 f4e0cacf0d348c1c1b6518c9436a11cff3b2b81877eaee7d9cff86efd01436c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 74bf2afbde35a5ad4a6e28f14e8f77134a674c089505d8573a40e4762608341d
MD5 48083323c52c1cd83b4f25cf18549731
BLAKE2b-256 514a83df39d8f95f09ccdce530f7831f24f3162b309ec2868de020747be6292a

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.1-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.1-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 00c2778548ad57dc9b25191c6ca75992da34affd1a03d14d69c5b78e5ca2d32b
MD5 f3db686b0fbaa58913c64a3b48aff7e6
BLAKE2b-256 8ef1776fe4f414e4a78cab16f58b2c83ced277080dce237fed6802680ff4e758

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 358332180da98563601a2f5b53e43fa13d9fd2debbbbdf32eb3088a25e409f69
MD5 9773a1d0a5f141438e091013286de693
BLAKE2b-256 e7ebe086be07659920b94b2f073eece72015da70b06b258d1a566c7ac17b342b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b0a7ed58357f2a7f793d15e6e9f8ed158d196c3decaa0aba2c8c0139c182e2df
MD5 df97e4e51f2a7e877cdd1a066ecbe851
BLAKE2b-256 32dc1dec0f3f1257b1c097ac8d24bd200ec8407f83fc0069129072c49bd7400a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9a47edf43471adc182ee4c862f5eb9a857cd22bb3b840be84eafdb9383aa25e0
MD5 9080e3440fd6a770695293230f5fbaea
BLAKE2b-256 21035d85f87c21c4697ff908e128eb1d73410ba48512692ef00a5197300d06be

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.1-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.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 55021893ab894f62e3b0b489c5fcbe32c06b19c2d0278835df9f602c012999a2
MD5 6de4628aa0eeff172b2c6813b6a13b26
BLAKE2b-256 02963cfd52b4843681bd2b45814eaa4fcbea6940f13af6b0e148b8ddbb43bdef

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1bfaa735c3b9d837cd7a1256ac2732a64ced5fad5d3e5f6e8a310fd7690351cd
MD5 797bedac9b3173a2fec27ff8b0f3381b
BLAKE2b-256 15776551b15310d2c5264b889d150856e29c31601a94e926f3e7420861a01746

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.1-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.1-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 999ffb6eb1d0cbc9490a752c7bf478a40e4dd89ac66b595496af3a4862f18bdc
MD5 bce63a2eeda2d211ebb1af18a1d8d033
BLAKE2b-256 95528ea9287948d66700e7cb239cda3d5001dc7065a2b5234743445ed76163b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.1-cp311-cp311-macosx_10_12_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.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5a8fa8fa69c667193adafcb8663fc662cccc8740e36c999f535db4539b07840c
MD5 70f2bd86680668fc85697c226796fe94
BLAKE2b-256 6fc8c62385f5e6cd1bd17087edcae2c07612181bd720daed766fdd5f160eb263

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.1-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.1-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cfda4e2fe43d5c027325d8c92bab898b10a74b6cba9c44b7d05309eb5af28f68
MD5 481e7d410b98e3b5f9eca16f47815f8a
BLAKE2b-256 8450c97a8e13fba295c80739d2b23568f833f81aeb83400b5689d870bbbdf89f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f7a2fc797ea95d73057777639fce48fb94c167dd52bef1ff116d33ac74f7930e
MD5 3b8964c4b26e42308f62f7e1d0c85b1e
BLAKE2b-256 174259fd33764b9012f321549d91fb811eb65fa0a301c2689c18ad429f1417cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for lokit_python-0.4.1-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.1-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for lokit_python-0.4.1-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3dd02052ecece06b946a5227d8134ea65d836c1d5d55f23f2002bb8e191abe8e
MD5 92894d24e10ae3ef68eca65b1de02eba
BLAKE2b-256 d2c4174d635d2f220f19bfa5ae427f4204989662d72d2674380ebf6d035e99f1

See more details on using hashes here.

Provenance

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