"""Email a zipped report file.""" import os import pprint from dotenv import load_dotenv from royalties.email_report import TaxReportEmail from royalties.period_ids import PeriodIds load_dotenv() pp = pprint.PrettyPrinter(indent=2, compact=True, width=100) def validate_args(): """Validate environment variables for the job.""" period_ids_list = os.environ.get('PERIOD_IDS').split(',') period_ids = PeriodIds(period_ids_list) payment_interval = os.environ.get('PAYMENT_INTERVAL') assert payment_interval in ['month', 'quarter'] file_path = os.environ.get('ZIP_FILE_PATH') assert os.path.isfile(file_path) from_email = os.environ.get('FROM_EMAIL') assert from_email to_emails = [(i.strip()) for i in os.environ.get('TO_EMAILS').split(',')] assert len(to_emails) >= 1 return file_path, from_email, to_emails, payment_interval, period_ids def execute(): """Execute the email_report script.""" file_path, from_email, to_emails, \ payment_interval, period_ids = validate_args() new_report = TaxReportEmail( file_path, from_email, to_emails, payment_interval, period_ids ) print('Sending report via email:') pp.pprint({ 'file': file_path, 'from': from_email, 'to': to_emails }) new_report.build_email() result = new_report.trigger_email() print('RESULT:') pp.pprint(result) if __name__ == '__main__': execute()