KAP (Kamuyu Aydınlatma Platformu) üzerinden veri çekmek için bir Python SDK
Project description
kap_sdk
KAP (Kamuyu Aydınlatma Platformu) üzerinden veri çekmek için bir Python SDK'sı.
Kurulum
kap_sdk'yı PyPI üzerinden kolayca yükleyebilirsiniz:
pip install kap_sdk
Bağımlılıklar
kap_sdk aşağıdaki kütüphanelere bağımlıdır:
- requests: HTTP istekleri yapmak için.
- beautifulsoup4: HTML içeriğini ayrıştırmak için.
- pyppeteer: Web sayfalarını tarayıcı üzerinden işlemek için.
Bu bağımlılıklar, kap_sdk'yı yüklediğinizde otomatik olarak yüklenir.
Kullanım
kap_sdk, KAP üzerinden şirket bilgileri, finansal raporlar, endeksler, duyurular ve sektörler gibi verilere erişim sağlar. Aşağıda, SDK'nın temel işlevlerini gösteren örnekler bulunmaktadır.
Temel Kullanım Örneği
import asyncio
from kap_sdk.kap_client import KapClient
async def main():
# KapClient'ı başlat
client = KapClient(
cache_expiry=3600, # Genel önbellek süresi (1 saat)
company_cache_expiry=86400, # Şirket verileri için önbellek süresi (1 gün)
indices_cache_expiry=86400, # Endeks verileri için önbellek süresi (1 gün)
sectors_cache_expiry=86400 # Sektör verileri için önbellek süresi (1 gün)
)
# Şirket bilgilerini al
company = await client.get_company("BIMAS")
print(f"Şirket: {company.name} ({company.code}) - Şehir: {company.city}")
# Şirket detay bilgilerini al
info = await client.get_company_info(company)
print(f"Şirket Detayları: {info}")
# Finansal raporu al
report = await client.get_financial_report(company, "2022")
print(f"Finansal Rapor (2022): {report}")
# Endeksleri al
indices = await client.get_indices()
print(f"Endeksler: {indices}")
# Şirkete özel duyuruları al
announcements = await client.get_announcements(company)
print(f"Duyurular: {announcements}")
# Tüm duyuruları al
all_announcements = await client.get_announcements()
print(f"Tüm Duyurular: {all_announcements}")
# Sektörleri al
sectors = await client.get_sectors()
print(f"Sektörler: {sectors}")
# Önbelleği temizle
client.clear_cache()
print("Önbellek temizlendi.")
if __name__ == "__main__":
asyncio.run(main())
İleri Düzey Kullanım
Özel Tarih Aralığı ile Duyuruları Alma
import asyncio
from datetime import datetime, timedelta
from kap_sdk.kap_client import KapClient
async def get_announcements_with_date_range():
client = KapClient()
company = await client.get_company("BIMAS")
# Son 7 günün duyurularını al
from_date = datetime.today().date() - timedelta(days=7)
to_date = datetime.today().date()
announcements = await client.get_announcements(
company=company,
fromdate=from_date,
todate=to_date
)
print(f"Son 7 günün duyuruları ({company.code}): {announcements}")
if __name__ == "__main__":
asyncio.run(get_announcements_with_date_range())
Önbellekleme Sürelerini Özelleştirme
kap_sdk, farklı veri türleri için önbellekleme sürelerini özelleştirmenize olanak tanır. Örneğin, şirket verileri gibi nadiren değişen veriler için daha uzun bir önbellekleme süresi kullanabilirsiniz:
import asyncio
from kap_sdk.kap_client import KapClient
async def custom_cache_expiry():
# Şirket verileri için 1 hafta, diğer veriler için 1 saat önbellekleme
client = KapClient(
cache_expiry=3600, # Genel önbellek süresi (1 saat)
company_cache_expiry=604800, # Şirket verileri için önbellek süresi (1 hafta)
indices_cache_expiry=86400, # Endeks verileri için önbellek süresi (1 gün)
sectors_cache_expiry=86400 # Sektör verileri için önbellek süresi (1 gün)
)
companies = await client.get_companies()
print(f"Şirketler (uzun önbellekleme): {len(companies)} şirket bulundu.")
# Önbelleği manuel olarak temizleme
client.clear_cache()
print("Önbellek temizlendi.")
if __name__ == "__main__":
asyncio.run(custom_cache_expiry())
Hata Yönetimi
kap_sdk, veri çekme işlemleri sırasında oluşabilecek hataları yakalar ve loglar. Hataları yakalamak için try-except blokları kullanabilirsiniz:
import asyncio
import logging
from kap_sdk.kap_client import KapClient
# Loglamayı yapılandır
logging.basicConfig(level=logging.INFO)
async def handle_errors():
client = KapClient()
try:
company = await client.get_company("BIMAS")
report = await client.get_financial_report(company, "2022")
print(f"Finansal Rapor: {report}")
except Exception as e:
logging.error(f"Bir hata oluştu: {e}")
print("Hata oluştu, detaylar için loglara bakın.")
if __name__ == "__main__":
asyncio.run(handle_errors())
Katkıda Bulunma
kap_sdk açık kaynaklı bir projedir. Hataları bildirmek, özellik önerileri sunmak veya kod katkısında bulunmak için lütfen GitHub deposunu ziyaret edin:
Lisans
Bu proje MIT Lisansı altında lisanslanmıştır. Daha fazla bilgi için LICENSE dosyasına bakın.
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
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 kap_sdk-0.1.23.tar.gz.
File metadata
- Download URL: kap_sdk-0.1.23.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab145a7fce0e26d7347cce9e2d3e69bbb28f28966c5752f8748667c1a9ec9d7f
|
|
| MD5 |
cd3186621d61833c379fc4101a9e5208
|
|
| BLAKE2b-256 |
0862d9e2b404d5d61f4b7bfe9edd25200da5d7ee74be03be8d10f8ed78bfe744
|
File details
Details for the file kap_sdk-0.1.23-py3-none-any.whl.
File metadata
- Download URL: kap_sdk-0.1.23-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8914e4912052abd7a30cafac72ecdf623b4ea701f00186259ecb17cd5b6074b7
|
|
| MD5 |
5b89d8a5cf4dd9f94c36f9da0048205d
|
|
| BLAKE2b-256 |
b4b42917e7f3201e1cc955cc897ed31a4f403e6491d7422828b8ea8acfc45136
|