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.24.tar.gz (13.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.24-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for kap_sdk-0.1.24.tar.gz
Algorithm Hash digest
SHA256 151e962138eb818a3b8797d9c97e7fea3939602586acbcdb9ea5e7d872cdeabb
MD5 002de6b610ddcdfdba0f95bb10cf3cd5
BLAKE2b-256 74224a0533d4c61647892c96bb0dc19c0c176a916b1b268c957948c6567239b0

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for kap_sdk-0.1.24-py3-none-any.whl
Algorithm Hash digest
SHA256 1232740da719dad24475fbe80c0612df6f16571c5fd14385fca8e7fb454b8a05
MD5 23303dc8d7ce15e4ff2e16b1f96be121
BLAKE2b-256 3716a55cd537a97840ef96dfea767875710081cba6cc22b82084367cb89073c9

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