Apache Ekosistemi, Python, Veri Bilimi / 20 Mart 2023 / Miraç ÖZTÜRK
Merhaba, iyi günler.
Bugünkü yazımda; çok çeşitli alanlarda kullanılan güçlü, dinamik altyapısı, anlaşılır sade dili ile oldukça popüler olan Python (birçok ek özelliğe sahip) diline yönelik oluşturulmuş kütüphane (library), çatı (framework) ve programlara göz atacağımız ek kısa notlarımı aktarıyor olacağım.
Kısaca Python’a yönelik derlenmiş bir ek paket-araç tanıtım fihristi olarakta nitelendirilebilir.
Bir önceki python kütüphaneleri bilgilendirme yazısına alt kısımdaki bağlantıdan ulaşabilirsiniz.
Erişim için lütfen Popüler Python Kütüphaneleri ve Özellikleri bağlantısına tıklayınız…
Ağırlıklı olarak veri işlemesi ve raporlama alanı üzerinde faaliyet gösteren kurum-kuruluşlarda Python vazgeçilmez olarak nitelendirilmektedir.(Python Ek Bilgiler)
Raporlama ve Veri Görselleştirme hizmetleri üzerine Microsoft’un popüler iş zekası ve raporlama aracı Power BI üzerindeki kullanabilen veri konnektör ve derleyicileri arasında Python oldukça fazla tercih edilmekte-kullanılmaktadır.
Kullanım seçenekleri-yöntemleri olarak; Power BI Desktop uygulaması içerisinden veri kaynağı erişimi ile Python Script seçeneğini seçerek uygulamamıza işlenmiş-işlenecek veri aktarabilir,
ya da Visualizations (Görselleştirme) içerisinden Python Visual öğesi ile mevcut verilerinizi baz alarak yüklü Python kütüphaneleri desteği ile ilgili verilerinizi anlık işleyerek raporlarınızda kullanabilirsiniz.
Raporlamalarımızdan anlamlı sonuçlar çıkartabilmek ya da çeşitli aksiyonlar alabilmek için aralıklı olarak verilerimizi işlemek ya da çeşitli algoritmik süreçlerden geçirmemiz gerekebilir.
Çoğu zaman ilgili bu süreçler çok zorlayıcı (İstatiksel hesaplamalar vb. kompleks işlemler) ve hataya açık olabilir.Bu hatalardan kaçınmak ya da minimize etmek adına ağırlıklı olarak dış veri kaynaklarında-işleyicilerinde (Pyhton – R vb. dillerde) hazır algoritmalar içeren kütüphaneler kullanmak çözüm olarak gösterilebilir.
Bu yazı içeriğinde Python üzerinde çokça kullandığım ve yazımı hazırlarken araştırarak öğrendiğim paket-program içeriklerini ele almaya çalıştım.
Dilerseniz hızlıca göz atmaya başlayalım;
Altair : Python’da görselleştirme çözümleri için hazırlanmış açık kaynaklı bir kütüphanedir.
Altair API’ı basit, sade ve tutarlı olan Vega-Lite JSON spesifikasyonunun üzerine inşa edilmiştir.
Bu sadelik ve kolay kullanım minimum miktarda kodla güzel ve etkili görselleştirmeler üretilmesini sağlamaktadır.
*Kurucu-Geliştirici-Destekçi : Jake Vanderplas, Brian Granger (Geliştirici-UW Interactive Data Lab)
Bottle : Python üzerinde web uyuglamaları geliştirme için hızlı, basit ve hafif bir WSGI* mikro web çerçevesidir.
*Web Server Gateway Interface – Web Sunucusu Ağ Geçidi Arayüzü
Bottle; web uygulamaları geliştirme sürecini hızlandırmak için tasarlanmış minimal bir çerçeve olduğundan, küçük ve orta ölçekli projeler için hızlıca kısa ve öz kodlar yazıp proje inşaa etmek için idealdir.
Ayrıca önceden tanımlanmış şablon motorları, otomatik yönlendirme ve veri doğrulama işlevleri gibi birçok kullanışlı araçta sunmaktadır.
*Kurucu-Geliştirici-Destekçi : Marcel Hellkamp (Geliştirici ve Kurucu-GWDG)
CherryPy : Python üzerinde sunucu merkezli bir mimariye sahip, uygulama geliştirme sürecini hızlandırmak için birçok kullanışlı araç ve özellik sağlayan mikro web çerçevesidir.
CherryPy; veritabanı erişimi, otomatik yönlendirme, oturum yönetimi, önbellekleme, istek ve yanıt filtreleme, e-posta çözümü ve ek birçok özellik sağlayarak; Flask ve Django gibi Python web çerçeveleriylede uyumlu çalışır.
*Kurucu-Geliştirici-Destekçi : Remi Delon (Geliştirici)
Pyramid : Python’da web uygulamaları oluşturmak için bir dizi esnek ve modüler yapıya sahip araç ve özellik sağlayan mikro web çerçevesidir.
Pyramid; veritabanı erişimi, oturum yönetimi, otomatik yönlendirme, HTML form işleme, istek ve yanıt filtreleme, güvenlik, önbellekleme, uluslararasılaştırma, e-posta çözüm işlevleri ve daha birçok ek özellik sağlayarak hızlı ve uçtan uca planlanabilir bir uygulama geliştirme imkanı sağlar.
*Kurucu-Geliştirici-Destekçi : Ben Bangert (Geliştirici-Mozilla)
Web2Py : Python üzerinde web uygulamaları geliştirmeyi kolaylaştıran, bir dizi araç ve özellikler sunarak tüm bileşenlerin dahili olarak birleştirildiği bir Full Stack (Tam Yığın) web çerçevesidir.
Full Stack yapıda olması ile bağımsız yazılım bileşenleri kurma ihtiyacıda bulunmamaktadır.
Web2py; kullanıcı kimlik doğrulama, veritabanı erişimi, otomatik yönlendirme, oturum yönetimi, cache yönetimi,
e-posta işlevleri, test araçları ve daha birçok özellik sağlar.Çevresel değişkenler ve web sunucu yapılandırmasıyla ilgili teknik ayrıntılardan uzaklaşarak, uygulama geliştiricilerinin daha fazla zamanını iş mantığına ve kullanıcı arayüzüne odaklamasına olanak tanır.
*Kurucu-Geliştirici-Destekçi : Massimo Di Pierro (Geliştirici-SpaceX)
Dash : Python programlama dilinde modern web uygulamaları geliştirmek için gerekli olan etkileşimli bileşenler, özelleştirilebilir tasarım araçları, gerçek zamanlı veri güncellemeleri ve daha ek birçok özellik sağlayan bir web uygulama çerçevesidir.
Dash; web uygulamaları için arayüz bileşenleri oluşturmak adına Plotly veri görselleştirme kütüphanesi ile birleştirilmiştir.Bu, Dash uygulamalarının verileri görsel olarak etkileşimli bir şekilde görüntüleyebilmesini sağlamaktadır.
*Kurucu-Geliştirici-Destekçi : Chris Parmer 1–2 , Jack Parmer (Geliştirici-Plotly)
Falcon : Python programlama dili için ağırlıklı olarak API’lerin oluşturulmasına yönelik tasarlanmış hızlı,minimal ve esnek bir web uygulama çerçevesidir.
Falcon; hızlı performansı ve düşük bellek tüketimi sayesinde yüksek trafikli web sitelerinde kullanım için idealdir. Küçük boyutu ve minimalist tasarımıyla öne çıkarak, RESTful API’ler için çeşitli araçlar ve özellikler sunar.
*Kurucu-Geliştirici-Destekçi : Kurt Griffiths (Geliştirici-NexHealth)
PyUnit : Python programlama dili için bir birim testi* (Unit Test) çerçevesidir.
*Birim Test; yazılım bileşeninin doğru çalıştığından emin olmak için yapılan otomatik bir testtir.
PyUnit; birim testlerini yazmak, çalıştırmak ve sonuçları raporlamak için bir dizi araç ve özellik sunar.
Java programlama dilindeki JUnit‘ten esinlenerek geliştirilmiş ve daha sonra Python’ın standart kütüphanesine gelmiştir.
*Kurucu-Geliştirici-Destekçi : Kent Beck (Geliştirici-Mechanical Orchard)
Behave : Python programlama dili için davranış odaklı geliştirme* test çerçevesidir.
*BDD – Behavior Driven Development – Davranış Odaklı Geliştirme; yazılımın doğru davranışını anlamaya ve açıklamaya odaklanan bir yazılım geliştirme metodolojisidir.
Behave; uygulamanın davranışlarını test etmek için kullanılabilir, testler insanlar tarafından okunması ve anlaşılması kolay doğal bir dille yazılabilir.
*Kurucu-Geliştirici-Destekçi : Tarek Ziade, Laurent Bachelier (Geliştirici-Elastic, Geneanet)
PyTest : Python programlamaya yönelik birim testleri, entegrasyon testleri ve kabul testleri gibi farklı test türleri için dili kullanılan bir test çerçevesidir.
Pytest; Python’un standart kütüphanesinde bulunan UnitTest modülünden daha basit ve okunması daha kolay bir kullanım sunar.Ayrıca testlerin otomatik keşfi, test sonuçlarının otomatik raporlanması ve diğer birçok kullanışlı özelliğide beraberinde sağlamaktadır.
*Kurucu-Geliştirici-Destekçi : Holger Krekel (Geliştirici-Merlinux)
Lxml : Python programlama dilinde XML işleme için kullanılan, hızlı ve yüksek performanslı bir kütüphanedir.
Lxml; ElementTree API’sini kullanarak XML belgelerini işleyebilir ve; XPath, XSLT, RelaxNG, DTD gibi diğer XML teknolojilerini de destekler.
*Kurucu-Geliştirici-Destekçi : Stefan Behnel (Geliştirici)
Tox : Python programlama dilinde sanal ortam ve test otomasyon süreçleri için kullanılan araçtır.
Tox; projenin farklı Python sürümleri ve paket bağımlılıkları ile çalışmasını sağlar.Böylece bir proje, farklı Python sürümlerinde test edilir ve bu sürümlerde sorunsuz bir şekilde çalışıp-çalışmadığı kontrol edilebilir.
*Kurucu-Geliştirici-Destekçi : Holger Krekel (Geliştirici-Merlinux)
Black : Python programlama dilinde kullanılan bir kod biçimlendirici ve stil denetleyicisidir.
Black; Python kodunu otomatik olarak biçimlendirir ve belirli bir stil kılavuzuna uymasını sağlar.
Bu; kodun okunabilirliğini ve anlaşılabilirliğini arttırır, projeler/kodlar arasında tutarlılık olmasına yardımcı olur.
*Kurucu-Geliştirici-Destekçi : Łukasz Langa (Geliştirici-CPython Developer in Residence)
Sphinx : Python programlama dili için bir belgeleme aracıdır.
Sphinx; Python modüllerini, sınıflarını ve fonksiyonlarını otomatik olarak belgeleyip; geliştiricilerin kodlarını ve projelerini daha anlaşılır hale getirebilmelerini sağlamaktadır.
*Kurucu-Geliştirici-Destekçi : Georg Brandl (Geliştirici-Zope Corporation)
OpenGL : Python programlama dilinde bilgisayar grafik uygulamaları geliştirmek için kullanılan bir kütüphanedir.
OpenGL; 2D ve 3D grafikler için bir API sunar ve bu API, grafik işlemleri için donanım hızlandırması adına kullanabilmektedir.OpenGL’yi kullanmak için ise pyOpenGL adlı kütüphane kullanılmaktadır.
*Kurucu-Geliştirici-Destekçi : Silicon Graphics, Inc. (SGI) (Geliştirici Şirket)
*pyOpenGL Geliştirici-Destekçi : Mike Fletcher (Geliştirici)
İlgili dökümantasyon linki. -OpenGL
İlgili dökümantasyon linki. -pyOpenGL
Vispy : Python programlama dili için bilimsel verileri görselleştirme adına kullanılan bir kütüphanedir.
Vispy; çok büyük veri kümeleri görüntülemek için OpenGL kütüphanesi aracılığıyla modern grafik işleme birimlerinin (GPU) hesaplama gücünden yararlanan yüksek performanslı etkileşimli 2D/3D veri görselleştirme işlemleri gerçekleştirmektedir.
*Kurucu-Geliştirici-Destekçi : Luke Campagnola (Geliştirici-Manis Lab, University of North Carolina)
Folium : Python programlama dili için haritalama işlemleri adına kullanılan bir kütüphanedir.
Folium; Leaflet.js adlı bir JavaScript kütüphanesiyle uyumlu bir şekilde çalışırak, interaktif web haritaları oluşturmak için de kullanılabilmektedir.
*Kurucu-Geliştirici-Destekçi : Rob Story (Geliştirici-Stripe)
FastAPI : Python programlama dili için RESTful API’ler oluşturmaya yönelik kullanılan modern bir web çerçevesidir.
FastAPI; ASGI (Asynchronous Server Gateway Interface) sunucuları için optimize edilmiş olup; Swagger ve OpenAPI gibi standartlarla uyumlu olarak çalışıp, otomatik veri doğrulama ve belgelemede hizmeti sağlamaktadır.
*Kurucu-Geliştirici-Destekçi : Sebastián Ramírez (Geliştirici-Foretought)
Günümüzde popülerliği hızla yükselen ve toplulukların üzerindeki destekleri katlanarak artan Python ile ilgili kütüphanelerin-çatıların-araçların sayısı yüzleri geçebilir.
Kısaca bildiğim ve öğrendiğim kadarıyla aktarmaya çalıştım.
Gelecek yazılarda görüşmek üzere.
İyi çalışmalar…