class MonthlySubcategoryBudget(Entity): budgeted = AmountField() entities_monthly_budget_id = EntityField(None) entities_subcategory_id = EntityField(None) is_tombstone = EntityField(False) note = EntityField(None) overspending_handling = EntityField(None)
class MonthlySubcategoryBudgetCalculation(Entity): additional_to_be_budgeted = EntityField(None) all_spending = AmountField() all_spending_since_last_payment = AmountField() balance = AmountField() balance_previous_month = AmountField() budgeted_average = AmountField() budgeted_cash_outflows = AmountField() budgeted_credit_outflows = AmountField() budgeted_previous_month = AmountField() budgeted_spending = AmountField() cash_outflows = AmountField() credit_outflows = AmountField() entities_monthly_subcategory_budget_id = EntityField(None) goal_expected_completion = EntityField(None) goal_overall_funded = AmountField() goal_overall_left = AmountField() goal_percentage_complete = EntityField(None) goal_target = EntityField(None) goal_under_funded = EntityField(None) is_tombstone = EntityField(False) overspending_affects_buffer = EntityField(None) payment_average = AmountField() payment_previous_month = AmountField() spent_average = AmountField() spent_previous_month = AmountField() unbudgeted_cash_outflows = AmountField() unbudgeted_credit_outflows = AmountField() upcoming_transactions = AmountField() upcoming_transactions_count = EntityField(None) positive_cash_outflows = AmountField()
class Subtransaction(Entity): amount = AmountField() cash_amount = AmountField() check_number = EntityField(None) credit_amount = AmountField() entities_payee_id = EntityField(None) entities_subcategory_id = EntityField(None) entities_transaction_id = EntityField(None) is_tombstone = EntityField(False) memo = EntityField(None) sortable_index = EntityField(0) subcategory_credit_amount_preceding = EntityField(None) transfer_account_id = EntityField(None) transfer_transaction_id = EntityField(None)
class AccountMapping(Entity): date_sequence = DateField(None) entities_account_id = EntityField(None) hash = EntityField(None) fid = EntityField(None) is_tombstone = EntityField(False) salt = EntityField(None) shortened_account_id = EntityField(None) should_flip_payees_memos = EntityField(None) should_import_memos = EntityField(None) skip_import = EntityField(None)
class MasterCategory(Entity): deletable = EntityField(True) internal_name = EntityField(None) is_hidden = EntityField(False) is_tombstone = EntityField(False) name = EntityField(None) note = EntityField(None) sortable_index = EntityField(None)
class BudgetVersion(Entity): date_format = EntityField(None) last_accessed_on = EntityField(None) currency_format = EntityField(None) budget_id = EntityField(None) is_tombstone = EntityField(False) version_name = EntityField(None) source = EntityField(None)
class ScheduledTransaction(Entity): amount = AmountField() date = DateField(None) entities_account_id = EntityField(None) entities_payee_id = EntityField(None) entities_subcategory_id = EntityField(None) flag = EntityField(None) frequency = EntityField(None) is_tombstone = EntityField(False) memo = EntityField(None) transfer_account_id = EntityField(None) upcoming_instances = DatesField([])
class ScheduledSubtransaction(Entity): amount = AmountField() entities_payee_id = EntityField(None) entities_scheduled_transaction_id = EntityField(None) entities_subcategory_id = EntityField(None) is_tombstone = EntityField(False) memo = EntityField(None) sortable_index = EntityField(0) transfer_account_id = EntityField(None)
class MonthlyAccountCalculation(Entity): cleared_balance = AmountField() entities_account_id = EntityField(None) error_count = EntityField(None) info_count = EntityField(None) is_tombstone = EntityField(False) month = EntityField(None) transaction_count = EntityField(None) uncleared_balance = AmountField() warning_count = EntityField(None)
class User(Entity): username = EntityField(None) trial_expires_on = EntityField(None) is_tombstone = EntityField(False) email = EntityField(None) feature_flags = EntityField(None) is_subscribed = EntityField(None)
class MonthlyBudgetCalculation(Entity): additional_to_be_budgeted = AmountField() age_of_money = EntityField(None) available_to_budget = EntityField(None) balance = EntityField(None) budgeted = EntityField(None) calculation_notes = EntityField(None) cash_outflows = AmountField() credit_outflows = AmountField() deferred_income = AmountField() entities_monthly_budget_id = EntityField(None) hidden_balance = AmountField() hidden_budgeted = AmountField() hidden_cash_outflows = AmountField() hidden_credit_outflows = AmountField() immediate_income = AmountField() is_tombstone = EntityField(False) over_spent = AmountField() previous_income = AmountField() uncategorized_balance = AmountField() uncategorized_cash_outflows = AmountField() uncategorized_credit_outflows = AmountField()
class Transaction(Entity): accepted = EntityField(True) amount = AmountField() cash_amount = AmountField() check_number = EntityField(None) cleared = EntityField('Uncleared') credit_amount = AmountField() date = DateField(None) date_entered_from_schedule = DateField(None) entities_account_id = EntityField(None) entities_payee_id = EntityField(None) entities_scheduled_transaction_id = EntityField(None) entities_subcategory_id = EntityField(None) flag = EntityField("") imported_date = DateField(None) imported_payee = EntityField(None) is_tombstone = EntityField(False) matched_transaction_id = EntityField(None) memo = EntityField(None) source = EntityField(None) subcategory_credit_amount_preceding = EntityField(None) transfer_account_id = EntityField(None) transfer_subtransaction_id = EntityField(None) transfer_transaction_id = EntityField(None) ynab_id = EntityField(None)
class Setting(Entity): setting_name = EntityField(None) setting_value = EntityField(None)
class UserBudget(Entity): budget_id = EntityField(undef) user_id = EntityField(None) is_tombstone = EntityField(False) permissions = EntityField(None)
class Account(Entity): account_name = EntityField(None) account_type = AccountTypeField(AccountTypes.undef) direct_connect_account_id = EntityField(undef) direct_connect_enabled = EntityField(False) direct_connect_institution_id = EntityField(undef) hidden = EntityField(False) is_tombstone = EntityField(False) last_entered_check_number = EntityField(None) last_imported_at = EntityField(undef) last_imported_error_code = EntityField(undef) last_reconciled_balance = EntityField(None) last_reconciled_date = DateField(None) direct_connect_last_error_code = EntityField(None) direct_connect_last_imported_at = DateField(None) note = EntityField(None) sortable_index = EntityField(0) on_budget = PropertyField(on_budget_default)
class PayeeRenameCondition(Entity): entities_payee_id = EntityField(None) is_tombstone = EntityField(False) operand = EntityField(None) operator = EntityField(None)
class Subcategory(Entity): entities_account_id = EntityField(None) entities_master_category_id = EntityField(None) goal_creation_month = EntityField(None) goal_type = EntityField(None) internal_name = EntityField(None) is_hidden = EntityField(False) is_tombstone = EntityField(False) monthly_funding = EntityField(None) name = EntityField(None) note = EntityField(None) sortable_index = EntityField(0) target_balance = AmountField() target_balance_month = EntityField(None) type = EntityField(None)
class Entity(object): def __init__(self, *args, **kwargs): self.ListFields = {} self.Fields = {} self.AllFields = {} for namefield in dir(self): if namefield.startswith('__'): continue field = getattr(self, namefield) if isinstance(field, PropertyField): fieldc = copy.deepcopy(field) def getter(selfi): if hasattr(selfi, '__prop_' + namefield): return getattr(selfi, '__prop_' + namefield) else: return fieldc()(selfi) def setter(selfi, valuei): setattr(selfi, '__prop_' + namefield, valuei) def cleaner(selfi): delattr(selfi, '__prop_' + namefield) p = addprop(self, namefield, getter, setter, cleaner) if kwargs.get(namefield): setattr(self.__class__, namefield, kwargs.get(namefield)) elif isinstance(field, EntityField): self.Fields[namefield] = field elif isinstance(field, EntityListField): self.ListFields[namefield] = field else: continue self.AllFields[namefield] = field if isinstance(field, PropertyField): continue value = kwargs.get(namefield) if kwargs.get( namefield) is not None else field() setattr(self, namefield, value) super(Entity, self).__init__() id = EntityField(KeyGenerator.generateuuid) def __hash__(self): return self.hash() def hash(self): t = tuple((k, v) for k, v in self.getdict().items() if k not in ignored_fields_for_hash) try: return hash(frozenset(t)) except TypeError: pass def __str__(self): return str(self.getdict()) def __unicode__(self): return self.__str__() def getdict(self): return { namefield: getattr(self, namefield) for namefield in self.AllFields } def get_changed_entities(self): firstrun = { namefield: getattr(self, namefield).get_changed_entities() for namefield in self.ListFields } return { namefield: value for namefield, value in firstrun.items() if value != [] } def update_from_changed_entities(self, changed_entities): for namefield in self.ListFields: getattr(self, namefield).update_from_changed_entities( changed_entities.get(namefield)) def update_from_dict(self, d): self.__dict__.update(d) def __ne__(self, other): return not self.__eq__(other) def __eq__(self, other): if isinstance(other, Entity): return self.getdict() == other.getdict() else: return False
class MyEntity(Entity): greatfield = EntityField(2)
class PayeeLocation(Entity): entities_payee_id = EntityField(None) is_tombstone = EntityField(False) latitude = EntityField(None) longitude = EntityField(None)
class CatalogBudget(Entity): budget_name = EntityField(None) is_tombstone = EntityField(None)
class TransactionGroup(Entity): be_transaction = EntityField(None) be_subtransactions = EntityField(None) be_matched_transaction = EntityField(None)
class Payee(Entity): auto_fill_amount = AmountField() auto_fill_amount_enabled = EntityField(None) auto_fill_memo = EntityField(None) auto_fill_memo_enabled = EntityField(None) auto_fill_subcategory_enabled = EntityField(None) auto_fill_subcategory_id = EntityField(None) enabled = EntityField(True) entities_account_id = EntityField(None) internal_name = EntityField(None) is_tombstone = EntityField(False) name = EntityField(None) rename_on_import_enabled = EntityField(None)
class MonthlyBudget(Entity): is_tombstone = EntityField(False) month = EntityField(None) note = EntityField(None)
class MockEntity(Entity): input = EntityField(True), override = PropertyField(lambda x: x.input)
class UserSetting(Entity): setting_name = EntityField(None) user_id = EntityField(None) setting_value = EntityField(None)