Skip to main content

Takes control of terminal

Project description

Logo

Test Python package codecov pre-commit.ci status PyPI PyPI - Python Version PyPI - Status

Installation

    pip install termspark

Usage

print(), but more!

Import Termspark's print and take advantage of all its features, colors, highlights, styles, hyperlinks and more ...

from termspark import print

print(" Termspark ", "white", "blue", "italic")
print(" [@termspark](https://github.com/faissaloux/termspark) ", "black", "white", "italic, bold")

You can choose from ["left", "center", "right"] to specify where to print by passing it as position parameter: print(" Termspark ", position="center").

You can enable the Full Width using full_width parameter: print(" Termspark ", highlight="blue", full_width=True).

You can fill the empty space by a character using print(separator=).

from termspark import print

print(" TERMSPARK ", "white", "green", position="center", separator="_")

input()

input with colors, highlights, styles, and hyperlinks.

With input(position=) you can specify position where to put your input text ["left", "center", "right"]. With input(full_width=) you can enable full width True | False.

from termspark import input

name = input(" What's your name? ", "white", "blue", "italic", "center", True)

Input Type

You can specify the input type by passing it to the type= parameter.

For a calculation example, to pass the input value into a calculation you don't need to convert it to int anymore, you just need to set it from type argument 🥳 .

from termspark import input

birthyear = input(" Your year birth? ", "white", "blue", type=int)
print(f"Your age is: {2023 - birthyear}")

Input Callback

the input() supports callback too.

If you need to pass the input value into some function before returning the result, you need to pass it into the callback= argument.

from termspark import input

def age_calc(birthyear, currentyear=2023):
    return currentyear - birthyear

age = input(" Your year birth? ", "white", "blue", type=int, callback=age_calc)
print(f"Your age is: {age}")

You can use separator in input(separator=) too.

from termspark import input

name = input(" What's your name?", "white", "blue", position="left", separator=".")

line()

To print empty line use line(), you can leave it empty or fill it with a repeated character, you can specify its color too.

from termspark import line

line(".", "blue")
line(highlight="green")
line()
line("-")

More control

    from termspark import TermSpark

    TermSpark().print_right('RIGHT').spark()
    TermSpark().spark_right('RIGHT').spark()
    TermSpark().print_left('LEFT').spark()
    TermSpark().spark_left('LEFT').spark()
    TermSpark().print_center('CENTER').spark()
    TermSpark().spark_center('CENTER').spark()
    TermSpark().line('.').spark()

    TermSpark().print_left('LEFT').print_right('RIGHT').set_separator('.').spark()
    TermSpark().print_left('LEFT').print_center('CENTER').print_right('RIGHT').set_separator('.').spark()
    TermSpark().spark_left('LEFT').spark_center('CENTER').spark_right('RIGHT').set_separator('.').spark()

Note Separator can contain only one character.

You can also paint your content

Supported colors:

  • black
  • red
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white
  • gray / grey
  • light red
  • light green
  • light yellow
  • light blue
  • light magenta
  • light cyan
    from termspark import TermSpark

    TermSpark().print_right('RIGHT', 'blue').spark()
    TermSpark().print_left('LEFT', 'light red').spark()
    TermSpark().print_center('CENTER', 'light_green').spark()

Supported highlights:

  • black
  • red
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white
  • gray / grey
  • light red
  • light green
  • light yellow
  • light blue
  • light magenta
  • light cyan
    from termspark import TermSpark

    TermSpark().print_right('RIGHT', None, 'light_magenta').spark()
    TermSpark().print_left('LEFT', 'red', 'white').spark()
    TermSpark().print_center('CENTER', 'white', 'light blue').spark()

You can use different styles on same position

    from termspark import TermSpark

    TermSpark().spark_left([' * ', 'gray', 'white'], [' Info ', 'white', 'blue']).spark()
    TermSpark().spark_center([' * ', 'gray', 'white'], [' Warning ', 'white', 'yellow']).spark()
    TermSpark().spark_right([' * ', 'gray', 'white'], [' Error ', 'white', 'red']).spark()

You know you can use them all together 😉

Lines are too long to write a termspark line! 😑

    from termspark import TermSpark

    TermSpark().spark_left([' * ', 'gray', 'white'], [' Info ', 'white', 'blue']).spark_center([' * ', 'gray', 'white'], [' Warning ', 'white', 'yellow']).spark_right([' * ', 'gray', 'white'], [' Error ', 'white', 'red']).spark()

You can separate them by calling each function in a line 🤤

    from termspark import TermSpark

    termspark = TermSpark()
    termspark.spark_left([' * ', 'gray', 'white'], [' Info ', 'white', 'blue'])
    termspark.spark_center([' * ', 'gray', 'white'], [' Warning ', 'white', 'yellow'])
    termspark.spark_right([' * ', 'gray', 'white'], [' Error ', 'white', 'red'])
    termspark.spark()

Still too long 🙄 Got you 🤩

    from termspark import TermSpark

    termspark = TermSpark()
    termspark.spark_left([' * ', 'gray', 'white'])
    termspark.spark_left(' Info ', 'white', 'blue')
    termspark.spark_center([' * ', 'gray', 'white'])
    termspark.spark_center([' Warning ', 'white', 'yellow'])
    termspark.spark_right(' * ', 'gray', 'white')
    termspark.spark_right([' Error ', 'white', 'red'])
    termspark.spark()

Raw

You can print raw version which is colors-code-free so you can print clean text into files for example.

    from termspark import TermSpark

    raw = TermSpark().print_left('LEFT').print_right('RIGHT').set_separator('.').raw()

Force Width

You can customize width instead of the default full terminal width.

    from termspark import TermSpark

    TermSpark().set_width(40).print_left("LEFT", "red").print_right("RIGHT", "blue").spark()

Set content max width

You can specify max width of content depending on position using max_[position](max_characters).

    from termspark import TermSpark

    termspark = TermSpark()
    termspark.spark_left(["LEFT", "red"])
    termspark.spark_right(["RIGHT", "blue"])
    termspark.max_left(2)
    termspark.max_right(3)
    termspark.spark()

This should show only "LE" on the left, and "RIG" on the right.

Warning max_[position]() is only supported by sparkers.

Full width

You can enable full width by using full_width().

    from termspark import TermSpark

    termspark = TermSpark()
    termspark.spark_center(['Thanks for using Termspark!', 'white', 'green'])
    termspark.full_width()
    termspark.spark()

Warning full_width() can only be used with one position.

Separator

You can add color and highlight to separator too using set_separator(content, color, highlight).

termspark = TermSpark()
termspark.spark_left([' Author ', 'green'])
termspark.spark_right([' Faissal Wahabali ', 'green'])
termspark.set_separator('.', 'green')
termspark.spark()

Line

You can add highlight a line by using line(highlight=highlight).

termspark = TermSpark()
termspark.line(highlight='green')
termspark.spark()

Style

You can style your text by passing it to print() style parameter or to spark([]) fourth list element.

Supported styles:

  • bold
  • dim
  • italic
  • overline
  • underline
  • double underline
  • strike through
  • blink
  • reverse
  • hidden

Note You can mix styles by separating them by commas.

termspark = TermSpark()
termspark.print_center(' Termspark ', 'green', style='underline, overline, italic')
termspark.full_width()
termspark.spark()

Hyperlinks

You can insert hyperlink using Markdown [TEXT](LINK).

termspark = TermSpark()
termspark.spark_left([" Author ", "green"])
termspark.spark_right([" [@faissaloux](https://github.com/faissaloux) ", "green"])
termspark.set_separator(".", "green")
termspark.spark()

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

termspark-1.9.0-py3-none-any.whl (22.0 kB view hashes)

Uploaded Python 3

Supported by

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