"""Accounting Period Model.""" class Period: """Accounting Period Model.""" prefix_template = 'schematized_files/{period}_{account}_all_all_{interval}/' # noqa def __init__(self, period_id, interval, account_type): """Accounting Period Model.""" self.period_id = int(period_id) self._period_ids = [str(period_id)] self.interval = interval self.account_type = account_type if self.is_quarter: self._period_ids = [ str(self.period_id - 2), str(self.period_id - 1), str(self.period_id)] @property def period_ids(self): """Get period ids as a comma-delimited string.""" if self.is_quarter: return ','.join(self._period_ids) return str(self.period_id) @property def is_quarter(self): """Get boolean is_quarter.""" return self.interval == 'quarter' and self.period_id % 3 == 0 @property def prefix(self): """Get the formatted s3 prefix.""" return self.prefix_template.format( period=self.period_ids, account=self.account_type, interval=self.interval)