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.397.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.397.0
File Size Uploaded Provenance Actions
leptris-1.9.397.0.tar.gz 4.4 MB With provenance Details for leptris-1.9.397.0.tar.gz

Built distributions (wheels)

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

Total release size: 60.1 MB

Release files / leptris-1.9.397.0.tar.gz

Download URL leptris-1.9.397.0.tar.gz
Size 4.4 MB
Tags Source
SHA-256 checksum
How to use checksums
64076638b9b9df0a565c4b9088961873c391ae9763366167736796c0bbd991dc
BLAKE2b-256 checksum
How to use checksums
47553f0b745a142a0a885d941a053e2e9cf144005dd72c9396d3d8b7ba4c1c79
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.397.0-cp314-cp314t-win_arm64.whl

Download URL leptris-1.9.397.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
5b0d52b2c0d90972c6748436c5be575876cea210d379575c6dbbff275768cbd3
BLAKE2b-256 checksum
How to use checksums
f7212cbf935ca15eecbe5b02fe5c48d1b442f2a5253595ba4898a893179df035
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.397.0-cp314-cp314t-win_amd64.whl

Download URL leptris-1.9.397.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
0e502260bfeec247e7b15d7d2bc3922e1c87d87962a12954796daadb90227084
BLAKE2b-256 checksum
How to use checksums
3ff39882863d063c0870ba9accc7997746646a2de2ec2c7407a469a4cb833068
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.397.0-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL leptris-1.9.397.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
e082e31b52d26c633c916cb9ec4f97ffb600106aae7b07cffe51894dba877a18
BLAKE2b-256 checksum
How to use checksums
e8c421fbc50c99662fa18d4a33e042dd184293fb38278b795cffd3de7b0f7649
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.397.0-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL leptris-1.9.397.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
1c658ad896e81a50adc3b2a25eaa8ccf01a9f7506a861a3c9953d98109cc8486
BLAKE2b-256 checksum
How to use checksums
b8cf0c8f8cc6cc1e136915fc3b368411e5e1ec7a78015afea059e4f39f5de877
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.397.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL leptris-1.9.397.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
a5737e846f362cc977019c7d621bde334a081d6f11b23764f082e6765e343ec9
BLAKE2b-256 checksum
How to use checksums
5832e081dfd3c47e64f31c3ec33ea29e6267bc7b1310327886a57fa20e0575f9
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.397.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL leptris-1.9.397.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
f58484fcf0c44ecc1627098ad8e1d5098ee3c178e5e9c4d5bddc81eb5beb40b9
BLAKE2b-256 checksum
How to use checksums
17ae2bad1fa61cc3b6c0f7e405c892963543376851a7ffa590054f737b0a8e99
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.397.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL leptris-1.9.397.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
ffe6002961a45c992bf0585ba64ef3a9c4fe66b26fa1b5d26edf006b6a66158e
BLAKE2b-256 checksum
How to use checksums
10104f87f97dfd35e1056bd1c0007bb63315204ceb4981704fb5430569b33f1b
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.397.0-cp314-cp314t-macosx_10_15_x86_64.whl

Download URL leptris-1.9.397.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
49214a9b2c205499400c4c748ae9bc4801e32a29e302758e9b61730166fb8652
BLAKE2b-256 checksum
How to use checksums
803bedf225221cd9a5b4405bd76987ee08b8f63a75e6fd3146a08536c415188d
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.397.0-cp39-abi3-win_arm64.whl

Download URL leptris-1.9.397.0-cp39-abi3-win_arm64.whl
Size 2.2 MB
Tags CPython 3.9 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
d4216116952a462292cfd436a5e277abae03c10d8dc8f541a5338d34d92b684a
BLAKE2b-256 checksum
How to use checksums
7c70f5260346760a6702f4ec49370a6244126712b423efaa36f5091a06f5f82f
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.397.0-cp39-abi3-win_amd64.whl

Download URL leptris-1.9.397.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
c189722a5fc52f7bf8cf2aabbefe28ff9960c453e1a069166148d67ad24317f8
BLAKE2b-256 checksum
How to use checksums
b6f27baa911ddba33b4176ee4ac9421962b782172a2f9db97a37b28a70a04c3b
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.397.0-cp39-abi3-win32.whl

Download URL leptris-1.9.397.0-cp39-abi3-win32.whl
Size 2.2 MB
Tags CPython 3.9 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
6700f7ff7945a87c67ade16440bd5fd9cead4d7afbe62052304244369a05e280
BLAKE2b-256 checksum
How to use checksums
43f047c067106614947b980239a4be64853ba77365abafbc805e35c8e8f32ae7
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.397.0-cp39-abi3-musllinux_1_2_x86_64.whl

Download URL leptris-1.9.397.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
59ec102883cf7c74826dabc313e497e7a1e156f19e3af7b91546e4fae42a797d
BLAKE2b-256 checksum
How to use checksums
015e080b5e5b35589012c00c5454a196a57db53e587c9b3916b7544171b07567
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.397.0-cp39-abi3-musllinux_1_2_i686.whl

Download URL leptris-1.9.397.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
2901618600bb6817399c3a7f7360d088792f0b3f8a336077412a5914cfc93af1
BLAKE2b-256 checksum
How to use checksums
58026e1d8b91bfb9bd9281e56fcb8b38a00f56ea08eada927a16e6342c192c61
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.397.0-cp39-abi3-musllinux_1_2_armv7l.whl

Download URL leptris-1.9.397.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
8db0ff7e26c888679b9bd606b276e5105f455275ab475d344ea4203a480b343f
BLAKE2b-256 checksum
How to use checksums
16d0e5ee16d1cf1246dc2b0465f807dcf1c8b2c4316d15c20940050a797843a9
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.397.0-cp39-abi3-musllinux_1_2_aarch64.whl

Download URL leptris-1.9.397.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
ffd04be9ca6e071db1aa09ea00fee1eb8229284ccd8b1acd686866146a4970d8
BLAKE2b-256 checksum
How to use checksums
10d965b9b3dcbe2231cde1d2919ac236c1c046cba64d23d9464c22e83a6dc833
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.397.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL leptris-1.9.397.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
75bfcaf97ed64632759176fca3db56862c5ec883223f35c24ead738e52059631
BLAKE2b-256 checksum
How to use checksums
c446bac85a70d1cdb5e7f63e004cbeb0cc6bbc33f1539894852559e308a5ed2a
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.397.0-cp39-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl

Download URL leptris-1.9.397.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
fc9d186d38ab972d9e9d662868097572b9ed4aec56d8ca3abcefa7322f9383e5
BLAKE2b-256 checksum
How to use checksums
bc3496e8ea3f235420adab3974f75eacee0efe4eb4d6036b067e18aefe30bdeb
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.397.0-cp39-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl

Download URL leptris-1.9.397.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
dbcd4e3928f842a922b17245f7842fca150b5457e4cb8145cbbac9750d6de789
BLAKE2b-256 checksum
How to use checksums
58d5ba83431a9da5f4aa1a13b9e1bbe9ad719931b6d0dab2f8e20b3ab50ccfe3
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.397.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL leptris-1.9.397.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
62b94eb76f65f215783839295f7e195f2bb7777315dbaefce1ab17526d30e260
BLAKE2b-256 checksum
How to use checksums
43a20ae2fa806929e4bb0417585d2dd85d48e45f80654cd7e586be3de609925a
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.397.0-cp39-abi3-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl

Download URL leptris-1.9.397.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
a12e4ebb325fe052b68c50620002ac2163d66f46e64107ff971b4ef07783d406
BLAKE2b-256 checksum
How to use checksums
d61c01b1ba418253ecb1cf6cba0306e1ddaf3ac6c0fca3e5eff48e2ac21ab83b
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.397.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL leptris-1.9.397.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
0687a30e523708985cb9f52c9b7b9d6944daf05304131ba9cb78b4391b59f287
BLAKE2b-256 checksum
How to use checksums
6d97cbadfd5462e205d2b8def259a1c1bd9ce45fce9ce30ebf2692d84678daba
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.397.0-cp39-abi3-macosx_10_9_x86_64.whl

Download URL leptris-1.9.397.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
0a2ab28818090e97074c328fd7bf25d740e4e0053a821128a63ca079dbfe370e
BLAKE2b-256 checksum
How to use checksums
2d643e5945da013c7596bf84998fd8b2c2a811b581d92b78842bc09c6d8a5ed3
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.397.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.397.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.397.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