mint_snippets.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # -*- coding: utf-8 -*-
  2. from enum import Enum
  3. class DefaultCategories(Enum):
  4. HOUSING = 0
  5. FOOD = 1
  6. GAS = 2
  7. SHOPPING = 3
  8. # ...
  9. seller_category_map = {}
  10. seller_category_map['Exxon'] = DefaultCategories.GAS
  11. seller_category_map['Target'] = DefaultCategories.SHOPPING
  12. class Categorizer(object):
  13. def __init__(self, seller_category_map, seller_category_overrides_map):
  14. self.seller_category_map = seller_category_map
  15. self.seller_category_overrides_map = seller_category_overrides_map
  16. def categorize(self, transaction):
  17. if transaction.seller in self.seller_category_map:
  18. return self.seller_category_map[transaction.seller]
  19. if transaction.seller in self.seller_category_overrides_map:
  20. seller_category_map[transaction.seller] = \
  21. self.manual_overrides[transaction.seller].peek_min()
  22. return self.seller_category_map[transaction.seller]
  23. return None
  24. class Transaction(object):
  25. def __init__(self, timestamp, seller, amount):
  26. self.timestamp = timestamp
  27. self.seller = seller
  28. self.amount = amount
  29. class Budget(object):
  30. def __init__(self, template_categories_to_budget_map):
  31. self.categories_to_budget_map = template_categories_to_budget_map
  32. def override_category_budget(self, category, amount):
  33. self.categories_to_budget_map[category] = amount