A Python Library for the PostGrid Print & Mail API
Project description
PostGrid Python Library
The PostGrid Python library enables you to access the PostGrid Print & Mail API conveniently from applications written in Python. It contains classes representing every resource in the PostGrid Print & Mail API and methods which create and operate on these resources.
Installation
In order to install this package, run
pip install --upgrade postgrid-python
Requirements
- Python 3.6+
Usage
You must have a PostGrid Print & Mail Account (you can sign up at https://dashboard.postgrid.com/signup) and access to your API key which you can retrieve from the settings page.
import postgrid
# Swap this out for your live API key to create live orders
postgrid.pm_key = 'test_sk_...'
# Send a letter
letter = postgrid.Letter.create(
to={
'first_name': 'Apaar',
'last_name': 'Madan',
'address_line1': '145 Mulberry St, Apt PH D, New York NY 10013',
'country_code': 'US'
},
from={
'first_name': 'Kevin',
'last_name': 'Villena',
'address_line1': '90 Canal St',
'address_line2': '2nd Floor',
'city': 'Boston',
'province_or_state': 'MA',
'postal_or_zip': '02114',
'country_code': 'US'
},
html='''
<html>
<body>
<p>Hi, {{to.firstName}}</p>
<p>Welcome to PostGrid.</p>
<p>Yours Truly,</p>
<p>{{from.firstName}} {{from.lastName}}</p>
</body>
</html>
'''
)
# Prints 'ready'
print(letter.status)
# Cancel the letter
letter = postgrid.Letter.delete(letter.id)
# Prints 'cancelled'
print(letter.status)
Note that API parameters map one-to-one with the underlying REST API.
However, instead of camelCase
, this library uses snake_case
. For example, a letterHTML
parameter
in the original API would be letter_html
in this library.
Handling Exceptions
Errors produced by the API will raise a PMError
exception. The PMError
object has a
type
field that can be used to determine what the error was. It also has a message
field
which provides a human readable message describing the error in detail.
import postgrid
postgrid.pm_key = 'test_sk_...'
try:
template = postgrid.Template.create(
description='SDK Template',
html='''
<html>
<body>
<p>Hi, {{to.firstName}}</p>
<p>Welcome to PostGrid.</p>
<p>Yours Truly,</p>
<p>{{from.firstName}} {{from.lastName}}</p>
</body>
</html>
''',
)
except postgrid.PMError as e:
print(e.status_code)
print(e.type)
print(e.message)
raise e
Support
Email support@postgrid.com
if you face any errors with the API or create issues in the
postgrid-python
GitHub if you face issues with the SDK itself.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file postgrid-python-1.0.7.tar.gz
.
File metadata
- Download URL: postgrid-python-1.0.7.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95f466287122dd4c90cda0077444af5a695b1a762ef548a5a6f1bcde4f13775a |
|
MD5 | 0ce06e10f38875b09a298f7f8212cae7 |
|
BLAKE2b-256 | a2340b36c6756ddead0b34a9b1099456518721b71c1bc30ef2ffa7c625a37ac6 |
File details
Details for the file postgrid_python-1.0.7-py3-none-any.whl
.
File metadata
- Download URL: postgrid_python-1.0.7-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c31f98bf4dc0ea577409ece68504c30ca1d8332f973d8bbfa7f60204bc0a8f17 |
|
MD5 | cd5e29e7b31a1bf9afc6509065d107f9 |
|
BLAKE2b-256 | 40b23ca6a044802eae09de1467f5c5e6cacd2f87788999f2fdbe9373f9d141f0 |