""" This library allows you to quickly and easily use the Twilio Email Web API v3 via Python. For more information on this library, see the README on GitHub. http://github.com/sendgrid/sendgrid-python For more information on the Twilio SendGrid v3 API, see the v3 docs: http://sendgrid.com/docs/API_Reference/api_v3.html For the user guide, code examples, and more, visit the main docs page: http://sendgrid.com/docs/index.html This file provides the Twilio Email API Client. """ import os from base64 import b64encode from .base_interface import BaseInterface class TwilioEmailAPIClient(BaseInterface): """The Twilio Email API Client. Use this object to interact with the v3 API. For example: mail_client = sendgrid.TwilioEmailAPIClient(os.environ.get('TWILIO_API_KEY'), os.environ.get('TWILIO_API_SECRET')) ... mail = Mail(from_email, subject, to_email, content) response = mail_client.send(mail) For examples and detailed use instructions, see https://github.com/sendgrid/sendgrid-python """ def __init__( self, username=None, password=None, host='https://email.twilio.com', impersonate_subuser=None): """ Construct the Twilio Email v3 API object. Note that the underlying client is being set up during initialization, therefore changing attributes in runtime will not affect HTTP client behaviour. :param username: Twilio Email API key SID or Account SID to use. If not provided, value will be read from the environment variable "TWILIO_API_KEY" or "TWILIO_ACCOUNT_SID" :type username: string :param password: Twilio Email API key secret or Account Auth Token to use. If not provided, value will be read from the environment variable "TWILIO_API_SECRET" or "TWILIO_AUTH_TOKEN" :type password: string :param impersonate_subuser: the subuser to impersonate. Will be passed by "On-Behalf-Of" header by underlying client. See https://sendgrid.com/docs/User_Guide/Settings/subusers.html for more details :type impersonate_subuser: string :param host: base URL for API calls :type host: string """ self.username = username or \ os.environ.get('TWILIO_API_KEY') or \ os.environ.get('TWILIO_ACCOUNT_SID') self.password = password or \ os.environ.get('TWILIO_API_SECRET') or \ os.environ.get('TWILIO_AUTH_TOKEN') auth = 'Basic ' + b64encode('{}:{}'.format(self.username, self.password).encode()).decode() super(TwilioEmailAPIClient, self).__init__(auth, host, impersonate_subuser)