Skip to main content

Boxprint

A small package to print boxes

Usage

from boxprint import bprint

bprint("hello world")
╭──────────────────────────────────────────────────────────────────────────────╮
│ Hello World                                                                  │
╰──────────────────────────────────────────────────────────────────────────────╯

Examples

Simple Usage

from boxprint import bprint, BoxTypes
from colors import *  # ansicolors

"""
@param width
  Max width of the box
@param box_type
  The type of the box (LIGHT, HEAVY, DOUBLE, ROUND)
@param print_func
  The print function to use
@param stroke_func
  How the box characters should be stroked
@param fill_func
  How the text characters should be filled
"""
bprint("hello_world", width=40, box_type=BoxTypes.HEAVY, print_func=print)
bprint("Text\nWith\nMultiple\nLines")
bprint(
    "\nhello_world\n",
    width=40,
    box_type=BoxTypes.FILL,
    stroke_func=lambda text: color(text, fg="blue"),
    fill_func=lambda text: color(text, bg="blue", fg="black")
)

buf = []
def print_to_buf(string):
  buf.append(string)

# Boxes apply 2 spaces of padding to the left and right width = (default=80 - 2*2)
bprint("Inner Box", width=76, print_func=print_to_buf)
inner_box = "".join(buf)

bprint(f"I am some text!\n{inner_box}", title="Outer Box")
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Hello World                          ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

╭──────────────────────────────────────────────────────────────────────────────╮
│ Text                                                                         │
│ With                                                                         │
│ Multiple                                                                     │
│ Lines                                                                        │
╰──────────────────────────────────────────────────────────────────────────────╯

▗▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▖
▐                                      ▌
▐ hello_world                          ▌
▐                                      ▌
▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘

╭─┤ Outer Box ├────────────────────────────────────────────────────────────────╮
│                                                                              │
│ I am some text!                                                              │
│ ╭──────────────────────────────────────────────────────────────────────────╮ │
│ │ Inner Box                                                                │ │
│ ╰──────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────╯

Debug

from boxprint import dprint

a_list_of_numbers = [1, 2, 3, 4, 5]
dprint(a_list_of_numbers)

a_list_of_numbers = None
dprint(a_list_of_numbers)
╭─┤ a_list_of_numbers ├────────────────────────────────────────────────────────╮
│                                                                              │
│ tests/test_debug.py:11                                                       │
│                                                                              │
│ type = <class 'list'>                                                        │
│ value = [1, 2, 3, 4, 5]                                                      │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─┤ a_list_of_numbers ├────────────────────────────────────────────────────────╮
│                                                                              │
│ tests/test_debug.py:14                                                       │
│                                                                              │
│ type = <class 'NoneType'>                                                    │
│ value = None                                                                 │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

Current Stack

from boxprint import stprint

def my_function(param1, param2):
    local1 = [param1] * 4
    local2 = "a"
    stprint(width=60)

for i in range(5):
    my_function(i, i*3)
╭─┤ my_function - tests/test_stprint.py:35 ├───────────────╮
│                                                          │
│   param1 = 0                                             │
│   param2 = 0                                             │
│   local1 = [0, 0, 0, 0]                                  │
│   local2 = a                                             │
│                                                          │
╰──────────────────────────────────────────────────────────╯
╭─┤ my_function - tests/test_stprint.py:35 ├───────────────╮
│                                                          │
│   param1 = 1                                             │
│   param2 = 3                                             │
│   local1 = [1, 1, 1, 1]                                  │
│   local2 = a                                             │
│                                                          │
╰──────────────────────────────────────────────────────────╯

Release files for boxprint 0.0.15

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

Source distribution (sdist)

Source distribution for boxprint 0.0.15
File Size Uploaded
boxprint-0.0.15.tar.gz 4.3 kB Details

Built distribution (wheel)

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

Total release size: 10.8 kB

Release files / boxprint-0.0.15.tar.gz

Download URL boxprint-0.0.15.tar.gz
Size 4.3 kB
Tags Source
SHA-256 checksum
How to use checksums
4672f8236f948d0a3d4e2ba144990465f4fe4016a9d9ebb3ae2530d956459471
BLAKE2b-256 checksum
How to use checksums
91d064830c5200b594fca801f0dcec5471571fd2e4889a19f331eb099640306f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.0

Release files / boxprint-0.0.15-py3-none-any.whl

Download URL boxprint-0.0.15-py3-none-any.whl
Size 6.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c5923442ef0383a73414f278d80de151a0bcdc77cbe09c168706c0a82fd2e4c1
BLAKE2b-256 checksum
How to use checksums
82d39e085c1b5201aa869c5257aea42e5deb9815cc8db9cad622d28f6c8d5fe1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.0
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