class SECINFO(CURRENCY, SECID): # FIs abuse SECNAME/TICKER # Relaxing the length constraints from the OFX spec does little harm #secname = String(120, required=True) secname = NagString(120, required=True) #ticker = String(32) ticker = NagString(32) fiid = String(32) rating = String(10) unitprice = Decimal() dtasof = DateTime() memo = String(255)
class SECINFO(Aggregate): """OFX Section 13.8.5.1""" secid = SubAggregate(SECID, required=True) # FIs abuse SECNAME/TICKER # Relaxing the length constraints from the OFX spec does little harm secname = NagString(120, required=True) ticker = NagString(32) fiid = String(32) rating = String(10) unitprice = Decimal() dtasof = DateTime() currency = SubAggregate(CURRENCY) memo = String(255)
class STMTTRN(Aggregate, Origcurrency): """OFX section 11.4.3""" trntype = OneOf(*TRNTYPES, required=True) dtposted = DateTime(required=True) dtuser = DateTime() dtavail = DateTime() trnamt = Decimal(required=True) fitid = String(255, required=True) correctfitid = String(255) correctaction = OneOf("REPLACE", "DELETE") srvrtid = String(10) checknum = String(12) refnum = String(32) sic = Integer() payeeid = String(12) name = NagString(32) payee = SubAggregate(PAYEE) extdname = String(100) bankacctto = SubAggregate(BANKACCTTO) ccacctto = SubAggregate(CCACCTTO) memo = String(255) imagedata = Unsupported() currency = SubAggregate(CURRENCY) origcurrency = SubAggregate(ORIGCURRENCY) inv401ksource = OneOf(*INV401KSOURCES) optionalMutexes = [ ["name", "payee"], ["ccacctto", "bankacctto"], ["currency", "origcurrency"], ]
class PAYEE(Aggregate): #name = String(32, required=True) name = NagString(32, required=True) addr1 = String(32, required=True) addr2 = String(32) addr3 = String(32) city = String(32, required=True) state = String(5, required=True) postalcode = String(11, required=True) country = OneOf(*COUNTRY_CODES) phone = String(32, required=True)
class INV401K(Aggregate): """ OFX section 13.9.3 """ employername = NagString(32, required=True) planid = String(32) planjoindate = DateTime() employercontactinfo = String(255) brokercontactinfo = String(255) deferpctpretax = Decimal() deferpctaftertax = Decimal() matchinfo = SubAggregate(MATCHINFO) contribinfo = SubAggregate(CONTRIBINFO) currentvestpct = Decimal() vestinfo = ListAggregate(VESTINFO) loaninfo = ListAggregate(LOANINFO) inv401ksummary = SubAggregate(INV401KSUMMARY)