Skip to main content

leptris (Python) — lxml-shaped bindings for libleptris

leptris wraps the libleptris C API (XML 1.0 parsing, XPath 1.0) using cffi in ABI mode, with a required C accelerator for Element allocation and the hot accessors (tag, text, attrib, get, indexing, sibling navigation and plain-path XPath evaluation). Wheels ship it compiled; sdist builds require a C compiler.

The pinned libleptris version lives in libleptris-version.txt (lockstep releases); CI builds it from the release tarball. Platform wheels bundle the compiled engine — pip install leptris works with no extra setup on macOS (x86_64/arm64), Linux (manylinux + musllinux, x86_64/aarch64) and Windows (amd64/arm64).

Requirements

  • Python 3.9+
  • cffi (installed automatically)
  • nothing else for wheel installs — the pinned libleptris is vendored into leptris/_vendor/ by the wheel build (scripts/vendor_libleptris.sh). Wheels carry the compiled library AND its exact source (_vendor/engine/, with rebuild instructions in _vendor/README.md)
  • source installs (pip install --no-binary leptris) need a C toolchain + cmake; the sdist bundles the pinned engine source and compiles it at install time — no LEPTRIS_LIB_PATH

Supported runtimes

  • CPython 3.9+ (abi3 wheels; one wheel per platform covers every supported CPython, including future 3.x releases)
  • Free-threaded CPython (3.13t/3.14t): supported — cp314t wheels ship for every platform, built with Py_GIL_DISABLED (version- specific; the accelerator's Fns table is write-once at import). Contract: one document per thread (documents may migrate between threads between calls); the shared SAX recorder is internally serialized
  • PyPy / GraalPy: unsupported — the accelerator is required (single-mode by design); a pure-cffi fallback would contradict the binding's purpose. Revisit only on real demand.

Wheel platforms

Every release ships a universal wheel per platform (abi3, covering all CPython 3.9+) plus the matching free-threaded cp314t wheel and a source distribution. Each wheel runs the full test suite on its platform as part of the release build.

Platform Wheels Notes
Linux x86_64 (glibc ≥ 2.17) abi3 + cp314t manylinux
Linux x86_64 (musl) abi3 + cp314t musllinux (Alpine)
Linux aarch64 (glibc / musl) abi3 + cp314t native runners
Linux ppc64le abi3 full suite under qemu
Linux s390x abi3 big-endian; full suite under qemu
Linux i686 (glibc + musl) abi3 full suite (musl under qemu)
Linux armv7l (musl) abi3 full suite under qemu
macOS x86_64 + arm64 abi3 + cp314t universal2; x86_64 slice Rosetta-tested
Windows x64 + ARM64 abi3 + cp314t suite runs on both architectures
Windows x86 (32-bit) abi3 first wheel in 1.9.280.0 (engine #1456)

Every leg is required: a red leg fails the release before publish.

For a development checkout (or to use your own libleptris build), the loader also accepts a shared library (libleptris.dylib / .so / .dll) on the loader path, or one named by LEPTRIS_LIB_PATH (which must name the library file — the loader dlopens it verbatim; it takes precedence over the vendored copy):

cmake -B build -S /path/to/leptris -DLEPTRIS_BUILD_SHARED=ON
cmake --build build --target leptris_shared
export LEPTRIS_LIB_PATH=/path/to/leptris/build/src/libleptris.dylib

Quick start

from leptris import fromstring, tostring

root = fromstring("<library><book id='1' lang='en'>Ulysses</book></library>")

root.tag                                # "library"
root[0].get("id")                       # "1"
root[0].attrib                          # {"id": "1", "lang": "en"}
root[0].text                            # "Ulysses"

root.xpath("count(//book)")             # 1.0
[b.text for b in root.findall("book")]  # ["Ulysses"]

tostring(root[0], encoding="unicode")   # "<book id=\"1\" lang=\"en\">Ulysses</book>"

Documents own the tree; use the context manager or close():

from leptris import parse

with parse("catalog.xml") as doc:
    doc.xpath("//book[@lang='en']")

Namespaces, variables, canonical XML and streaming:

root.xpath("//x:item", namespaces={"x": "urn:ex"})
root.xpath("//book[@id=$id]", variables={"id": "2"})
c14n(root, exclusive=True)

from leptris import sax
sax.parse(xml, handler)                       # one-shot
with sax.StreamingParser(handler) as parser:  # push, constant memory
    parser.feed(chunk, final=last)

for rec in sax.records(xml):                  # one-crossing records tape
    ...                                       # (leptris 1.9.237.1+)

XSLT and XPath version support

leptris.XSLT(stylesheet) compiles once, applies to any Document, and returns a Document; leptris.XPath(expression) compiles an XPath for repeated evaluation. Which language constructs work is decided by the engine — the matrix below is measured against libleptris 1.9.32 (audited through this binding; the upstream gap ledger is leptris/leptris#685).

language status notes
XSLT 1.0 full libxslt conformance suite 205/205 upstream; EXSLT math/set/str/date included
XSLT 2.0 partial ✓ for-each-group, analyze-string + regex-group(), xsl:number formats, xsl:assert, xsl:sequence (multi-item), xsl:perform-sort · ✗ xsl:function, tunnel parameters, shadow attributes, xsl:result-document, @separator
XSLT 3.0 increments ✓ try/catch (with $err:description), accumulator (gated by xsl:mode use-accumulators), iterate + break + on-completion, on-empty, evaluate, grouping, modes, where-populated, on-non-empty, next-match, fork, @start-at, composite keys, tunnel params, copy/@select, xsl:namespace, xsl:document, @default, merge, result-document (writes the href target), character maps · ✗ package, xsl:map, xsl:evaluate with-params, next-iteration chaining
XPath 1.0 full complete core function library
XPath 2.0 grammar complete ✓ quantified (some/every), set algebra (union/intersect/except), node comparisons (is, <<, >>), (), ends-with, deep-equal, value comparisons, cast/castable/treat/instance of, function items + HOFs (1.9.73+) · function slices by group (sequences, regex, math:, strings/QNames/URIs, dates, xs: constructors); remaining: format-date/format-time, JSON, map:/array: constructors · format-number works in plain XPath since 1.9.80
XPath 3.1 lane 0 ✓ let, simple map !, arrow =>, string concat || — through both XPath() and XSLT · ✗ function items, inline functions, maps, arrays, string constructors
DTD validation leptris.DTD(text) / .from_file(path) / .from_document(doc) (the DOCTYPE internal subset, doc-owned) — compile once, .validate(doc) → bool with .error_log (message/element/line/column); .parse_external_subset(text) merges external declarations (first-decl-wins), .set_pe_loader(fn) resolves external parameter entities with application-owned I/O — libleptris 1.9.202+
XSD (W3C XML Schema) tier 1 leptris.XSD(text) — schema compilation + lexical validation: valid_builtin("xs:integer", "42") and valid(type_name, lexical) over user simpleTypes with restriction facets — libleptris 1.9.319+; instance validation xsd.validate(doc) → bool with enumerated error_log; XSD.from_file(path) resolves relative xs:include/xs:import schemaLocations (#1075 complete — content models, instance validation, identity constraints) — libleptris 1.9.321+
RELAX NG core subset leptris.RelaxNG(schema) / .from_file(path) — compile once, .validate(doc) → bool with Jing-shaped .error_log; element/attribute/text/data/value/choice/group/interleave/repeats/ref — libleptris 1.9.115+ (#878)
XML diff native leptris.diff(a, b[, ignore_ws_text]) — digest-pruned ordered edit script (iterate DiffOp(type, path, name, before, after); serialize() line-per-op) — libleptris 1.9.144+
XQuery 1.0 core + 3.x increments leptris.XQuery(query) — FLWOR (for/let/where/order by/return/group by, positional at, tumbling/sliding windows), prolog (declare variable/namespace/function local:* incl. external variables with QT3-style select bindings via variables=),, constructors, doc()/collection(), try/catch, typeswitch — libleptris 1.9.68+; 3.1 remainder (maps/arrays, modules) tracked in #684

XQuery 1.0 core is a first-class API since libleptris 1.9.64:

from leptris import Document, XQuery

with Document.parse("<r><item v='1'>alpha</item><item v='5'>beta</item></r>") as doc:
    XQuery("for $i in //item where $i/@v > 1 return string($i)")(doc)  # ['beta']
    XQuery("declare variable $n := 3; <out>{$n * 2}</out>")(doc)       # [<Element 'out'>] — real nodes (1.9.314+); tostring() for markup
    XQuery("declare function local:dbl($x) { $x * 2 }; local:dbl(4)")(doc)  # 8.0

Schema-descriptor materialization (Plan, libleptris 1.9.162+)

Compile a descriptor once, materialize whole documents in one native pass — the tree-shaped ABI lutaml-model hosts consume (leptris/leptris#1039):

from leptris import Document, Plan

catalog = Plan({
    "element_name": "catalog",
    "children": [
        {"name": "item", "kind": "collection", "plan": {
            "element_name": "item",
            "attributes": {"id": {}, "price": {}},
            "children": [{"name": "title"}],
        }},
        {"name": "note", "kind": "raw"},
    ],
})
with Document.parse(xml) as doc:
    data = catalog(doc)   # {"attributes": {...}, "children": {...}}

Row kinds: scalar, collection (list), nested (element plan), raw (serialized subtree), content (mixed-content text runs, name may be ""), callback (PlanCallback(value, position, type_tag) — the escape hatch for host-side procs). Results are shape-stable (absent rows yield None / []); namespace forms via ns={"form": "none"|"exact"|"any", "uri": ...}, flags via {"mixed_content", "ordered", "cdata", "ns_lenient"}.

Serialize a walk (serialize) or a host-assembled flat op program (serialize_ops) back to XML; indent/indent_unit pretty-print element boundaries (1.9.341+, #425). document_ops(ops) and to_document(element_or_document) materialize the same results as native Document trees — attributes verbatim, root namespace declarations riding as xmlns attributes — with no string round trip (1.9.341+, #426):

doc = catalog.document_ops([
    ("element", 0, None), ("attr", "id", "c1"),
    ("element", 0, 0), ("attr", "id", "i1"),
    ("scalar", "first"), ("end",), ("end",),
])
doc.getroot()[0].tag   # "item"

The default surface is the full XPath 3.1 grammar. To pin the strict XPath 1.0 surface (3.x-only syntax raises XPathError), pass version="1.0" — on Document.xpath, Element.xpath, and the compiled XPath class (XPath(expr, version="1.0")):

root.xpath("count(//book)", version="1.0")          # works — 1.0 grammar
root.xpath("//book ! @id", version="1.0")           # XPathError: 3.x syntax
XPath("//book[1]/@id", version="1.0")(root)         # compiled + strict

XPath 3.1 composition and XSLT 3.0 instructions flow through the existing API with zero binding change:

from leptris import Document, XPath, XSLT, tostring

with Document.parse("<r><item v='1'>alpha</item><item v='5'>beta</item></r>") as doc:
    doc.getroot().xpath("let $n := //item[2] return $n/@v")      # ['5']
    doc.getroot().xpath("(//item ! string(.)) => count()")        # 2.0

    style = XSLT("""<xsl:stylesheet version="3.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:mode use-accumulators="depth"/>
      <xsl:accumulator name="depth" initial-value="0">
        <xsl:accumulator-rule match="*" phase="start" select="$value + 1"/>
        <xsl:accumulator-rule match="*" phase="end" select="$value - 1"/>
      </xsl:accumulator>
      <xsl:template match="/"><o>
        <xsl:iterate select="//item">
          <i d="{accumulator-before('depth')}"/>
        </xsl:iterate>
      </o></xsl:template>
    </xsl:stylesheet>""")
    print(tostring(style(doc), encoding="unicode"))
    # <o><i d="2"/><i d="2"/></o>   # items sit at depth 2 (r → item)

Unsupported constructs fail at XSLT() compile time or at evaluation with LeptrisError — except two instructions that still produce empty output instead of an error (xsl:map/xsl:map-entry, and xsl:value-of/@separator is ignored); tracked in the #685/#690 ledgers above.

HTML parsing

leptris.html (libleptris 1.9.75+) — tolerant HTML in the shape of lxml's etree.HTMLParser: implied end tags, void elements, case-insensitive names, unquoted attributes, the named-entity table, and a synthesized <html>/<head>/<body> wrapper:

from leptris import html

r = html.fromstring("<p>hello <b>world")   # <html><head/><body><p>hello <b>world</b></p></body></html>
with html.document("<td>c") as doc:
    doc.xpath("count(//td)")               # 1.0

Since libleptris 1.9.76 the output is byte-exact with lxml's etree.HTMLParser (minimized attributes are empty strings; no empty <head/> is emitted) — leptris/leptris#813. The one deliberate html4 divergence: a leading script/style run stays in body (the fragment shape), where lxml's libxml2 lifts it to head.

Two modes (libleptris 1.9.104+): the default html4 keeps this compatibility shape; mode="whatwg" selects the WHATWG-conformant engine — with libleptris 1.9.196 the WHATWG conformance corpus is at zero divergences (leptris/leptris#659 complete): tree construction, foster parenting, adoption agency, in-select/table scope, and the foreign-content rules all match the specification. leptris fully provides HTML.

Building HTML works like building XML, on an HTML-mode document — serialization emits void elements without closing tags and keeps <br>-style names un-XHTML-ed (libleptris 1.9.225+):

from leptris import html
import io

doc = html.create()
p = doc.create_element("p", {"class": "intro"})
doc.set_root(p)
p.text = "hello"
buf = io.BytesIO(); doc.save_html(buf)   # <p class="intro">hello</p>

tostring(node, method="html") forces HTML output for any tree; HTML-parsed and html.create() documents serialize as HTML by default.

Migrating from lxml

lxml leptris Notes
etree.fromstring / etree.XML fromstring / XML
etree.parse parse paths and file-likes; no URLs
etree.tostring(elem, …) tostring(elem, …) bytes by default, encoding="unicode" for str
elem.tag / .text / .tail same tag uses {uri}local Clark notation; CDATA merges into text (lxml's default parser behavior)
elem.attrib / .get() / .keys() / .items() same attrib is a read-only Mapping
elem.getparent/getnext/getprevious same
elem[i], len(elem), iteration, slices same indexing is child indexing, never attribute lookup
elem.iter() / .iterdescendants() / .itertext() same elements only (ElementTree semantics); lxml's iter() also yields comments/PIs
elem.find/findall/findtext same accepts full XPath 1.0 — a superset of ElementPath — including {uri}local names
elem.xpath(expr, namespaces=…) same plus variables={…} (leptris extension)
etree.c14n / etree.XInclude c14n(…) / doc.process_xinclude()
etree.XMLSyntaxError ParseError XPath failures raise XPathError; XSLT raises XSLTError, XQuery XQueryError — all subclass LeptrisError
etree.Element/SubElement/append/set create path Document.create() + create_element(name) + set_root() (returns the installed element; foreign parentless elements adopt by copy, 1.9.298+), Element.create_child(name)/append(el)/set(name, value) + the .text setter — libleptris 1.9.216+; remove via Document.remove_* (doctype/child)
document-level comments / PIs doc.toplevel_comments() / doc.toplevel_pis() prolog then epilog; requires libleptris 1.9.3+
etree.iterparse leptris.iterparse(source, full_document=False) bounded by the largest subtree; yields ("end", element); elements borrowed until the next yield; tags resolve namespaces (Clark notation, libleptris 1.9.4+). Truncated or malformed input raises ParseError (both modes, libleptris 1.9.15+). full_document=True yields every element in completion order. Perf opt-outs: skip_dup_detection=True / skip_source_positions=True (libleptris 1.9.284+, ~48% faster on diagnostics-free streams)
smart strings plain str XPath string/attribute results
elem.nsmap absent use elem.namespace / elem.prefix and xpath(namespaces=…)
etree.XPath compiled objects leptris.XPath(expression) compile once, evaluate many; contexts, namespaces, and variables supported
etree.XSLT leptris.XSLT(stylesheet) compile once, apply to any Document — see the version support matrix above; apply-time top-level params: transform(doc, params={"n": "//v"}) (XPath-expression values, libleptris 1.9.287+) or string_params for the serialized result
elem.sourceline same requires libleptris 1.3.0+
undeclared XPath prefix raises in lxml evaluates to an empty nodeset here
ATTLIST default attributes applied by lxml's default parser excluded by default (ElementTree-like; XML 1.0 §5 permits either) — Document.parse(xml, attribute_defaults=True) opts in
declared non-UTF-8 bytes (UTF-16, latin-1, …) auto-detected auto-detected — declared encodings route through the converter, others retry on failure (libleptris 1.9.15+)
parser options (remove_blank_text, …) etree.XMLParser(remove_blank_text=True) Document.parse(xml, remove_blank_text=True) — ~35% faster on pretty-printed input; also attribute_defaults=True, recover=True (XML_PARSE_RECOVER parity — structural errors keep the best-effort tree with per-recovery diagnostics on Document.parse_diagnostics, 1.9.344+), and the perf opt-outs skip_dup_detection=True / skip_source_positions=True (1.9.273+, ~13% faster on diagnostics-free workloads); the streaming twins on iterparse/sax.parse/StreamingParser (1.9.284+, ~48% on streams)
nested HTML indent — tostring(..., method="html", pretty_print=True, indent_html=True) / save_html(..., indent_html=True) — block children nest; default stays §16.2 newline-only (1.9.340+)
bulk attribute read — elem.attribute_pairs() — all attributes as (name, value) pairs in one C pass (1.9.216+)
typed attribute read — elem.get_int/get_float/get_bool(name, default) — conversion engine-side, one crossing (1.9.280.1+); strict: unparseable or missing -> default
bulk attribute read (ns) — elem.attribute_pairs(ns=True) — (name, value, prefix, uri) 4-tuples in one crossing; URI resolved through in-scope declarations, reserved xml: binding included (1.9.353+)
subtree walk elem.iter() elem.visit_entering(fn) — one callback per node entered, document order, no re-visit after the subtree (1.9.232+)
host-assembled results — Plan.serialize_ops(ops) — serialize a flat op program (element/attr/scalar/end tuples) guided by the plan, no DOM needed (1.9.334+); indent/indent_unit pretty-print (1.9.341+)
result -> native tree — Plan.document_ops(ops) / Plan.to_document(doc) — build a Document from an op program or a walk, attributes verbatim, xmlns declarations on the root, no string round trip (1.9.341+)
catch-all child rows — plan child rows take {"kind": "wildcard"} — the unbound remainder as RAW subtrees (or walked via a nested "plan"); Plan.serialize(doc) serializes a walk back to XML with ns_prefix declarations (1.9.312+)
content digest — elem.digest([drop_whitespace][, attr_order]) — Merkle hash of the subtree; stable across processes (attr_order: 1.9.208+)

Layout

  • leptris/_ffi.py — cdef mirror of the public headers + loader (the only place libleptris is declared)
  • leptris/_engine.py — the compile-once lifecycle base shared by the compiled language objects (XSLT, XQuery, future RelaxNG)
  • leptris/_results.py — the result model: engine results to Python values (nodeset wrapping, scalar conversion), shared by every evaluation surface
  • leptris/_leptrisaccel.c — the C accelerator (abi3): allocates Elements and runs the hot accessors, subtree iteration, the parse and serialization seams, and the per-document element registry; bound to libleptris by the positional protocol in element.py
  • leptris/element.py, document.py, node.py, xpath.py — the Python surface: queries, walks, documents; node.py exposes the full DOM (comments, CDATA, PIs) beneath the ElementTree shape
  • leptris/api.py — fromstring/parse/tostring/c14n/ iterparse
  • leptris/sax.py — SAX one-shot and streaming
  • tests/ — pytest suite (pytest with LEPTRIS_LIB_PATH set)
  • benchmarks/ — matrix vs lxml/ElementTree/minidom (pip install .[bench], then python -m benchmarks.matrix)

Memory model

The Document owns the whole tree and its pool. Accessor strings are copied into Python str at the boundary, so nothing depends on document lifetime after a call returns. Elements keep a reference to their Document, so the pool cannot be freed while any wrapper is alive. Prefer explicit close() / the context manager; __del__ is a refcounting safety net, not a contract. Using an element after its document is closed raises LeptrisError.

Versioning

libleptris-version.txt pins the library release the binding is built and tested against. Since 1.9.76.0 the package version is {c-full-semver}.{patch} — the pinned libleptris version plus a binding-local patch counter: lib 1.9.76 → 1.9.76.0, then 1.9.76.1 for binding-only fixes against the same pin, resetting the patch whenever the pin moves. (1.2.0–1.27.1 were the interim own-semver line.) pyproject.toml and leptris/__init__.py must agree at release time.

Publishing

Releases publish to PyPI via .github/workflows/release.yml, using PyPI trusted publishing (no stored credentials). The workflow runs on manual dispatch (ships the version in pyproject.toml) and is called by the libleptris release flow (publish: true), so every libleptris release ships the wheel.

Local development

python3 -m venv .venv
./.venv/bin/pip install --upgrade build pytest cffi
./.venv/bin/pip install -e .[test,bench]
LEPTRIS_LIB_PATH=/path/to/libleptris.dylib ./.venv/bin/python -m pytest tests/ -q

Metadata

Release files for leptris 1.9.355.0

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

Source distribution (sdist)

Source distribution for leptris 1.9.355.0
File Size Uploaded
leptris-1.9.355.0.tar.gz 4.1 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for leptris 1.9.355.0
File
leptris-1.9.355.0-cp314-cp314t-win_arm64.whl CPython 3.14 CPython 3.14 free-threading Windows ARM64 Details
leptris-1.9.355.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
leptris-1.9.355.0-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details
leptris-1.9.355.0-cp314-cp314t-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 Details
leptris-1.9.355.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
leptris-1.9.355.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
leptris-1.9.355.0-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
leptris-1.9.355.0-cp314-cp314t-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64 Details
leptris-1.9.355.0-cp39-abi3-win_arm64.whl CPython 3.9 abi3 Windows ARM64 Details
leptris-1.9.355.0-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
leptris-1.9.355.0-cp39-abi3-win32.whl CPython 3.9 abi3 Windows x86-32 Details
leptris-1.9.355.0-cp39-abi3-musllinux_1_2_x86_64.whl CPython 3.9 abi3 Linux musl 1.2+ x86-64 Details
leptris-1.9.355.0-cp39-abi3-musllinux_1_2_i686.whl CPython 3.9 abi3 Linux musl 1.2+ x86-32 Details
leptris-1.9.355.0-cp39-abi3-musllinux_1_2_armv7l.whl CPython 3.9 abi3 Linux musl 1.2+ ARMv7l Details
leptris-1.9.355.0-cp39-abi3-musllinux_1_2_aarch64.whl CPython 3.9 abi3 Linux musl 1.2+ ARM64 Details
leptris-1.9.355.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 abi3 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
leptris-1.9.355.0-cp39-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl CPython 3.9 abi3 Linux glibc 2.17+ IBM System/390x, Linux glibc 2.28+ IBM System/390x Details
leptris-1.9.355.0-cp39-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl CPython 3.9 abi3 Linux glibc 2.17+ PowerPC 64-le, Linux glibc 2.28+ PowerPC 64-le Details
leptris-1.9.355.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
leptris-1.9.355.0-cp39-abi3-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl CPython 3.9 abi3 Linux glibc 2.28+ x86-32, Linux glibc 2.12+ x86-32 Details
leptris-1.9.355.0-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details
leptris-1.9.355.0-cp39-abi3-macosx_10_9_x86_64.whl CPython 3.9 abi3 macOS 10.9+ x86-64 Details

Total release size: 57.1 MB

Release files / leptris-1.9.355.0.tar.gz

Download URL leptris-1.9.355.0.tar.gz
Size 4.1 MB
Tags Source
SHA-256 checksum
How to use checksums
f0c3492a769e31da6c11d493f2006c8e77a1e01e0e353b661094fd1e01d0c796
BLAKE2b-256 checksum
How to use checksums
fae5610b3d6354ccf74043ce4a552f7501848b969594ac71bcf2b7dc27985b0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp314-cp314t-win_arm64.whl

Download URL leptris-1.9.355.0-cp314-cp314t-win_arm64.whl
Size 2.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
784d77adb5b6d47f695a282bb094ece6576f4656a3e49b74fee52032c6a0c690
BLAKE2b-256 checksum
How to use checksums
4b4843f011a1923194fb6ae9553d8635bd265b67e5959d304e53564f8e093397
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp314-cp314t-win_amd64.whl

Download URL leptris-1.9.355.0-cp314-cp314t-win_amd64.whl
Size 2.2 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
de2c81be201870f9639a629211719764f5e71af2e7a259bc1e0defe52483a027
BLAKE2b-256 checksum
How to use checksums
064ef20b1b40beaf7079b249b97b8f02b414fc45bbdc064e9a27a9784d56453c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL leptris-1.9.355.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 2.4 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
718a58a998fbc3200f79b7c4552ce8b3886664e3e23aab2658f20080234db273
BLAKE2b-256 checksum
How to use checksums
b536fc13e35abd9962663cb6109fb171f40ac43dd242c9c8b5277774d87147b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL leptris-1.9.355.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 2.4 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
831f8e9db6e1130225eb17a74c4a9a61eeb91aadf7124975e9350c3610dbc4e5
BLAKE2b-256 checksum
How to use checksums
1abec7489fff8277160ea94fb4243084ac59688477f8573a0940f4b922f5faab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL leptris-1.9.355.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 2.4 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f69cc138a690b28464655b18d354900cd4db94094ec2534ae98a02fc70458ba8
BLAKE2b-256 checksum
How to use checksums
ac00de998d961a6ef488d005445478c041bbaa34e9c711714095aa408cc59b5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL leptris-1.9.355.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 2.4 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
84edd5d6eacfbc82bfbcf2927e8a5dddf946cbf4e3ab487e71a77c70d9cce531
BLAKE2b-256 checksum
How to use checksums
98a718f145fd05a64d1d11182d6eec8e09c9f021803945e4c63952cc96cede69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL leptris-1.9.355.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1727cbe00b535838b522f459d799a91c0e1923c4c6480143947675ad83ebc2d1
BLAKE2b-256 checksum
How to use checksums
340af9cbc27d13c2b73dd556d93bc37ddd8ff2cbc8974a12939cf934bf5c23be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp314-cp314t-macosx_10_15_x86_64.whl

Download URL leptris-1.9.355.0-cp314-cp314t-macosx_10_15_x86_64.whl
Size 2.8 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
6144798124ae9a59355c73343994fba75a92211d114b567b07fc9116d0933409
BLAKE2b-256 checksum
How to use checksums
7f758d580a858a598bdcac712781bb2411f85ebab7264f4efd3c7bf73ddb440d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp39-abi3-win_arm64.whl

Download URL leptris-1.9.355.0-cp39-abi3-win_arm64.whl
Size 2.1 MB
Tags CPython 3.9 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
69e978a65fced4213dbf73ffc86781098d453a11c57e3ca463d6444aeae5c971
BLAKE2b-256 checksum
How to use checksums
3230e7fa677bf2d78fc4fe05437a2ed347fdb8f191ea167791854463547bddff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp39-abi3-win_amd64.whl

Download URL leptris-1.9.355.0-cp39-abi3-win_amd64.whl
Size 2.1 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
a17eacf0e131b3f263089c1bd1064d244a247e09b3efe29391d9802b6bf15199
BLAKE2b-256 checksum
How to use checksums
337b5e8268892dbf08f02fe21d42cad726f7a53eb3e77673d14f32d489956fa2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp39-abi3-win32.whl

Download URL leptris-1.9.355.0-cp39-abi3-win32.whl
Size 2.1 MB
Tags CPython 3.9 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
28dbb8707c84b6b75c9c042b2bb805feae502abe16ce002df4f9b6ea7a34c3cb
BLAKE2b-256 checksum
How to use checksums
527da6322034ac30af16770191777b63823e26de0ddac656d5bce2cea89a13e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp39-abi3-musllinux_1_2_x86_64.whl

Download URL leptris-1.9.355.0-cp39-abi3-musllinux_1_2_x86_64.whl
Size 2.4 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
0abcf198a472e60182b54621abe0db888d125e7e65bdc096aeee03f4af658596
BLAKE2b-256 checksum
How to use checksums
68cf451e682dade4d79cd63fb962c359cdae74ee96a0e3e2360829aca307443c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp39-abi3-musllinux_1_2_i686.whl

Download URL leptris-1.9.355.0-cp39-abi3-musllinux_1_2_i686.whl
Size 2.4 MB
Tags CPython 3.9 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
dad5a4f8b0d0b6e946c05f599bd015f8dc379edb0efac25bcd00af99a657f36b
BLAKE2b-256 checksum
How to use checksums
de28c632622fde88c75dac0e8de2aafa0d50748fc461955af57af268a6d137cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp39-abi3-musllinux_1_2_armv7l.whl

Download URL leptris-1.9.355.0-cp39-abi3-musllinux_1_2_armv7l.whl
Size 2.2 MB
Tags CPython 3.9 Linux musl 1.2+ ARMv7l abi3
SHA-256 checksum
How to use checksums
3230f7b1feb35d5abbf428791d97da1759d3fcfef5ebe33d0f12d2f8c4a2837e
BLAKE2b-256 checksum
How to use checksums
31ec1307a61c9974a75bc50a3e5a2149d69de203f9b91287ba1a5ed88a767c98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp39-abi3-musllinux_1_2_aarch64.whl

Download URL leptris-1.9.355.0-cp39-abi3-musllinux_1_2_aarch64.whl
Size 2.3 MB
Tags CPython 3.9 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
f9b9be642ff00fab1db7a3e749f1558b72a723d3a61029ea6a4b996aeb339389
BLAKE2b-256 checksum
How to use checksums
559ea34ce1f1e845bc29b33f2482967f92163d09f72a81c9d1aece8a09e832e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL leptris-1.9.355.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 2.4 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
39df4d2e90604bb15edd19df7f2b6a56fc17df173b61c9e5e9e4362d72387558
BLAKE2b-256 checksum
How to use checksums
dbce40e34d9a1e8f0177675556c982d61e622637557bfd3ae25b077b1b4ed820
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp39-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl

Download URL leptris-1.9.355.0-cp39-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Size 2.5 MB
Tags CPython 3.9 Linux glibc 2.17+ IBM System/390x Linux glibc 2.28+ IBM System/390x abi3
SHA-256 checksum
How to use checksums
a10a745a3de35bbd0ede6d3fb59b007ab458c84162ae312f9d685aa9e72bf505
BLAKE2b-256 checksum
How to use checksums
36e2348c86928521b4b1587e32eed0151159a4b01ffba88e17bf7f92f1edd24b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp39-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl

Download URL leptris-1.9.355.0-cp39-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Size 2.6 MB
Tags CPython 3.9 Linux glibc 2.17+ PowerPC 64-le Linux glibc 2.28+ PowerPC 64-le abi3
SHA-256 checksum
How to use checksums
c4feab399b7f8c3aa3ff1a4728d124a07cfe85e49e1daff11e6956c2f0beadb2
BLAKE2b-256 checksum
How to use checksums
67b264555a013c8876005940fa9c42b0b6bb37c3a4b113bfa97238fe76b8c395
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL leptris-1.9.355.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 2.3 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
bcc7755b86aefba89cfbd9d2997994059ab7705ba3854ca2110b40934ea5ad99
BLAKE2b-256 checksum
How to use checksums
50de3fe4d6939acb91ebc7e97365d942fa423e3e24acd27fe3c9541ce6717720
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp39-abi3-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl

Download URL leptris-1.9.355.0-cp39-abi3-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl
Size 2.4 MB
Tags CPython 3.9 Linux glibc 2.12+ x86-32 Linux glibc 2.28+ x86-32 abi3
SHA-256 checksum
How to use checksums
02493b8cf0e082bcd39bca1ada712788a0e9e741312cc149f8d3bbb8d83584cb
BLAKE2b-256 checksum
How to use checksums
99ada3f8f1db9a1c1e6fa95f82dcf41698081479be45798b54643dcba476bb9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL leptris-1.9.355.0-cp39-abi3-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b60ee7411d8e4ca502b368cd5028a373ecb10412f1f2cd47cda19d1394ab5d1b
BLAKE2b-256 checksum
How to use checksums
a60b41958ee5ccc375511c57e8c77d8ffdc90b18b5dc58150588131c8607c675
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leptris-1.9.355.0-cp39-abi3-macosx_10_9_x86_64.whl

Download URL leptris-1.9.355.0-cp39-abi3-macosx_10_9_x86_64.whl
Size 2.8 MB
Tags CPython 3.9 abi3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
041e2b15439314ddb0b37ca9b0fd391eccb75c90af84ef4061530efb17e46216
BLAKE2b-256 checksum
How to use checksums
0c403bb94d082f07a5ffeaf3f04b6d5d633fbae9586e5495154c37cd26aaaa7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release history Release notifications | RSS feed

1.24.2

6 release files

1.24.1

6 release files

1.24.0

6 release files

1.23.3

6 release files

1.23.2

6 release files

1.23.1

6 release files

1.23.0

6 release files

1.22.2

6 release files

1.22.1

6 release files

1.22.0

6 release files

1.21.0

6 release files

1.20.0

6 release files

1.19.0

6 release files

1.18.0

6 release files

1.17.1

6 release files

1.17.0

6 release files

1.16.1

6 release files

1.16.0

6 release files

1.15.1

6 release files

1.15.0

6 release files

1.14.3

6 release files

1.14.2

6 release files

1.14.1

6 release files

1.14.0

6 release files

1.13.3

6 release files

1.13.2

6 release files

1.13.1

6 release files

1.13.0

6 release files

1.12.0

6 release files

1.11.1

6 release files

1.11.0

6 release files

1.10.0

6 release files

This release

1.9.355.0 This release

23 release files

1.9.0

6 release files

1.8.0

6 release files

1.7.0

6 release files

1.6.1

6 release files

1.6.0

5 release files

1.5.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

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