Modern CLI Library
Project description
nercone-modern
Modern CLI Library
Installation
uv
Install to venv and Add to project dependencies:
uv add nercone-modern
Install to venv:
uv pip install nercone-modern
pip
pip3 install nercone-modern
Usage
Import
from nercone_modern.color import ModernColor
from nercone_modern.text import ModernText
from nercone_modern.logging import ModernLogging
from nercone_modern.progressbar import ModernProgressBar
Color
from nercone_modern.color import ModernColor as Color
print(f"Build {Color.GREEN}Success{Color.RESET}")
Supported colors:
CYANMAGENTAYELLOWGREENREDBLUEWHITEBLACKGRAYRESET
Text
from nercone_modern.text import ModernText as Text
from nercone_modern.color import ModernColor as Color
print("Build" + Text("Success", color="green"))
print("Build" + Text("Failed", color=Color.RED))
Logging
ModernLogging(
process_name: str = "App", # Process name to show in the log
display_level: str = "INFO", # The minimum level to show in the log
filepath: str | None = None, # Log file path
show_proc: bool | None = None, # Whether to show process names
show_level: bool | None = None # Whether to show level names
)
ModernLogging().log(
message: str = "", # Log contents
level_text: str = "INFO", # Level from "DEBUG", "INFO", "WARN", "ERROR" and "CRITICAL"
level_color: str # Custom color for Level (see ModernLogging.color.ModernColor)
)
ModernLogging().prompt(
message: str = "", # Log contents
level_text: str = "INFO", # Level from "DEBUG", "INFO", "WARN", "ERROR" and "CRITICAL"
level_color: str | None = None, # Custom color for Level (see ModernColor)
default: str | None = None, # Default answer
show_default: bool = False, # Whether to show default answer
choices: list[str] | None = None, # List of possible answers
show_choices: bool = True, # Whether to show choices
interrupt_ignore: bool = False, # Whether to raise an exception on KeyboardInterrupt or continue using the default argument.
interrupt_default: str | None = None # Value to use instead of the default argument when interrupt_ignore is True.
)
from nercone_modern.logging import ModernLogging
logger = ModernLogging("Main", display_level="DEBUG")
logger.log("This is a test message", level_text="INFO", level_color="magenta")
answer = logger.prompt("What's your name?", level_text="INFO")
logger.log(f"Answer: {answer}", level_text="DEBUG")
answer2 = logger.prompt("Select mode", default="A", choices=["A", "b", "c", "d"], level_text="INFO")
logger.log(f"Mode: {answer2}", level_text="DEBUG")
Supported levels:
DEBUGINFOWARNERRORCRITICAL
Progress Bar
ModernProgressBar(
total: int, # Total number of steps (max progress value)
process_name: str, # Name of the process shown next to the bar
spinner_mode: bool = False, # Whether to start in spinner mode instead of progress (spinner-only) mode
primary_color: str = "blue", # Color used for filled bar and brackets (see ModernColor)
secondary_color: str = "cyan", # Color used for center marker / spinner (see ModernColor)
box_left: str = "[", # Left bracket surrounding the bar and status
box_right: str = "]" # Right bracket surrounding the bar and status
)
ModernProgressBar().spinner(
enabled: bool = True # Enable or disable spinner mode dynamically
)
ModernProgressBar().spin_start() # Start spinner animation immediately
ModernProgressBar().setMessage(
message: str = "" # Message to show after the status (e.g. current step description)
)
ModernProgressBar().start() # Initial rendering and start of spinner (if enabled)
ModernProgressBar().update(
amount: int = 1 # Increase current progress by the specified amount and re-render
)
ModernProgressBar().finish() # Mark as complete, stop spinner and render final DONE state
ModernProgressBar().log(
message: str = "", # Log contents printed above the progress bar
level_text: str = "INFO", # Level from "DEBUG", "INFO", "WARN", "ERROR" and "CRITICAL"
level_color: str | None = None, # Custom color for Level (see ModernColor)
show_proc: bool | None = None, # Whether to show process names (fallbacks to ModernLogging settings)
show_level: bool | None = None, # Whether to show level names (fallbacks to ModernLogging settings)
modernLogging: ModernLogging = None # Existing ModernLogging instance to reuse. If None, a new one is created.
)
from nercone_modern.progressbar import ModernProgressBar
progress_bar = ModernProgressBar(total=100, process_name="Task 1", spinner_mode=True)
progress_bar.start()
time.sleep(5)
progress_bar.spinner(False)
progress_bar.setMessage("Step 1")
for i in range(50):
time.sleep(0.05)
progress_bar.update(amount=1)
progress_bar.setMessage("Step 2")
for i in range(25):
time.sleep(0.03)
progress_bar.update(amount=1)
progress_bar.setMessage("Step 3")
for i in range(5):
time.sleep(1)
progress_bar.update(amount=5)
progress_bar.finish()
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
nercone_modern-1.12.0.tar.gz
(7.0 kB
view details)
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 nercone_modern-1.12.0.tar.gz.
File metadata
- Download URL: nercone_modern-1.12.0.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f8819da124d9da9588708f3505b6281c4bc973348f63bc2679b4f62451a2b09
|
|
| MD5 |
1772d193e936d5872e7351cd314db042
|
|
| BLAKE2b-256 |
7e9125085063839ef1a6814df0b015076d9854b3571faac18f9a1a1c2e71fc0b
|
File details
Details for the file nercone_modern-1.12.0-py3-none-any.whl.
File metadata
- Download URL: nercone_modern-1.12.0-py3-none-any.whl
- Upload date:
- Size: 9.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1fb3ea9b55831ae85eda075d4fabcb39cfb89ad255b93cd092714a2f4eab934
|
|
| MD5 |
fb09962567636d3c05f8da8385aefa75
|
|
| BLAKE2b-256 |
1704bc8bc52cce41f442f29be90eddee3dd087f8bfa09135117ff23728ee28ce
|