/postcard_creator_wrapper

A python wrapper around the Rest API of the Swiss Postcard creator :postbox:

Primary LanguagePythonApache License 2.0Apache-2.0

Postcard Creator

PyPI version Build Status codecov Codacy Badge PyPI version License

A python wrapper around the Rest API of the Swiss Postcard creator.

Installation

$ pip install postcard-creator

Setup / API Usage

from postcard_creator.postcard_creator import PostcardCreator

w = PostcardCreator(token)
w.get_user_info()
w.get_billing_saldo()
w.get_quota()
w.has_free_postcard()
w.send_free_card(postcard=)

Usage

from postcard_creator.postcard_creator import PostcardCreator, Postcard, Token, Recipient, Sender

token = Token()
token.fetch_token(username='', password='')
token.has_valid_credentials(username='', password='')
recipient = Recipient(prename='', lastname='', street='', place='', zip_code=0000)
sender = Sender(prename='', lastname='', street='', place='', zip_code=0000)
card = Postcard(message='', recipient=recipient, sender=sender, picture_stream=open('./my-photo.jpg', 'rb'))

w = PostcardCreator(token)
w.send_free_card(postcard=card, mock_send=False)

Advanced configuration

The following keyword arguments are available for advanced configuration (listed with corresponding defaults).

PostcardCreator#send_free_card():

  • image_export = False: Export postcard image to current directory (os.getcwd)
  • image_rotate = True: Rotate image if image height > image width
  • image_quality_factor = 20: Change picture quality, resulting image has image_quality_factor x (image_target_width x image_target_height) many pixels
  • image_target_width = 154: Postcard image base width
  • image_target_height = 111: Postcard image base height

Logging

import logging

logger = logging.getLogger('postcard_creator')

# log levels
# 5: trace
# 10: debug
# 20: info
# 30: warning

Example

  • Postcards is a commandline interface built around this library.
  • See tests for more usage examples.

Test

pip install -r requirements-dev.txt
pip install -e .
pytest

Related

Release notes

v0.0.7, 2017-12-28

  • Fix issues with PNG images #6

v0.0.6, 2017-11-22

  • internal changes
  • do not use requirements.txt in setup.py anymore. set all requirements in install_requires without explicit version numbers

Author

Andrin Bertschi
https://twitter.com/andrinbertschi

License

Apache License 2.0

<3