Skip to main content

htpy-htmx

htpy-htmx is a library to make it easier to work with htmx in htpy.

This library is intended to work with htmx 4.

Note: This project is still a work in progress and there may be breaking changes.

Usage

You can import htpy-htmx as htpy_htmx.hx. All normal htmx attributes are available from the module, but without the "hx-" prefix. So hx-get="url" would become hx.get("url").

Some htmx extension attributes are available in the htpy_htmx.ext module.

import htpy as h
from htpy_htmx import hx
from htpy_htmx import ext

# pass htmx attributes as functions
h.div("#div-id", hx.get("/some-url/"), hx.trigger("click"))

# hx-partial is also available as a htpy element
h.div("#div-id")[
    h.h2["header"],
    hx.partial("#part-id", hx.target("#some-element"))[
        h.div("#div1")[
            h.p["part one"]
        ]
    ],
]

h.div(
    # trigger allows a list of trigger events
    hx.trigger("blur", "keyup[key=='Enter']"),
    # swap takes a swap style as string and modifiers as keyword arguments
    hx.swap("before", swap="1s", scroll="bottom"),
    # hx-on takes an event and a JavaScript expression
    hx.on("htmx:before:request", "showSpinner()"),
    # vals takes a dict of data.
    # To evaluate JavaScript, wrap your js expression in hx.JS() and pass js=True.
    hx.vals({"foo": "bar", "some_js": hx.JS("getSomeData()")}, js=True),
)

# to enable inheritance pass inherited=True to a hx-function
h.div(hx.confirm("Are you sure?", inherited=True))[
    h.button(hx.delete("/account"))["Delete My Account"],
    h.button(hx.put("/account"))["Update My Account"],
]

# Some extension attributes are available in ext:
h.div(
    ext.preload("touchstart"),
    ext.optimistic("#msg-opt"),
    ext.ws(connect="click"),
)

Installation

To install with pip run:

pip install htpy-htmx

Metadata

Release files for htpy-htmx 0.1.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 htpy-htmx 0.1.0
File Size Uploaded
htpy_htmx-0.1.0.tar.gz 96.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for htpy-htmx 0.1.0
File Interpreter ABI Platform
htpy_htmx-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 105.4 kB

Release files / htpy_htmx-0.1.0.tar.gz

Download URL htpy_htmx-0.1.0.tar.gz
Size 96.9 kB
Tags Source
SHA-256 checksum
How to use checksums
501a8560e6aa17d2a6b6105a2a3fc153b9b93091a7dba404ed83c51980c0b709
BLAKE2b-256 checksum
How to use checksums
ccafbf87a9f448569e83c419e78ee844b55593123198effddf87cf0daae6e7cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / htpy_htmx-0.1.0-py3-none-any.whl

Download URL htpy_htmx-0.1.0-py3-none-any.whl
Size 8.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
812edc2496d7280da8e0f6900bebe501af72e330ea7b345ba5fd274cd364e517
BLAKE2b-256 checksum
How to use checksums
f1447c5382d60e189cdc192eba3117992f5f2ac808f0d035ce1c25ff6e504284
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

2 release files

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