Skip to main content

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:

GitHub - kap_sdk

Lisans

Bu proje MIT Lisansı altında lisanslanmıştır. Daha fazla bilgi için LICENSE dosyasına bakın.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kap_sdk-0.1.22.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kap_sdk-0.1.22-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

Details for the file kap_sdk-0.1.22.tar.gz.

File metadata

  • Download URL: kap_sdk-0.1.22.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.3

File hashes

Hashes for kap_sdk-0.1.22.tar.gz
Algorithm Hash digest
SHA256 4f441b3570528b821acfddb1f3b37cc86105e38c4d8eba581442d3af3846b0c4
MD5 ee14158daaa3aeaf90f571b32a7e622e
BLAKE2b-256 080c912d3c83127b0a748c2e878b1a24487753c0797788d77c0a344474458f2f

See more details on using hashes here.

File details

Details for the file kap_sdk-0.1.22-py3-none-any.whl.

File metadata

  • Download URL: kap_sdk-0.1.22-py3-none-any.whl
  • Upload date:
  • Size: 17.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.3

File hashes

Hashes for kap_sdk-0.1.22-py3-none-any.whl
Algorithm Hash digest
SHA256 ad0844cdbbadd57539e248e93ea3a7077ae36af232659d9404241d3e70d5f2b0
MD5 13e9b085a4d0f5fb7eb2acfb67d48e8a
BLAKE2b-256 dff6991a30788862ffdd7cbb7d6eaca3f2202cfea1ded9b9468588583dad1ca8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page