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.23.tar.gz (10.9 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.23-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

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

Hashes for kap_sdk-0.1.23.tar.gz
Algorithm Hash digest
SHA256 ab145a7fce0e26d7347cce9e2d3e69bbb28f28966c5752f8748667c1a9ec9d7f
MD5 cd3186621d61833c379fc4101a9e5208
BLAKE2b-256 0862d9e2b404d5d61f4b7bfe9edd25200da5d7ee74be03be8d10f8ed78bfe744

See more details on using hashes here.

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

Hashes for kap_sdk-0.1.23-py3-none-any.whl
Algorithm Hash digest
SHA256 8914e4912052abd7a30cafac72ecdf623b4ea701f00186259ecb17cd5b6074b7
MD5 5b89d8a5cf4dd9f94c36f9da0048205d
BLAKE2b-256 b4b42917e7f3201e1cc955cc897ed31a4f403e6491d7422828b8ea8acfc45136

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