EPİAŞ API'lerine erişim sağlayan Python kütüphanesi.
EPINT henüz PyPI'da yayınlanmadığı için GitHub'dan kurulum yapabilirsiniz:
pip install git+https://github.com/metehanboy/epint.gitveya geliştirme modunda:
pip install -e git+https://github.com/metehanboy/epint.git#egg=epintKurulumdan sonra:
import epint as epAPI'ye erişim için kullanıcı adı ve şifre ayarlanmalıdır:
ep.set_auth("username", "password")
ep.set_mode("prod") # veya "test"Belirli servisler için detaylı kullanım örnekleri ve açıklamalar:
- Wiki: Profil Katsayıları Rehberi: Profil katsayıları hakkında detaylı wiki rehberi (Examples alt sayfası)
- **...
ep.[kategori].[method_adi](parametreler)seffaflik_electricityveyatransparency: Elektrik şeffaflık verileriseffaflik_natural_gasveyanaturalgas,cng,dogalgaz: Doğalgaz şeffaflık verileriseffaflik_reportingveyareporting: Raporlama verileri
reconciliation_invoiceveyainvoice: Fatura uzlaştırmareconciliation_bpmveyabpm: BPM uzlaştırmareconciliation_imbalanceveyaimbalance: Dengesizlik uzlaştırmareconciliation_marketveyamarket: Piyasa uzlaştırmareconciliation_mofveyamof: MOF uzlaştırmareconciliation_resveyares: RES uzlaştırmapre_reconciliation: Ön uzlaştırma
gop: GOP servislericustomer: Müşteri servisleridemand: Talep servislerigrid: Şebeke servisleriregistration: Kayıt servisleribalancing_group: Dengeleme grubu servislerigunici: Gün içi servislerigunici_trading: Gün içi ticaret servisleriindex_ac: Endeks / Ek Tüketim servisleriteminat: Teminat servisleri (başlangıç, GÖGİ, ek, dengesizlik, risk, YEK, destekleme bedeli teminatları ve raporlar)
# Elektrik şeffaflık verileri
result = ep.seffaflik_electricity.mcp_data(
start='2025-12-10',
end='2025-12-11'
)
# Doğalgaz şeffaflık verileri
result = ep.seffaflik_natural_gas.consumer_count_export(
period='2025-10-01',
export_type='XLSX'
)Tarih parametreleri string veya datetime objesi olarak verilebilir:
from datetime import datetime
# String format
ep.seffaflik_electricity.mcp_data(start='2025-12-10', end='2025-12-11')
# Datetime format
ep.seffaflik_electricity.mcp_data(
start=datetime(2025, 12, 10),
end=datetime(2025, 12, 11)
)Sayfalama parametreleri otomatik olarak varsayılan değerlerle doldurulur:
# Varsayılan: page={'number': 1, 'size': 1000}
result = ep.customer.customer_list()
# Özel sayfalama
result = ep.customer.customer_list(page={'number': 2, 'size': 100})Bölge parametreleri otomatik olarak varsayılan değerlerle doldurulur:
# Varsayılan: region='TR1'
result = ep.demand.demand_forecast()
# Özel bölge
result = ep.demand.demand_forecast(region='TR2')Export metodları binary format (XLSX, PDF) döndürür. Bu response'lar io.BytesIO objesi olarak döndürülür:
# XLSX export
xlsx_data = ep.seffaflik_electricity.consumer_count_export(
period='2025-10-01',
export_type='XLSX'
)
# BytesIO objesi olarak döndürülür
with open('export.xlsx', 'wb') as f:
f.write(xlsx_data.read())Method isimleri fuzzy matching ile bulunur, yani küçük yazım hataları tolere edilir:
# Bu çağrılar aynı sonucu verir
ep.seffaflik_electricity.mcp_data(...)
ep.seffaflik_electricity.mcpData(...)
ep.seffaflik_electricity.mcp_data(...)Bazı kategoriler için kısa alias'lar mevcuttur:
# Aynı kategori
ep.transparency.mcp_data(...) # seffaflik_electricity
ep.naturalgas.mcp_data(...) # seffaflik_natural_gas
ep.invoice.list(...) # reconciliation_invoice
ep.bpm.list(...) # reconciliation_bpm# GOP (Gün Öncesi Piyasası) - özel service ticket akışı kullanır (TGT header gönderilmez)
result = ep.gop.contract_list()
# Kayıt / müşteri / talep / şebeke / dengeleme grubu servisleri
result = ep.registration.organization_query()
result = ep.customer.customer_list()
result = ep.demand.demand_forecast(region='TR1')
result = ep.grid.region_query()
result = ep.balancing_group.brg_query()
# Gün içi piyasası (GİP) ve gün içi ticaret servisleri
result = ep.gunici.list_contracts()
result = ep.gunici_trading.list_active_contract()
# Endeks / Ek Tüketim servisleri
result = ep.index_ac.index_query(
consumptionPointId=200000000,
lastReadDateAsPeriod='2025-08-01T00:00:00+03:00',
)Gerçek HTTP isteği göndermeden, oluşturulacak request'i (headers/params/body) incelemek için debug=True geç:
request_preview = ep.seffaflik_electricity.mcp_data(start='2025-12-10', end='2025-12-11', debug=True)
print(request_preview.headers, request_preview.params, request_preview.json)debug=True verildiğinde HTTP isteği gönderilmez, RequestModel objesi döner.
- Tarih formatları: String veya datetime objeleri otomatik olarak ISO formatına dönüştürülür
- Sayısal formatlar: Integer ve float değerler otomatik olarak doğru formata dönüştürülür
- CamelCase/Snake_case: Parametre isimleri otomatik olarak eşleştirilir
- JSON Response'lar: Otomatik olarak parse edilir ve schema'ya göre dönüştürülür
- Binary Response'lar: XLSX, PDF gibi binary içerikler
io.BytesIOolarak döndürülür - RestResponse Wrapper: RestResponse yapısındaki response'larda
bodyotomatik olarak çıkarılır
Hatalar otomatik olarak yakalanır ve detaylı hata mesajları gösterilir:
try:
result = ep.seffaflik_electricity.mcp_data(start='2025-12-10', end='2025-12-11')
except Exception as e:
print(f"Hata: {e}")Endpoint objesini çağırmadan önce bilgilerini görmek için:
# Endpoint bilgilerini görüntüle
print(ep.seffaflik_electricity.mcp_data)Bu komut şunları gösterir:
- Method ve path bilgisi
- Parametreler ve tipleri
- Response yapısı
- Örnek değerler
- ⭐ Stars: 2
- 🍴 Forks: 1
- 👀 Watchers: 2
- 🐛 Open Issues: 0
- 👁️ Toplam Görüntülenme: 29
- 👤 Benzersiz Görüntüleyen: 5
- 📥 Toplam Clone: 159
- 📥 Benzersiz Clone: 19
- 📊 Son 7 Gün Görüntülenme: 7
- 📊 Son 7 Gün Benzersiz: 2
- 📅 Son Gün Görüntülenme: 6
- 📅 Son Gün Benzersiz: 1
- 📊 Son 7 Gün Clone: 94
- 📊 Son 7 Gün Clone (Benzersiz): 15
- 📅 Son Gün Clone: 27
- 📅 Son Gün Clone (Benzersiz): 3
En Popüler Sayfalar:
/metehanboy/epint/wiki/Examples- 6 görüntülenme (2 benzersiz)/metehanboy/epint/tree/main/src/epint/endpoints- 6 görüntülenme (1 benzersiz)/metehanboy/epint- 3 görüntülenme (2 benzersiz)/metehanboy/epint/blob/main/src/epint/__init__.py- 3 görüntülenme (1 benzersiz)/metehanboy/epint/tree/main/src/epint- 3 görüntülenme (1 benzersiz)
En Popüler Referanslar:
github.com- 22 (1 benzersiz)
xychart-beta
title "Günlük Görüntülenme (Son 14 Gün)"
x-axis ["05/01", "06/01", "07/01", "08/01", "09/01", "10/01", "11/01", "12/01", "13/01", "14/01", "15/01", "16/01", "17/01", "18/01"]
y-axis "Görüntülenme" 0 --> 13
line [4, 12, 3, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 6]
xychart-beta
title "Benzersiz Görüntüleyen (Son 14 Gün)"
x-axis ["05/01", "06/01", "07/01", "08/01", "09/01", "10/01", "11/01", "12/01", "13/01", "14/01", "15/01", "16/01", "17/01", "18/01"]
y-axis "Benzersiz" 0 --> 2
line [1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1]
xychart-beta
title "Günlük Clone (Son 14 Gün)"
x-axis ["05/01", "06/01", "07/01", "08/01", "09/01", "10/01", "11/01", "12/01", "13/01", "14/01", "15/01", "16/01", "17/01", "18/01"]
y-axis "Clone" 0 --> 33
bar [30, 6, 9, 6, 3, 3, 8, 9, 3, 15, 6, 25, 9, 27]
- 📝 Toplam PR: 1
- ✅ Açık PR: 0
- 🔒 Kapalı PR: 1
- 🔀 Birleştirilmiş PR: 1
- metehanboy (76 katkı)
- farukkornaz (1 katkı)
- İlk kullanımda kategori otomatik olarak yüklenir
- Authentication bilgileri her endpoint çağrısında kontrol edilir
- Test modunda test sunucularına, prod modunda production sunucularına bağlanılır
- GOP servisleri için özel authentication mekanizması kullanılır (TGT yerine
gop-service-ticketheader'ı) ep.set_mode(...)yalnızca tam olarak"prod"(case-insensitive) değerini prod olarak kabul eder; farklı/typo bir değer sessizce"test"moduna düşer — mode değerini sabit kodla, kullanıcı girdisinden almayın- Method/parametre isimleri fuzzy matching ile eşleştirilir; belirsiz kısaltmalar kullanmaktan kaçının, tam swagger ismini veya snake_case karşılığını tercih edin
