استفاده از Rich برای ترمینال رنگی در پایتون

استفاده از Rich برای ترمینال رنگی در پایتون

در دنیای توسعه نرم‌افزار، خروجی‌های ترمینال اغلب به عنوان یک ابزار ضروری برای اشکال‌زدایی، نمایش اطلاعات و تعامل با برنامه‌ها مورد استفاده قرار می‌گیرند. با این حال، خروجی‌های پیش‌فرض ترمینال معمولاً ساده و فاقد جذابیت بصری هستند. کتابخانه Rich در پایتون به شما امکان می‌دهد تا خروجی‌های ترمینال خود را با رنگ، سبک و قالب‌بندی‌های مختلف غنی‌سازی کنید و تجربه کاربری بهتری را ارائه دهید. این مقاله به بررسی جامع کتابخانه Rich، نحوه نصب و استفاده از آن، و همچنین مثال‌های عملی برای ایجاد خروجی‌های ترمینال جذاب و کاربردی می‌پردازد. این مقاله در دسته بندی ‘کتابخانه‌های خاص و کاربردی’ در آموزش پایتون قرار می‌گیرد.

مقدمه‌ای بر Rich

Rich یک کتابخانه پایتون است که برای ایجاد خروجی‌های ترمینال زیبا و با فرمت مناسب طراحی شده است. این کتابخانه از ویژگی‌های ترمینال‌های مدرن مانند رنگ‌ها، سبک‌ها (مانند پررنگ، زیرخط‌دار)، و جدول‌بندی پشتیبانی می‌کند. Rich به شما امکان می‌دهد تا خروجی‌های ترمینال خود را به گونه‌ای سفارشی‌سازی کنید که نه تنها اطلاعات را به طور واضح و مختصر ارائه دهند، بلکه از نظر بصری نیز جذاب باشند. این کتابخانه به ویژه برای برنامه‌هایی که نیاز به نمایش اطلاعات پیچیده یا تعاملی در ترمینال دارند، مفید است.

نصب Rich

نصب Rich بسیار ساده است و می‌توانید از pip، مدیر بسته پایتون، برای این کار استفاده کنید. کافی است دستور زیر را در ترمینال خود اجرا کنید:

pip install rich

پس از نصب، می‌توانید Rich را در برنامه‌های پایتون خود import کنید.

مفاهیم کلیدی Rich

Rich بر پایه چند مفهوم کلیدی بنا شده است که درک آن‌ها برای استفاده موثر از این کتابخانه ضروری است:

  • Style: سبک‌ها مجموعه‌ای از ویژگی‌های بصری مانند رنگ، پررنگ بودن، و زیرخط‌دار بودن را تعریف می‌کنند.
  • Text: کلاس Text برای ایجاد متن با سبک‌های مختلف استفاده می‌شود.
  • Console: کلاس Console برای نوشتن خروجی در ترمینال استفاده می‌شود و امکانات پیشرفته‌ای مانند پشتیبانی از رنگ‌ها و سبک‌ها را فراهم می‌کند.
  • Table: کلاس Table برای ایجاد جدول‌های زیبا و با فرمت مناسب در ترمینال استفاده می‌شود.
  • Progress: کلاس Progress برای نمایش نوار پیشرفت در ترمینال استفاده می‌شود.

استفاده از Style و Text

برای اعمال سبک‌های مختلف به متن، می‌توانید از کلاس Style استفاده کنید. به عنوان مثال، برای ایجاد یک متن قرمز و پررنگ، می‌توانید از کد زیر استفاده کنید:

from rich.style import Style

red_bold_style = Style(color="red", bold=True)
text = "این یک متن قرمز و پررنگ است."
print(red_bold_style.apply(text))

همچنین می‌توانید از کلاس Text برای ایجاد متن با سبک‌های مختلف استفاده کنید. کلاس Text به شما امکان می‌دهد تا چندین قطعه متن را با سبک‌های مختلف ترکیب کنید. به عنوان مثال:

from rich.text import Text

text = Text("این یک متن ")
text.append("قرمز", style="on red")
text.append(" و ", style="green")
text.append("پررنگ است.", style="bold magenta")
print(text)

استفاده از Console

کلاس Console برای نوشتن خروجی در ترمینال استفاده می‌شود و امکانات پیشرفته‌ای مانند پشتیبانی از رنگ‌ها و سبک‌ها را فراهم می‌کند. برای ایجاد یک شی Console، می‌توانید از کد زیر استفاده کنید:

from rich.console import Console

console = Console()
console.print("سلام دنیا!")
console.print("[bold red]این یک متن قرمز و پررنگ است.[/bold red]")

کلاس Console همچنین امکانات دیگری مانند چاپ جداول، نوار پیشرفت، و نمایش خطاها را فراهم می‌کند.

ایجاد جدول با Table

کلاس Table به شما امکان می‌دهد تا جدول‌های زیبا و با فرمت مناسب در ترمینال ایجاد کنید. برای ایجاد یک جدول، ابتدا باید یک شی Table ایجاد کنید و سپس سطرها و ستون‌های جدول را تعریف کنید. به عنوان مثال:

from rich.table import Table

table = Table(title="اطلاعات کاربران")
table.add_column("نام", style="cyan", no_wrap=True)
table.add_column("ایمیل", style="magenta")
table.add_column("سن", style="green")

table.add_row("علی محمدی", "ali.mohammadi@example.com", "30")
table.add_row("فاطمه حسینی", "fatemeh.hosseini@example.com", "25")
table.add_row("رضا احمدی", "reza.ahmadi@example.com", "40")

print(table)

در این مثال، ما یک جدول با سه ستون (نام، ایمیل، سن) ایجاد کرده‌ایم و سپس سه سطر داده به آن اضافه کرده‌ایم. پارامتر no_wrap=True در add_column از شکستن متن در ستون نام جلوگیری می‌کند.

نمایش نوار پیشرفت با Progress

کلاس Progress به شما امکان می‌دهد تا نوار پیشرفت را در ترمینال نمایش دهید. این قابلیت برای برنامه‌هایی که نیاز به انجام عملیات طولانی دارند، بسیار مفید است. به عنوان مثال:

from rich.progress import Progress

with Progress() as progress:
    task1 = progress.add_task("[red]دانلود فایل...", total=100)
    task2 = progress.add_task("[green]پردازش داده‌ها...", total=100)

    for i in range(100):
        progress.update(task1, advance=1)
        progress.update(task2, advance=1)

در این مثال، ما دو نوار پیشرفت (دانلود فایل و پردازش داده‌ها) ایجاد کرده‌ایم و سپس با استفاده از متد update، پیشرفت هر نوار را به‌روزرسانی می‌کنیم.

استفاده از Markdown در Rich

Rich از Markdown نیز پشتیبانی می‌کند. این بدان معناست که می‌توانید از نشانه‌گذاری Markdown برای قالب‌بندی متن خود استفاده کنید و Rich آن را به طور خودکار به خروجی ترمینال تبدیل می‌کند. به عنوان مثال:

from rich.console import Console

console = Console()
markdown_text = """
# عنوان اصلی

این یک پاراگراف با **متن پررنگ** و *متن مورب* است.

- لیست
- آیتم‌ها
"""

console.print(markdown_text)

سفارشی‌سازی خروجی

Rich امکانات گسترده‌ای برای سفارشی‌سازی خروجی ترمینال فراهم می‌کند. می‌توانید رنگ‌ها، سبک‌ها، و قالب‌بندی‌های مختلف را برای ایجاد خروجی‌های ترمینال جذاب و کاربردی استفاده کنید. همچنین می‌توانید از ویژگی‌های ترمینال‌های مدرن مانند پشتیبانی از Unicode و emoji استفاده کنید.

نتیجه‌گیری

کتابخانه Rich یک ابزار قدرتمند و انعطاف‌پذیر برای ایجاد خروجی‌های ترمینال زیبا و با فرمت مناسب در پایتون است. با استفاده از Rich، می‌توانید تجربه کاربری برنامه‌های خود را بهبود بخشید و اطلاعات را به طور واضح و مختصر ارائه دهید. این کتابخانه به ویژه برای برنامه‌هایی که نیاز به نمایش اطلاعات پیچیده یا تعاملی در ترمینال دارند، مفید است. با یادگیری مفاهیم کلیدی Rich و استفاده از مثال‌های ارائه شده در این مقاله، می‌توانید به راحتی خروجی‌های ترمینال خود را غنی‌سازی کنید و برنامه‌های پایتون خود را به سطح بالاتری برسانید.

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *