Skip to main content

Functions for terminal colors and other features

Project description

YoungLion Terminal

Lightweight, well-documented ANSI terminal utilities for Python. This package

Table of contents

YoungLion Terminal

CI PyPI License: MIT Python Version issues stars

Advanced ANSI terminal utilities for Python — colors, text styles, cursor and screen controls, progress loaders, spinners and a compact colored logger. This library is focused on clear, consistent terminal output for CLI tools and small scripts.

Repository: https://github.com/Cavanshirpro/YoungLionTerminalPythonLibrary

Table of contents

Why use this library

  • Lightweight, dependency-free helpers that wrap standard ANSI sequences.
  • Small, composable primitives (LoaderBar, TerminalLoader, Spinner) that are easy to embed in scripts.
  • A simple colored Logger and presentation helpers (print_boxed, print_styled) for consistent CLI UX.

Installation

Development (editable install):

python -m pip install -e .

Install from GitHub:

python -m pip install git+https://github.com/Cavanshirpro/YoungLionTerminalPythonLibrary.git

Notes

  • Run commands from the repository root (where pyproject.toml / setup.cfg is located).
  • Use a terminal that supports ANSI escape codes (Windows Terminal, recent PowerShell, macOS Terminal, Linux terminals).

Quick examples

These examples show common usage patterns.

  1. Progress bar
import time
from YoungLion.terminal import LoaderBar, TerminalLoader

bar = LoaderBar(length=10, full_part=0, bar_length=30)
loader = TerminalLoader(bar, "Download")

for _ in range(10):
		loader += 1
		time.sleep(0.12)

loader.finish()
  1. Styled output
from YoungLion.terminal import print_styled, Color, TextStyle

print_styled("Status:", styles=(Color.BRIGHT_GREEN, TextStyle.BOLD), end=" ")
print_styled("OK", styles=(TextStyle.UNDERLINE,))
  1. Spinner
import time
from YoungLion.terminal import Spinner, Color

with Spinner("Working…", style=Color.BRIGHT_CYAN):
		time.sleep(2)

print("Done")
  1. Logger
from YoungLion.terminal import Logger

log = Logger(name="myapp", level="INFO", log_to_file=False)
log.info("Service started")
log.success("Operation completed")

API summary

Short reference to the publicly useful items (see module docstrings for full details):

  • Color, BackgroundColor, TextStyle — SGR constants for styling text.
  • CursorControl, ScreenControl, BufferControl — sequences to control the terminal cursor and buffers.
  • LoaderBar(length, full_part, bar_length=10) — progress value container.
    • Supports arithmetic and comparison dunder methods and .percent.
  • TerminalLoader(bar, valueName) — in-place progress renderer.
    • Methods: .update(), .setStyle(...), .finish(), .setClearFinish().
  • Spinner(text, delay=0.1, style=Color.BRIGHT_CYAN) — context-manager spinner for blocking operations.
  • print_styled, print_boxed, print_dict — convenience printing helpers.
  • Logger — colored logger with .debug/.info/.success/.warning/.error/.critical/.exception().

Development & tests

Install test dependencies and run tests with pytest:

python -m pip install pytest
pytest -q

This repository includes a basic GitHub Actions workflow (.github/workflows/ci.yml) that installs the package and runs tests on push/PR to main.

Publishing & GitHub

To push the repository to GitHub (replace <your-username> / repo if needed):

git init
git remote add origin https://github.com/Cavanshirpro/YoungLionTerminalPythonLibrary.git
git branch -M main
git add .
git commit -m "Initial commit"
git push -u origin main

Use the included uploadgithub.bat to commit and push from Windows:

uploadgithub.bat "Your commit message" [branch]

To build distributions and upload to PyPI:

python -m pip install --upgrade build twine
python -m build
python -m twine upload dist/*

Contributing to YoungLion Terminal

Thank you for considering contributing — your help is appreciated.

Guidelines

  • Fork the repository and create a new branch named feature/<short-desc> or fix/<short-desc>.
  • Keep PRs focused and include tests for new behaviour when possible.
  • Follow the existing code style and docstring conventions.

Workflow

  1. Fork the repo and create a branch.
  2. Make changes and include tests/examples as appropriate.
  3. Commit with clear messages and push your branch.
  4. Open a Pull Request describing the change and motivation.

Tests & CI

  • This repository uses GitHub Actions for CI. Tests run automatically on PRs.
  • Run tests locally with pytest.

Communication

  • Open issues for feature requests or bugs before large changes — that helps to align design decisions.

LICENSE

This project is licensed under the MIT License.

Authors

Main Developer

  • Cavanşir Qurbanzadə - Lead Developer, Project Maintainer

If you want, I can now:

  • Add more example scripts under examples/ and include sample outputs.
  • Add a minimal .github/workflows/ci.yml (already added) or extend it to run linting, packaging checks, or release automation.
  • Create CONTRIBUTING.md & CHANGELOG.md (already added) or refine them.

Tell me which of these you'd like next and I'll continue. or setup.cfg is located.

  • On Windows, use Windows Terminal, PowerShell or a modern console that

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

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

Source Distribution

younglion_terminal-0.1.tar.gz (16.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

younglion_terminal-0.1-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

Details for the file younglion_terminal-0.1.tar.gz.

File metadata

  • Download URL: younglion_terminal-0.1.tar.gz
  • Upload date:
  • Size: 16.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for younglion_terminal-0.1.tar.gz
Algorithm Hash digest
SHA256 68d3149e74183cefb6903b0279f4fd23b92e977b3e6d32f90f3db2e090fbdcc6
MD5 6ed0f6bcefbeb66893c645d35f6e644c
BLAKE2b-256 85f5d756ee890fe16ede730975ab70ad14c1b48e9faa5bb442dcf33454865be8

See more details on using hashes here.

File details

Details for the file younglion_terminal-0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for younglion_terminal-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 587c557fb41c237a3dcdce8d412096d7279488f482180ca73fa1d54e939d927e
MD5 9254de90d51233cc9ebf1506c9bfff56
BLAKE2b-256 44e1503497c6558b0bb45c0abe1fe029c18aee027410b1f9f98f1e240d3862e6

See more details on using hashes here.

Supported by

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