import collections import os START_TO_CLOSE_TIMEOUT = 18000 LINES_PER_FILE = 1000000 STATUS_UPDATE_INTERVALS = 10 # no. of dynamodb progress info. update requests FORMAT_CACHE_SIZE = 67108864 # 64MB REPORT_DELIMITER = '\t' TXT_FILE = 'TXT' XLS_FILE = 'XLS' TEMP_DIR = os.getenv('TEMP_DIR') or '.' FILE_ENCODING = { 'txt': 'utf-8', 'xls': 'utf-16' } ENCLOSE_CHARACTER = { 'txt': '', 'xls': '"' } ENV = os.getenv('Environment') EMAIL_SENDER = 'donotreply@theorchard.com' FILE_IS_READY_EMAIL = os.getenv('FILE_IS_READY_EMAIL') LOCAL_AVRO_FILE_PATH = ( '{tmp_dir}/custom_report/{{user_id_type}}/avro/{{user_params_key}}' '.avro').format( tmp_dir=TEMP_DIR) LOCAL_FILE_PATH = ( '{tmp_dir}/custom_report/{{user_id_type}}/{{user_params_key}}/' '{{file_name}}').format( tmp_dir=TEMP_DIR) BUCKET = os.getenv('ACCOUNTING_STATEMENT_EXPORT_BUCKET') FINAL_REPORT_S3_PATH = ( 's3://{bucket}/statement_detail_exports/' '{{user_id_type}}/{{user_params}}/{{key_name}}').format( bucket=BUCKET) FINAL_REPORT_NAME = ( '{date}_{reporting_period}_{report_type}_{user_name}_{number_format}') # Note that there is no EB for dev environment. So I cannot # just add an environment variable for this. HISTORY_PAGE_URL_HOST = { 'dev': 'http://alw.ochirkova.phys.devorch.com', 'dev-ad': 'http://alw.ochirkova.phys.devorch.com:8888', 'qa': 'https://workstation.qaorch.com', 'prod': 'https://workstation.theorchard.com' } HISTORY_PAGE_URL = ( '{host}/accounting/statementshistory/' 'period/{period}/{min_period}/{max_period}/history') money_columns = [ 'publishing', 'split_rate', 'label_share_net_receipts', 'cloud_publishing', 'mech_administrative_fee', 'ringtone_publishing', 'unit_price', 'adjusted_gross', 'gross', 'subaccount_label_share_net_receipts' ] integer_columns = [ 'quantity' ] Column = collections.namedtuple('Column', ['name', 'title']) columns = [ Column('period', title='Period'), Column('activity_period', title='Activity Period'), Column('dms', title='DMS'), Column('territory', title='Territory'), Column('orchard_upc', title='Orchard UPC'), Column('manufacturer_upc', title="Manufacturer's UPC"), Column('label_catalog', title='Label Catalog #'), Column('subaccount', title='Subaccount'), Column('imprint_label', title='Imprint Label'), Column('artist_name', title='Artist Name'), Column('release_name', title='Release Name'), Column('track_name', title='Track Name'), Column('isrc', title='ISRC'), Column('volume', title='Volume'), Column('track_number', title='Track #'), Column('quantity', title='Quantity'), Column('unit_price', title='Unit Price'), Column('gross', title='Gross'), Column('trans_type', title='Trans Type'), Column('adjusted_gross', title='Adjusted Gross'), Column('split_rate', title='Split Rate'), Column('label_share_net_receipts', title='Label Share Net Receipts'), Column('ringtone_publishing', title='Ringtone Publishing'), Column('cloud_publishing', title='Cloud Publishing'), Column('publishing', title='Publishing'), Column('mech_administrative_fee', title='Mech. Administrative Fee'), Column( 'subaccount_label_share_net_receipts', title='Label Share Net Receipts'), Column('preferred_currency', title='Preferred Currency'), Column('statement_detail_id', title='statement_detail_id'), Column('isdistributor', title='isdistributor'), Column('user_id_type', title='user_id_type'), ] header_map = { column.name: column for column in columns }