इस प्रोजेक्ट के बारे में
Rich एक Python लाइब्रेरी है जो टर्मिनल में रिच टेक्स्ट और सुंदर फ़ॉर्मैटिंग के लिए बनाई गई है। यह एक ऐसा API प्रदान करती है जिसकी मदद से टर्मिनल आउटपुट में रंग और शैली जोड़ना आसान हो जाता है। यह तालिकाएँ, प्रगति पट्टियाँ, मार्कडाउन, सिंटैक्स-हाइलाइट किया गया सोर्स कोड, ट्रेसबैक और कई अन्य सुविधाएँ सीधे उपयोग के लिए उपलब्ध कराती है।
संगतता: Rich लिनक्स, मैकओएस और विंडोज़ पर काम करता है। नए विंडोज़ टर्मिनल में ट्रू कलर और इमोजी समर्थित हैं, जबकि क्लासिक टर्मिनल केवल 16 रंगों तक सीमित है। इसके लिए Python 3.8 या बाद के संस्करण की आवश्यकता होती है और यह बिना किसी अतिरिक्त कॉन्फ़िगरेशन के Jupyter notebooks के साथ भी काम करता है।
स्थापना: इसे pip से स्थापित किया जा सकता है (`python -m pip install rich`) और आउटपुट को `python -m rich` से परखा जा सकता है।
Rich print: `rich.print` को इम्पोर्ट करने पर यह बिल्ट-इन `print` जैसा ही सिग्नेचर देता है, लेकिन साथ में `[bold magenta]World[/bold magenta]` जैसे मार्कअप और इमोजी नामों का समर्थन भी करता है। `pretty.install()` के माध्यम से Rich को Python REPL में भी स्थापित किया जा सकता है, जिससे डेटा संरचनाएँ सुंदर रूप से प्रिंट और हाइलाइट होती हैं।
Console API: `Console` ऑब्जेक्ट एक `print` विधि प्रदान करता है जो बिल्ट-इन `print` के समान है, लेकिन इसमें वर्ड-रैपिंग, स्टाइल कीवर्ड आर्गुमेंट्स और BBCode जैसे कंसोल मार्कअप का समर्थन होता है। इसमें एक `log` विधि भी है जो समय और स्थान के कॉलम जोड़ती है तथा कलेक्शन को सुंदर रूप से प्रिंट कर सकती है। `log_locals` विकल्प के साथ यह लोकल वेरिएबल्स भी दिखा सकती है। साथ ही, Python के logging मॉड्यूल के लिए एक बिल्ट-इन लॉगिंग हैंडलर भी उपलब्ध है।
बिल्ट-इन रेंडरेबल्स में शामिल हैं:
- इमोजी: कोलन के बीच इमोजी नाम लिखकर इमोजी जोड़ा जा सकता है, जैसे `:smiley:`।
- तालिकाएँ: लचीली यूनिकोड तालिकाएँ, जिनमें सीमाएँ, शैलियाँ, सेल संरेखण और टर्मिनल के अनुसार कॉलम का आकार बदलना जैसी सुविधाएँ हैं।
- प्रगति पट्टियाँ: `track` या कस्टम कॉलम कॉन्फ़िगरेशन के माध्यम से कई बिना फ्लिकर वाली प्रगति पट्टियाँ दिखाई जा सकती हैं, जिनमें प्रतिशत, फ़ाइल आकार, गति और बचा हुआ समय दिखाया जा सकता है।
- स्थिति: `status` कॉन्टेक्स्ट मैनेजर के साथ स्पिनर एनिमेशन और संदेश दिखाया जा सकता है; उपलब्ध स्पिनरों को `python -m rich.spinner` से देखा जा सकता है।
- ट्री: गाइड लाइनों के साथ पदानुक्रमित डेटा रेंडरिंग, जो फ़ाइल संरचनाओं के लिए उपयुक्त है; `python -m rich.tree` इसे प्रदर्शित करता है।
- कॉलम: समान या इष्टतम चौड़ाई वाले सुव्यवस्थित कॉलम, जो डायरेक्टरी लिस्टिंग जैसे होते हैं।
- मार्कडाउन: `Markdown` क्लास का उपयोग करके टर्मिनल में मार्कडाउन फ़ॉर्मैटिंग रेंडर की जा सकती है।
- सिंटैक्स हाइलाइटिंग: `Syntax` ऑब्जेक्ट के माध्यम से Pygments द्वारा संचालित, जिसमें थीम और लाइन नंबर उपलब्ध हैं।
- ट्रेसबैक: मानक Python ट्रेसबैक की तुलना में अधिक कोड दिखाने वाले सुंदर और पढ़ने में आसान ट्रेसबैक, जिन्हें डिफ़ॉल्ट हैंडलर के रूप में भी सेट किया जा सकता है।
Rich रेंडरेबल्स कंसोल प्रोटोकॉल पर आधारित हैं, जिससे उपयोगकर्ता अपना स्वयं का Rich कॉन्टेंट लागू कर सकते हैं। README में उल्लिखित संबंधित परियोजनाओं में Rich CLI शामिल है, जो सिंटैक्स हाइलाइटिंग, मार्कडाउन रेंडरिंग और तालिकाओं में CSV प्रदर्शन के लिए एक कमांड-लाइन एप्लिकेशन है, तथा Textual भी शामिल है, जो परिष्कृत टर्मिनल यूज़र इंटरफेस बनाने के लिए एक समान परियोजना है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.