Skip to main content

bannerforge

PyPI version License

Colorful terminal banners. One line, one print, done.

██╗  ██╗███████╗██╗     ██╗      ██████╗
██║  ██║██╔════╝██║     ██║     ██╔═══██╗
███████║█████╗  ██║     ██║     ██║   ██║
██╔══██║██╔══╝  ██║     ██║     ██║   ██║
██║  ██║███████╗███████╗███████╗╚██████╔╝
╚═╝  ╚═╝╚══════╝╚══════╝╚══════╝ ╚═════╝
                                      World

install

pip install bannerforge

usage

from bannerforge import banner

banner("HELLO", "World")

That's it. No print(), no assignment, no ceremony. The banner renders on its own.

explicit rendering

If you need deterministic timing — tests, CI, precise control — call .render() explicitly:

banner("HELLO", "World").render()

This bypasses the __del__ magic and prints immediately. Once rendered, the object won't render again.

alignment

banner("HELLO", "World").left()
banner("HELLO", "World").right()
banner("HELLO", "World").center()

Only the subtitle moves. The main text is always centered.

custom colors

By default a random color pair is picked each call. To pin them:

banner("HELLO", "World").colors("cyan", "yellow").render()

Valid colors are the same ones cfonts accepts: black, red, green, yellow, blue, magenta, cyan, white, gray, and their bold* variants (e.g. boldred).

no subtitle

banner("HELLO")

error handling

If rendering fails, bannerforge raises an exception and prints a clear message to stderr. You can catch it if you want:

try:
    banner("").render()
except ValueError as e:
    print(f"caught: {e}")

The __del__ fallback swallows errors silently (to avoid interpreter shutdown crashes), so for reliable error reporting always use .render().

how it works

The banner object normally renders itself in __del__. When you don't bind the return value, Python drops the reference immediately and the banner prints. If you do bind it, the banner waits until the variable goes out of scope.

# prints immediately
banner("HELLO", "World")

# prints when x goes out of scope / program ends
x = banner("HELLO", "World")

For predictable behavior, prefer .render(). It makes the output timing explicit and surfaces any rendering errors.

license

Custom Attribution License — see LICENSE.

You can use, modify, and redistribute this code freely. If you do, you must credit Himanta Bhuyan and link back to this repository.

author

Himanta Bhuyan — @realximanta

Metadata

Release files for bannerforge 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bannerforge 0.2.0
File Size Uploaded
bannerforge-0.2.0.tar.gz 5.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bannerforge 0.2.0
File Interpreter ABI Platform
bannerforge-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 10.4 kB

Release files / bannerforge-0.2.0.tar.gz

Download URL bannerforge-0.2.0.tar.gz
Size 5.0 kB
Tags Source
SHA-256 checksum
How to use checksums
32765a3cadfca777fd9524b1b65820f7fe031243eac688232d8e18d31c1ddc39
BLAKE2b-256 checksum
How to use checksums
9145daf52119c9522e9cf8a51d805c4488a3640e995e6dcd3928756e70c587e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / bannerforge-0.2.0-py3-none-any.whl

Download URL bannerforge-0.2.0-py3-none-any.whl
Size 5.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bbac932018d506c71a93ad26150903252f147aa10985d005f374ca4f8056eff1
BLAKE2b-256 checksum
How to use checksums
a8439c2858d3ed9f87aa934b118cbbab9c489fda52065670ef3a7a94c72670fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.3.0

2 release files

0.2.1

2 release files

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page