"""Report.""" class Report: """Report.""" account_prefix = 'user_id_type=' file_type = 'AVRO' status = 'GENERATED' def __init__(self, period, bucket, s3_path): """Store report metadata.""" _, _, account_key, filename = s3_path.split('/') prefix_len = len(self.account_prefix) self.user_id_type = account_key[prefix_len:] self.filename = filename self.period_ids = period.period_ids self.prefix = period.prefix self.bucket = bucket self.s3_path = ( f's3://{self.bucket}/' f'{self.prefix}' f'{self.account_prefix}' f'{self.user_id_type}/' f'{self.filename}' ) self.user_params = f'{self.period_ids}__all__{self.file_type}__en_US' @property def ddb_item(self): """Get the dynamodb item as a dict.""" return { 'file_type': self.file_type, 'period_ids': self.period_ids, 's3_path': self.s3_path, 'status': self.status, 'user_id_type': self.user_id_type, 'user_params': self.user_params }