Skip to content

v0.1

Choose a tag to compare

@Cavanshirpro Cavanshirpro released this 23 Nov 23:30
· 1 commit to main since this release
91bec24

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