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.398.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.398.0
File Size Uploaded Provenance Actions
leptris-1.9.398.0.tar.gz 4.4 MB With provenance Details for leptris-1.9.398.0.tar.gz

Built distributions (wheels)

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

Total release size: 60.1 MB

Release files / leptris-1.9.398.0.tar.gz

Download URL leptris-1.9.398.0.tar.gz
Size 4.4 MB
Tags Source
SHA-256 checksum
How to use checksums
ed43e87167bc174421b86882c06894d856f27f227c249ec79923ec46cde169b2
BLAKE2b-256 checksum
How to use checksums
995277554a1f4b36cf2c211f32d2e29dbd08a099654c6f03d14cae121151936c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp314-cp314t-win_arm64.whl
Size 2.2 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
36dcda55aad0b3f7b171168ff5a365e8d8de031cb0534315986eb4f7f82f65c4
BLAKE2b-256 checksum
How to use checksums
e59315b318cb0afb8f4e54cded2ff8ccc167538a0dad2d67e6cb642287263631
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp314-cp314t-win_amd64.whl
Size 2.3 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
8c6f101d88bcb52d26ffa26161e831e1f055576b4d37d5a609099d276b5e4e49
BLAKE2b-256 checksum
How to use checksums
5a22b1199e372742dcd797ee65e757a95066b06e90b5d21b5b880b540349eea1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

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

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 2.5 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
2d3d54746fb6aae2fd7e7497a1a58126ed1afb09f30e3c1f6dd92aa41a993f61
BLAKE2b-256 checksum
How to use checksums
34b996879e1f91e74424630266a7512204c3dd5f1a5fb2414962a9fa889919d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 2.5 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
89773ba45eb52e63d8040cf081f030d936b083f823d6ee2402f9a44a4663df46
BLAKE2b-256 checksum
How to use checksums
d2172796f244f56a63a0c5ff62fac5363f90894b3483402c7a1aa9f1d81037c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 2.5 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
eb56be7ac6552331b7930de97650ac0c0167e805d5629dd477b04dcce8da4249
BLAKE2b-256 checksum
How to use checksums
6b3b300e4e036907f0756b38a56fa250a8a480a32e1509ab22cbecfd9b56e5ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 3.0 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
799081d5089d35626560a0355bddba96d4d197a7f02d962853e028bdc9245a74
BLAKE2b-256 checksum
How to use checksums
a28a5f7014546d686b6929b46a2b7b0d1e3e414557b8f16edb197af670f48098
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp314-cp314t-macosx_10_15_x86_64.whl
Size 3.0 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
e395fc9160e76656dc08570e2e81d62b4384df91acd729f55a21c53997ef0611
BLAKE2b-256 checksum
How to use checksums
d78d344cd9bf7f3e075b47ebf64c87a327622de4785a182f313cd2394d18f232
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp39-abi3-win_arm64.whl
Size 2.2 MB
Tags CPython 3.9 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
964e061dcea49de2d270f133e193544e908f1408edeae4646fdaf34f44a4ac4f
BLAKE2b-256 checksum
How to use checksums
e1f5ca5bbf9bada7536dba11d0d89ab1ab36467fcaf19af2da69cf06efcfcc27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp39-abi3-win_amd64.whl
Size 2.3 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
a2ac4a8c72c1300229cb832beb5be5e9ad43905bc86937ed0062cdab3c2e7bbe
BLAKE2b-256 checksum
How to use checksums
261496a4f1483c693766dd3a37f373a8d72f1db6ad7f35e2199369f0036eb778
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp39-abi3-win32.whl
Size 2.2 MB
Tags CPython 3.9 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
38c9eb580c553ddffa8c9cd029c06632afa0626e1a7b2a0fc4d2b491d3118fb1
BLAKE2b-256 checksum
How to use checksums
2f615390951c1e81a42e9bebbcb77b039d031fab345b91e7a9897aa64da01528
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp39-abi3-musllinux_1_2_x86_64.whl
Size 2.5 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
ce858662ab746695f20af61d611a1e15488d99296b3033b22209e38a8526797d
BLAKE2b-256 checksum
How to use checksums
01dd712c0d6d0ccc2a1bdb0feca13a86aaebc4485f9fe64707069e824aa48ac4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

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

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp39-abi3-musllinux_1_2_armv7l.whl
Size 2.3 MB
Tags CPython 3.9 Linux musl 1.2+ ARMv7l abi3
SHA-256 checksum
How to use checksums
34a4e70c8ab9cae600a21e61dccf95da6b246822bbbf1d06170b81884109a830
BLAKE2b-256 checksum
How to use checksums
360ec9d73778b1b0944a51fd884df7326f0529bd081b6ef9769ad5ff4db29356
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp39-abi3-musllinux_1_2_aarch64.whl
Size 2.5 MB
Tags CPython 3.9 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
1c177b45bd28033f25afe0a8e7206500373add004851819c8e4903cc64ca9dbe
BLAKE2b-256 checksum
How to use checksums
2fb5f4f5c77b4e807cc5216ad95f1bab4f0e2fe159a05dac2169009d63067d25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 2.5 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
c03df7af7b00a2863b5f574ce70c185ba54e974d3b818cdc2ed506c320f5f055
BLAKE2b-256 checksum
How to use checksums
c2b53988bb716431d93022959311a56ab0d7e8c72834399902ac4313c0251b23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp39-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Size 2.6 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
d7d6e34030b16f324e085d1f82f11672a3ffd4e7d53cecda5d91731149bd13db
BLAKE2b-256 checksum
How to use checksums
0e4dc5998cc44ff4dfb1d15f0a74b1ba65914440932397b73b29a08660e22185
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp39-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Size 2.7 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
fc69becb44814e42b62dab2a34c560195b61b40de745bb6149b4365abe549680
BLAKE2b-256 checksum
How to use checksums
1b7179255e62b958ba61f1c8cbc45b7c277247b32476eba4cf24395b28be59c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 2.4 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
b05d1a7aabb4adbc6f07493b2e9abfdf07e74eff22c7603f163632b7d7a292fa
BLAKE2b-256 checksum
How to use checksums
698e31d0fbe0db7fc05d89a88ac95f66ae3cb96444d65db24695061ff9b48ecd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp39-abi3-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl
Size 2.5 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
38bc6cb3c463763c6d7ff265ec07e3f27780fde38d60aac1b5cb959f0fffa2ad
BLAKE2b-256 checksum
How to use checksums
9b31f9740e5c6c529ccf9f659b1ae381942966adc53f1f5a0ce7f8e1b732ec46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp39-abi3-macosx_11_0_arm64.whl
Size 3.0 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
31adf2c6a157dbaceb8b36359c2478c498982d21cc21219b755a289186d2d508
BLAKE2b-256 checksum
How to use checksums
a7a9216303a1e46abe7a0178f886663b911d37d5d04aeabc5080d3a9f7658a75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

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

Download URL leptris-1.9.398.0-cp39-abi3-macosx_10_9_x86_64.whl
Size 3.0 MB
Tags CPython 3.9 abi3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
f5c755b1352be9f6f02d24589a660fcd10b760ded9f56023a4af950ff54be571
BLAKE2b-256 checksum
How to use checksums
fe9260ae33449459b6d3c7b569184d2291b0c7ee28fb1cd317a02f9707515ddf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 31, 2026.

Transparency log

Security for leptris 1.9.398.0

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.

Full provenance

All 23 files in this release have been uploaded with provenance metadata.

Select from 23 files

Attestation for leptris-1.9.398.0.tar.gz

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 31, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.9.398.0 This release

23 release files Full provenance

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