Kurulum
Tek paket, üç bağımlılık, Python 3.10 ve üzeri.
Kurulum
Güncel sürüm 0.0.1'dir. TypeScript SDK'sının her metodu için aynı adla, snake_case biçiminde bir metodu vardır ve paketin eşlik denetimi, biri eksik olduğunda ya da farklı bir istek gönderdiğinde derlemeyi başarısız kılar.
pip install openemailimport os from openemail import init, openemail init(os.environ['OPENEMAIL_API_KEY']) email = openemail.emails.send({ 'from': 'Acme Billing <[email protected]>', 'to': '[email protected]', 'subject': 'Your September invoice', 'html': '<p>Invoice attached.</p>',}) print(email['id'], email['status'])init, paylaşılan openemail istemcisini bir kez yapılandırır ve sonrasında openemail'i içe aktaran her modül o istemciyi alır. Atlarsanız ilk çağrı istemciyi bunun yerine OPENEMAIL_API_KEY üzerinden kurar.
Bir istek gövdesi, API'nin kendi alan adlarını taşıyan düz bir dict'tir; bu yüzden from, replyTo ve scheduledAt tam olarak API başvurusundaki gibi okunur ve yanıt da bir dict'tir. Her gövde ve yanıtın openemail.types içinde bir TypedDict karşılığı vardır; böylece düzenleyiciniz anahtarları tamamlar ve bir tür denetleyicisi yanlış yazılmış bir anahtarı yakalar.
send() çağrısının dönmesi mesajın gittiği anlamına gelmez. Zamanlanmış veya iptal edilebilir bir gönderim queued ya da scheduled olarak döner ve sonradan sonuçlanır. Çağrının dönmüş olmasına değil status değerine bakın.
Nerede çalışır
Python 3.10 ve daha yenisi, üç bağımlılıkla: HTTP için httpx, asenkron istemci için anyio ve türler için typing-extensions. Her istek httpx üzerinden geçer ve ona kendi httpx.Client istemcinizi ya da AsyncOpenEmail için bir httpx.AsyncClient verebilirsiniz.
OpenEmail betikler, worker'lar ve senkron web uygulamaları için uygundur; AsyncOpenEmail ise asyncio ya da trio üzerindeki bir olay döngüsü için. İkisi de aynı metotlarla bu tek pakette gelir.
Tek bir istemciyi iş parçacıkları arasında paylaşmak güvenlidir; bu yüzden bir worker sürecinin yalnızca bir istemciye ihtiyacı vardır. Tek bir bağlantı havuzu tutar ve onu close() ya da bir with bloğunun sonu kapatır.
Paket py.typed ile gelir ve katı modda mypy ile pyright denetimlerinden geçer; böylece bir tür denetleyicisi her metodu, gövdeyi ve yanıtı yazıldığı gibi okur.
İstemci, posta gönderebilen ve posta kutusunu okuyabilen bir çalışma alanı API anahtarı taşır; bu yüzden yeri bir sunucu, bir arka plan işi ya da kendi makinenizde çalışan bir araçtır. Anahtarı bir ortam değişkeninde ya da bir gizli bilgi yöneticisinde tutun, asla kodda değil.