Skip to content

olsonpm/py_simple-chalk

Repository files navigation

Simple Chalk

Table of Contents

Intro

What is it?

A terminal string styling library for python. It implements a subset of Sindre Sorhus' chalk (which is for js).

e.g. chalk.green.bold("success") prints like you'd expect in the console.

Why create it?

I am familiar with and enjoy the syntax of chalk. Anthonyalmarza's chalk deviates from that syntax and so I created my own.

I'm also new to python so this was a good way to learn.

Why the subset of features?

I only use chalk for very simple purposes so I left out things like 256 colors.

Install

$ pip install simple_chalk

Usage

from simple_chalk import chalk, green

# both of these are the same
print(chalk.green("success"))
print(green("success"))

# chained
print(green.bold("success"))

# assign combinations
success = green.bold.underline
print(success("we did it!"))

# last color wins
print(green.red("this is red"))

# background and foreground colors are separate
whyNot = green.bgWhite.red.bgGray
print(whyNot("this is red text with a gray background"))

Api

simple_chalk exports the following

chalk (string) => string
  • A singleton that can be used instead of importing the colors and styles directly.
  • chalk and all exported colors/styles are chainable callables. When called, they take a single string argument and return a string wrapped in the appropriate ascii color codes.
newChalk () => Chalk
  • You probably don't need this, but it creates a new chalk instance in case another library is misbehaving.

The following colors are exported

  • black
  • red
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white
  • blackBright (also 'gray' and 'grey')
  • redBright
  • greenBright
  • yellowBright
  • blueBright
  • magentaBright
  • cyanBright
  • whiteBright

Each color also has a camel-cased bg equivalent. e.g. bgBlack and bgYellowBright

Finally the following miscellaneous styles are exported

  • bold
  • dim
  • underline
  • hidden

Test

hub clone olsonpm/py_simple-chalk
cd py_simple-chalk
python runTests.py

Features included from js version of Chalk

  • chainable api
  • same color names (with added aliases)

Features omitted

** Features marked with * are ones I'd pull in should someone create a PR.

  • 256 colors and TrueColor support
  • multiple arguments, and thus nested styles
  • *color support detection
  • *blue -> blueBright auto conversion on windows
  • *ability to disable
  • *modifiers other than the miscellaneous styles noted above. e.g. reset, italic, inverse etc.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages