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
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
- Installation
- Quick examples
- API summary
- Development & tests
- Publishing & GitHub
- Contribution guidelines
- Versioning & changelog
- License
- Contact
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
Loggerand 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.cfgis 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.
- 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()
- 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,))
- Spinner
import time
from YoungLion.terminal import Spinner, Color
with Spinner("Working…", style=Color.BRIGHT_CYAN):
time.sleep(2)
print("Done")
- 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.
- Supports arithmetic and comparison dunder methods and
TerminalLoader(bar, valueName)— in-place progress renderer.- Methods:
.update(),.setStyle(...),.finish(),.setClearFinish().
- Methods:
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>orfix/<short-desc>. - Keep PRs focused and include tests for new behaviour when possible.
- Follow the existing code style and docstring conventions.
Workflow
- Fork the repo and create a branch.
- Make changes and include tests/examples as appropriate.
- Commit with clear messages and push your branch.
- 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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68d3149e74183cefb6903b0279f4fd23b92e977b3e6d32f90f3db2e090fbdcc6
|
|
| MD5 |
6ed0f6bcefbeb66893c645d35f6e644c
|
|
| BLAKE2b-256 |
85f5d756ee890fe16ede730975ab70ad14c1b48e9faa5bb442dcf33454865be8
|
File details
Details for the file younglion_terminal-0.1-py3-none-any.whl.
File metadata
- Download URL: younglion_terminal-0.1-py3-none-any.whl
- Upload date:
- Size: 14.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
587c557fb41c237a3dcdce8d412096d7279488f482180ca73fa1d54e939d927e
|
|
| MD5 |
9254de90d51233cc9ebf1506c9bfff56
|
|
| BLAKE2b-256 |
44e1503497c6558b0bb45c0abe1fe029c18aee027410b1f9f98f1e240d3862e6
|