mint_snippets.py 1.4 KB

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