Skip to main content

Modern HTML template rendering in Python

Project description

Python Fragments

This package is in early development and not yet stable. The API may change without notice between releases.

Modern HTML template rendering in Python — no build step, no template files, and native HTML awareness out of the box.

from fragments import loader  # isort: skip

from fastapi import FastAPI
from fastapi.responses import HTMLResponse
from components import Layout, PostCard

app = FastAPI()

POSTS = [...]

@app.get("/", response_class=HTMLResponse)
async def index() -> str:
    published = [p for p in POSTS if p.published]
    return <>
        <Layout title="My Blog">
            <h1>Latest Posts</h1>
            <PostCard for={{ post in published }} post={{ post }} />
        </Layout>
    </>

IDE Support

Type checking, completions, hover docs, go-to-definition, rename, and semantic highlighting — all working inside fragment syntax.

VS Code completions demo

Installation

pip install python-fragments

Register the loader at your application's entry point, before importing any modules that contain fragments:

from fragments import loader  # isort: skip

Any .py file containing <> is transpiled automatically. Nothing else to configure.

Feedback and feature requests

Bug reports and feature requests are welcome via GitHub Issues. The project is not currently accepting code contributions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_fragments-0.33.tar.gz (24.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_fragments-0.33-py3-none-any.whl (30.7 kB view details)

Uploaded Python 3

File details

Details for the file python_fragments-0.33.tar.gz.

File metadata

  • Download URL: python_fragments-0.33.tar.gz
  • Upload date:
  • Size: 24.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for python_fragments-0.33.tar.gz
Algorithm Hash digest
SHA256 54ff1bd7a520c595691fe818ebe9ddbc4dbff39f12d27d403612e1b29285e758
MD5 b5e334bd06f6443608968a4f9873f4f4
BLAKE2b-256 2d92d4582c0320da190f1ca5c633b6b0e4b5bd616b763cdc92f2fae87274f4ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_fragments-0.33.tar.gz:

Publisher: release.yml on TheRunningAlgorithm2/python-fragments

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_fragments-0.33-py3-none-any.whl.

File metadata

  • Download URL: python_fragments-0.33-py3-none-any.whl
  • Upload date:
  • Size: 30.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for python_fragments-0.33-py3-none-any.whl
Algorithm Hash digest
SHA256 84ea005c06676bcd1bc0605a6056f0ec3a70b073784a7c236dfd933247d4550d
MD5 73503c59a1d6ad69942d35b92df3fb1a
BLAKE2b-256 35cb8e4283aedd0a77fa7eca41b8dbd9c5c148925f7de20da816b5c9c9ff5fbc

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_fragments-0.33-py3-none-any.whl:

Publisher: release.yml on TheRunningAlgorithm2/python-fragments

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page