Skip to main content

Runtime library for PSX (Python Syntax eXtension) - HTML-like syntax for Python

Project description

Topple

A Python transpiler that compiles PSX (Python Syntax eXtension) files to standard Python. Write HTML-like syntax within Python code for creating dynamic web UIs, similar to JSX/TSX in the JavaScript ecosystem.

Installation

Compiler (Go binary)

Install with go install:

go install github.com/fjvillamarin/topple/cmd/topple@latest

Or with mise:

mise use go:github.com/fjvillamarin/topple/cmd/topple

Or download a pre-built binary from GitHub Releases.

Python Runtime

The generated Python code requires the Topple runtime:

pip install topple

Quick Start

# hello.psx
view HelloWorld(name: str = "World"):
    <div>Hello, {name}!</div>
topple compile hello.psx -o hello.py

Known Issues

Last Updated: 2026-02-06

Active Issues (1)

High Priority

  1. Issue #67: Parser: Add async view statement support
    • Status: Active, needs parser support for async view
    • Repro: topple parse on a file that starts with async view ... returns at 'async': unexpected token
    • Impact: Async view declarations are currently unsupported

Recently Resolved

Verification Snapshot

  • go test ./... passes as of 2026-02-06.

See Also

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

topple-0.1.0.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

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

topple-0.1.0-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file topple-0.1.0.tar.gz.

File metadata

  • Download URL: topple-0.1.0.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for topple-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3712a567418878a03019c85c01beab7a18461100390526b38b533dde6fc2ae89
MD5 db69267d8a7c9f1ad28a3f7f00e08a2b
BLAKE2b-256 cd9aea8cb819d2a7b2b4122b9c123351266d6ce35f8904b19bf58bb5b229d424

See more details on using hashes here.

Provenance

The following attestation bundles were made for topple-0.1.0.tar.gz:

Publisher: pypi.yml on fjvillamarin/topple

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

File details

Details for the file topple-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: topple-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for topple-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 396279d812b1eb748a0baad27c78e337de2b69d8dd93baeb1248206bbcc6801e
MD5 a28d9ced5a029599add94992918e62a7
BLAKE2b-256 5f0f2a4aec28a7a4ed7d1dcd7b58e4965f75b1e11829f34743637dbc36f4b039

See more details on using hashes here.

Provenance

The following attestation bundles were made for topple-0.1.0-py3-none-any.whl:

Publisher: pypi.yml on fjvillamarin/topple

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