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.pending("#msg-opt"),
ext.ws(connect="click"),
)
Installation
To install with pip run:
pip install htpy-htmx
Metadata
Release files for htpy-htmx 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| htpy_htmx-0.1.2.tar.gz | 97.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| htpy_htmx-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 106.2 kB
Release files / htpy_htmx-0.1.2.tar.gz
| Download URL | htpy_htmx-0.1.2.tar.gz |
|---|---|
| Size | 97.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d8d3735b4c3c15f82ddb4032e2e20b70de8a6aa940cc9b5e673ed9a1cccb72cd
|
|
BLAKE2b-256 checksum How to use checksums |
67de8b508b54170c4ea443509f670d8a4b55bc9f03ba32951d85d99945198530
|
| 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.2-py3-none-any.whl
| Download URL | htpy_htmx-0.1.2-py3-none-any.whl |
|---|---|
| Size | 8.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
12c2acaaadaf7fac38f1fc798761a15cebac0437fcc14b8a7800a31db99795ed
|
|
BLAKE2b-256 checksum How to use checksums |
86330a21e013080b448a9b10a46667df7e0977abda1983267a3a5f52ea9281a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|