[Rich API](https://rich.readthedocs.io/en/latest/) kullanarak terminal çıktılarınıza stil ekleyebilir ve renklendirebilirsiniz. Aynı zamanda tabloları, ilerleme çubuklarını, markdown stillerini, kaynak koddaki söz dizimi gösterimlerini ve bir çok şeyi rich kullanarak yapabilirsiniz.
Rich'e video ile göz atmak için [@fishnets88](https://twitter.com/fishnets88) tarafından oluşturulan [calmcode.io](https://calmcode.io/rich/introduction.html) sitesine bakabilirsiniz.
İnsanların [rich hakkında yazdıkları son yazılar](https://www.willmcgugan.com/blog/pages/post/rich-tweets).
Rich Linux, OSX ve Windows üzerinde çalışabilir. Windows'un yeni terminalinde de doğru bir şekilde çalışabilir, eski terminalde 16 renk olduğu için istenilen sonuçlar elde edilemeyebilir. Aynı zamanda Rich'in çalışabilmesi için ortamda minimum Python 3.6.3 veya daha yeni bir sürüm olması gerekmektedir.
Çıktılarınız üzerinde daha fazla hakimiyet kurmak isterseniz, [Console](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console)'u import edip objesini kullanabilirsiniz.
Sizin de tahmin edebileceğiniz gibi terminal çıktımız `"Merhaba Dünya!"` olacaktır. Standart `print` fonksiyonundan farklı olarak Console `print` fonksiyonu terminale sığmayan yazıları kaydırma özelliğine sahiptir.
Yazılarımıza birden fazla şekilde renk ekleyebiliriz. Bunlardan ek basit olan şekli, `style` argümanına rengimizi vermek. Aşağıda nasıl kullanılacağına dair bir örnek bulabilirsiniz.
Tek seferde bir yazıyı renklendirmek için kullanışlı bir yöntem olsa da, eğer çıktımızın sadece belirli bölgelerinde değişiklik yapacaksak [bbcode](https://en.wikipedia.org/wiki/BBCode) söz dizimini kullanmalıyız. Bunun için de bir örnek:
console.print("[bold red]Mustafa Kemal Atatürk[/bold red] [u](1881 - 10 Kasım 1938)[/u], [i]Türk asker ve devlet adamıdır[/i]. [bold cyan]Türk Kurtuluş Savaşı'nın başkomutanı ve Türkiye Cumhuriyeti'nin kurucusudur[/bold cyan].")
Console objesini kullanarak sofistike bir çok çıktıyı minimum efor ile oluşturabilirsiniz. [Console API](https://rich.readthedocs.io/en/latest/console.html) dökümanına göz atarak daha fazla bilgi elde edebilirsiniz.
Rich [inspect](https://rich.readthedocs.io/en/latest/reference/init.html?highlight=inspect#rich.inspect) adında bir fonksiyona sahiptir ve bu fonksiyon bize bir Python objesininin özelliklerini gösterir.
Console objesi içerisinde `log()` methodunu barındırır, bu tıpkı`print()` methodu gibi davranır fakat buna ek olarak bastırıldığı zamanı da ekrana yansıtır. Bu duruma ek olarak Rich Syntax Highlighting'de gerçekleştirir.
Rich kullanıcılarına esnek bir [tablo](https://rich.readthedocs.io/en/latest/tables.html) imkanı sunar, birden fazla şekilde formatlayıp, stillendirip kullanabilirsiniz.
Note that console markup is rendered in the same way as `print()` and `log()`. In fact, anything that is renderable by Rich may be included in the headers / rows (even other tables).
`Table` sınıfı kendini terminal ekranına göre ayarlayabilir, genişletip, küçültebilir. Burada bunun ile alakalı bir örnek görüyorsunuz.
Aşağıdaki görsellerde de görüleceği üzere birden fazla kez progress bar kullanabilirsiniz, ve dökümandan da anlaşılacağı üzere bu hiç de zor bir iş değil.
Eğer siz de denemek isterseniz [examples/downloader.py](https://github.com/textualize/rich/blob/master/examples/downloader.py) koduna bakarak ve çalıştırarak indirme yapabilirsiniz.
Eğer hesaplamanız gereken uzun işler varsa ve bunu progress bar ile gösteremiyorsanız yardımınıza [status](https://rich.readthedocs.io/en/latest/reference/console.html#rich.console.Console.status) methodu yetişecektir.
```python
from time import sleep
from rich.console import Console
console = Console()
tasks = [f"task {n}" for n in range(1, 11)]
with console.status("[bold green]Working on tasks...") as status:
while tasks:
task = tasks.pop(0)
sleep(1)
console.log(f"{task} complete")
```
Yukarıdaki kod parçacığı aşağıdaki gibi bir çıktı üretecektir.
Rich bir [tree](https://rich.readthedocs.io/en/latest/tree.html) yapısını yardımcı çizgiler ile bastırabilir. Bu yapı bir dosya yapısını göstermek için veya hiyerarşik veri yapılarını göstermek için kullanılabilir.
Label yapısı ise basit bir text veya Rich üzerinde bastırılabilen her hangi bir yapı olabilir.
[tree.py](https://github.com/textualize/rich/blob/master/examples/tree.py) örnek dosyası ile linux'da bulunan `tree` kodunu rich üzerinden simüle edebilirsiniz.
Rich içerisinde [syntax highlighting](https://rich.readthedocs.io/en/latest/syntax.html) için [pygments](https://pygments.org/) kütüphanesini kullanıyor. Tıpkı markdown'da olduğu gibi, bir tane `Syntax` objesi oluşturup bu objeyi terminale bastırıyoruz.
Rich sahip olduğu güzel [traceback](https://rich.readthedocs.io/en/latest/traceback.html)'ler yaratabilir. Böylece daha okunabilir ve daha kolay anlaşılabilen bir yapıya sahip olursunuz.
Tüm rich yapıları [Console Protocol](https://rich.readthedocs.io/en/latest/protocol.html) kullanılarak gerçekleştirilmiştir, siz de kendi içeriğinizi Rich'e aktarabilirsiniz.
Aynı zamanda [Rich CLI](https://github.com/textualize/rich-cli) uygulamasını da kontrol edin. Bu uygulama ile konsol çıktılarınızı renklendirebilir, kod çıktılarınıza syntax uygulayabilir, markdown gösterebilir, CSV dosyasını görüntüleyebilir ve daha bir çok şey yapabilirsiniz.
Rich'in kardeş projesi olan [Textual](https://github.com/Textualize/textual)'a da bir göz atın. Textual ile konsol çıktılarınıza bir UI oluşturup, gruplayıp görselleştirebilirsiniz.
[Rich Galeri](https://www.textualize.io/rich/gallery)si üzerinden, rich kullanılan son uygulamalara [Textualize.io](https://www.textualize.io) üzerinden göz atabiirsiniz.