def test_parse_usd_as_micro_usd(self): self.assertEqual(currency.parse_usd_as_micro_usd('$1.23'), 1230000) self.assertEqual(currency.parse_usd_as_micro_usd('$0.00'), 0) self.assertEqual(currency.parse_usd_as_micro_usd('-$0.00'), 0) self.assertEqual(currency.parse_usd_as_micro_usd('$55'), 55000000) self.assertEqual(currency.parse_usd_as_micro_usd('$12.23'), 12230000) self.assertEqual(currency.parse_usd_as_micro_usd('-$12.23'), -12230000)
def pythonify_mint_dict(raw_dict): # Parse out the date fields into datetime.date objects. raw_dict['date'] = parse_mint_date(raw_dict['date']) raw_dict['odate'] = parse_mint_date(raw_dict['odate']) # Parse the amount into micro usd. amount = parse_usd_as_micro_usd(raw_dict['amount']) # Adjust credit transactions such that: # - debits are positive # - credits are negative if not raw_dict['isDebit']: amount *= -1 raw_dict['amount'] = amount return dict([(convertCamel_to_underscores(k.replace(' ', '_')), v) for k, v in raw_dict.items()])
def pythonify_amazon_dict(raw_dict): keys = set(raw_dict.keys()) # Convert to microdollar ints for ck in keys & CURRENCY_FIELD_NAMES: raw_dict[ck] = parse_usd_as_micro_usd(raw_dict[ck]) # Convert to datetime.date for dk in keys & DATE_FIELD_NAMES: raw_dict[dk] = parse_amazon_date(raw_dict[dk]) # Rename long or unpythonic names: for old_key in keys & RENAME_FIELD_NAMES.keys(): new_key = RENAME_FIELD_NAMES[old_key] raw_dict[new_key] = raw_dict[old_key] del raw_dict[old_key] if 'Quantity' in keys: raw_dict['Quantity'] = int(raw_dict['Quantity']) return dict([(k.lower().replace(' ', '_').replace('/', '_'), v) for k, v in raw_dict.items()])