Ana içeriğe geç

İmza, ortamlar ve loglama

Signer

Signer(
    private_key: PrivateKeySource,
    *,
    password: str | bytes | None = None,
)

Bir RSA private key ile Signature başlığı üretir.

Parameters:

Name Type Description Default
private_key PrivateKeySource

PEM dosyasının yolu, PEM içeriği (str/bytes) ya da cryptography RSAPrivateKey nesnesi. PKCS#1 ve PKCS#8 desteklenir.

required
password str | bytes | None

Anahtar şifreliyse parolası.

None

sign

sign(access_token: str, payload: str | bytes = b'') -> str

access_token + payload verisini imzalar ve Base64 imzayı döndürür.

payload; POST için gönderilen gövdenin birebir kendisi, GET için ? ile başlayan sorgu dizgisi (sorgu yoksa boş) olmalıdır.

public_key_pem

public_key_pem() -> str

Private key'e karşılık gelen public key (geliştirici portalına girilen değer).

generate_key_pair

generate_key_pair(
    private_key_path: str | PathLike[str] | None = None,
    public_key_path: str | PathLike[str] | None = None,
    *,
    key_size: int = 2048,
) -> tuple[str, str]

Yeni bir RSA anahtar çifti üretir ve (private_pem, public_pem) döndürür.

Public key'i geliştirici portalındaki uygulamanıza ekleyin; private key'i gizli tutun ve kaynak koduna/commit'e koymayın. Yol verilirse dosyalar da yazılır (private key 0600 izinleriyle; var olan dosyanın üzerine yazılmaz).

Environment dataclass

Environment(name: str, identity_url: str, gateway_url: str)

Bir ortamın identity (OAuth2) ve gateway (API) adresleri.

Hazır ortamlar yetmezse kendi adreslerinizle bir Environment oluşturup istemciye verebilirsiniz:

env = Environment("ozel", identity_url="https://...", gateway_url="https://...")
kt = KuveytTurk(..., environment=env)

enable_logging

enable_logging(
    level: str | int = "debug",
    *,
    stream: IO[str] | None = None,
) -> None

Kütüphanenin loglarını ekrana (varsayılan: stderr) yazdırır.

Parameters:

Name Type Description Default
level str | int

"info" (istek başına tek satır özet) ya da "debug" (istek ve yanıtın tamamı; token ve imza maskelenir, gövdeler müşteri verisi içerir).

'debug'
stream IO[str] | None

Logların yazılacağı akış.

None

Kendi logging yapılandırmanız varsa bunu çağırmanız gerekmez; logging.getLogger("kuveytturk_api").setLevel(logging.DEBUG) yeterlidir. Tekrar çağrılırsa yalnızca düzeyi (ve verilmişse akışı) günceller.