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)
| File | Size | Uploaded | |
|---|---|---|---|
| htpy_htmx-0.1.0.tar.gz | 96.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|