Skip to main content

Effortless console text colorization based on user-defined patterns.

Project description

PyPI - Downloads Pepy Total Downlods

ColorPattern is a Python module designed for enhancing text output in the console by applying color to specific patterns. It offers a flexible way to define patterns and apply different text colors, background colors, styles, underlines and other options to predefined patterns.

Use regular expressions to define the pattern to color. With the color pattern initialized, any console output that matches the pattern will have the defined styles applied to it.

Since Version 1.4.1 can strikethrough, blink text and italic text

Installation

You can install ColorPattern using pip:

pip install colorpattern

Usage

Set the patterns whith SetPatterns(<patterns>,<options>)

Use start_color(<patterns>) for initialize the color print, and end_color() for stop colorization.

Example

from colorpattern import *

def main():
    # Define your color patterns
    pattern1 = SetPattern(r'\d+', color=Fore.GREEN)
    pattern2 = SetPattern(r'Colorpattern', color=Fore.LIGHTRED_EX, underline=True)
    pattern3 = SetPattern(r'Croketillo', color=Fore.BLACK, back=Back.LIGHTWHITE_EX, style=Style.BRIGHT)
    email = SetPattern(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,7}\b', color=Fore.BLUE)
    strike= SetPattern(r'NEW!!!', strikethrough=True)
    blink=SetPattern(r'BLINK', blink=True)
    italic=SetPattern(r'ITALIC TEXT', italic=True)

    # Initialize colorization and get the original print function and applied patterns
    print("\nSTART COLORIZED PRINT")
    print('-----------------------')
    start_color([pattern1, pattern2, pattern3, email, strike, italic,blink])

    # Use the custom print function with colorization
    print('Colorpattern v1.4.6')
    print('By Croketillo - croketillo@gmail.com')
    print('NEW!!! - NOW YOU CAN INCLUDE STRIKETHROUGH IN PATTERNS')
    print('This is a BLINK and ITALIC TEXT test')

    # End colorization and restore the original print function
    end_color()
    print("\nNORMAL PRINT")

    # Now, printing returns to normal
    print('-----------------------')
    print('Colorpattern v1.4.5')
    print('By Croketillo - croketillo@gmail.com')
    print('NEW!!! - NOW YOU CAN INCLUDE STRIKETHROUGH IN PATTERNS')
    print('This is a BLINK and ITALIC TEXT test')

    # You can re-enable colorization with new patterns if necessary
    new_pattern = SetPattern(r'new pattern', color=Fore.LIGHTCYAN_EX)

    # Use the custom print function with new patterns
    print("\nSTART COLORIZED PRINT AGAIN")
    start_color([pattern1, new_pattern])
    print('-----------------------')
    print('This is a new pattern. 123456')

    # End colorization and restore the original print function
    end_color()
    print("\nNORMAL PRINT AGAIN")
    # Now, printing returns to normal even with the new patterns
    print('-----------------------')
    print('This is a normal message again. 12345')

if __name__ == "__main__":
    main()

Patterns

  • pattern: Regular expression pattern to match in the text.

  • color: Text color (e.g., ‘green’, ‘red’, ‘yellow’).

  • back: Background color (e.g., ‘black’, ‘blue’, ‘white’).

  • style: Text style (e.g., ‘bright’, ‘dim’, ‘reset_all’).

  • underline: Set to True for underlining matched text.

  • strike: Set to True for strikethrough matched text.

  • blink: Set to True for blink matched text.

  • italic: Set to True for italic matched text.

Colors (colorama):

Text Colors (Fore):

  • Fore.BLACK

  • Fore.RED

  • Fore.GREEN

  • Fore.YELLOW

  • Fore.BLUE

  • Fore.MAGENTA

  • Fore.CYAN

  • Fore.WHITE

  • Fore.LIGHTBLACK_EX

  • Fore.LIGHTRED_EX

  • Fore.LIGHTGREEN_EX

  • Fore.LIGHTYELLOW_EX

  • Fore.LIGHTBLUE_EX

  • Fore.LIGHTMAGENTA_EX

  • Fore.LIGHTCYAN_EX

  • Fore.LIGHTWHITE_EX

  • Fore.RESET

Background Colors (Back):

  • Back.BLACK

  • Back.RED

  • Back.GREEN

  • Back.YELLOW

  • Back.BLUE

  • Back.MAGENTA

  • Back.CYAN

  • Back.WHITE

  • Back.LIGHTBLACK_EX

  • Back.LIGHTRED_EX

  • Back.LIGHTGREEN_EX

  • Back.LIGHTYELLOW_EX

  • Back.LIGHTBLUE_EX

  • Back.LIGHTMAGENTA_EX

  • Back.LIGHTCYAN_EX

  • Back.LIGHTWHITE_EX

  • Back.RESET

Text Styles (Style):

  • Style.RESET_ALL

  • Style.BRIGHT

  • Style.DIM

  • Style.NORMAL

License

This project is licensed under the GNU-GLP,3 License - see the LICENSE file for details.

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

colorpattern-1.4.7.tar.gz (43.9 kB view details)

Uploaded Source

Built Distribution

colorpattern-1.4.7-py3-none-any.whl (30.9 kB view details)

Uploaded Python 3

File details

Details for the file colorpattern-1.4.7.tar.gz.

File metadata

  • Download URL: colorpattern-1.4.7.tar.gz
  • Upload date:
  • Size: 43.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for colorpattern-1.4.7.tar.gz
Algorithm Hash digest
SHA256 dd9b846f4b8cde3e7cf452fe4ba1fec118c2589b605d05cb63772990202c4aae
MD5 1b6d68716d054d9bcc4e6cdfd0bfa786
BLAKE2b-256 54632fb9485f248e550f0e5a5e32c443eb1dabb48aef099a0e2c4b758cd5d76d

See more details on using hashes here.

File details

Details for the file colorpattern-1.4.7-py3-none-any.whl.

File metadata

  • Download URL: colorpattern-1.4.7-py3-none-any.whl
  • Upload date:
  • Size: 30.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for colorpattern-1.4.7-py3-none-any.whl
Algorithm Hash digest
SHA256 f5df7f33543e460c808eff9c464bb9586ebdaf3d20a5651c23438f1e312cf2f0
MD5 e1d07b100c6dbf2fdd8520401fe3608e
BLAKE2b-256 56616ceb53e7bd65fb32e1ce940074bbb8bb0400848ab99cafd40a087a91f66b

See more details on using hashes here.

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