sodom if you like to write HTML in Python.
Project description
sodom
sodom if you like to write HTML in Python. Faster x2.5 than dominate
Installation
python -m pip install sodom
Examples
You can check demo via python -m sodom
or preview code in sodom.__main__
.
from sodom import *
...
def card(_header: str, _price: str, _submit_text: str, *_conditions: str):
with div(class_='card mb-4 box-shadow'):
with div(class_='card-header'), h4(class_='my-0 font-weight-normal'):
text(_header)
with div(class_='card-body'):
with h1(class_='card-title pricing-card-title'):
text(_price)
with small(class_='text-muted'):
text(' mo')
with ul(class_='list-unstyled mt-3 mb-4'):
for _c in _conditions:
li(_c)
with button(type_='button', class_='btn btn-lg btn-block btn-primary'):
text(_submit_text)
...
Features
- supported standart html element (normal/void). Check
sodom.consts.NORMAL_TAGS
andsodom.consts.VOID_TAGS
. - supported several special attributes like
data-
,v-
... Checksodom.consts.SPECIAL_ATTRS
. You can extend them in runtime before library usage. - sodom is 2.5 times more productive than
dominate
(1.6 ifSODOM_TAG_CACHE=0
) and ~5.5-6 times thanfast_html
. Checksodom.tests.test_performance_*
. - avoided builtin keyword trouble via cutting off leading and ending
_
. For example,[py]class_='button'
equals[html]class="button"
. - supported
ContextVar
. Tested onasyncio
andThreadPool
.
Environment Variables
SODOM_TAG_CACHE=128
- cache size, check it
Feedback
If you have any feedback, text me at inbox@protaz.ru
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sodom-1.0.0.tar.gz
(11.7 kB
view hashes)