本文整理汇总了Python中weboob.tools.capabilities.bank.transactions.AmericanTransaction.decimal_amount方法的典型用法代码示例。如果您正苦于以下问题:Python AmericanTransaction.decimal_amount方法的具体用法?Python AmericanTransaction.decimal_amount怎么用?Python AmericanTransaction.decimal_amount使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类weboob.tools.capabilities.bank.transactions.AmericanTransaction
的用法示例。
在下文中一共展示了AmericanTransaction.decimal_amount方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: unsorted_trans
# 需要导入模块: from weboob.tools.capabilities.bank.transactions import AmericanTransaction [as 别名]
# 或者: from weboob.tools.capabilities.bank.transactions.AmericanTransaction import decimal_amount [as 别名]
def unsorted_trans(self):
for jnl in self.doc['accountDetailsAndActivity']['accountActivity'] \
['postedTransactionJournals']:
tdate = jnl['columns'][0]['activityColumn'][0]
label = jnl['columns'][1]['activityColumn'][0]
amount = jnl['columns'][3]['activityColumn'][0]
xdescs = dict((x['label'], x['value'][0])
for x in jnl['extendedDescriptions'])
pdate = xdescs['Posted Date :']
ref = xdescs.get('Reference Number:') or ''
if amount.startswith('(') and amount.endswith(')'):
amount = AmTr.decimal_amount(amount[1:-1])
else:
amount = -AmTr.decimal_amount(amount)
label = clean_label(label)
trans = Transaction(ref)
trans.date = datetime.strptime(tdate, '%m-%d-%Y')
trans.rdate = datetime.strptime(pdate, '%m-%d-%Y')
trans.type = Transaction.TYPE_UNKNOWN
trans.raw = label
trans.label = label
trans.amount = amount
yield trans
示例2: iter_transactions
# 需要导入模块: from weboob.tools.capabilities.bank.transactions import AmericanTransaction [as 别名]
# 或者: from weboob.tools.capabilities.bank.transactions.AmericanTransaction import decimal_amount [as 别名]
def iter_transactions(self):
for row in self.doc.xpath('//tr/th[@headers='
'"postedHeader dateHeader"]/..'):
date = row.xpath('th[@headers="postedHeader '
'dateHeader"]/text()')[0]
desc = row.xpath('td[@headers="postedHeader '
'descriptionHeader"]/span/text()')[0]
deposit = row.xpath('td[@headers="postedHeader '
'depositsConsumerHeader"]/span/text()')[0]
withdraw = row.xpath('td[@headers="postedHeader '
'withdrawalsConsumerHeader"]/span/text()')[0]
date = datetime.datetime.strptime(date, '%m/%d/%y')
desc = clean_label(desc)
deposit = deposit.strip()
deposit = AmTr.decimal_amount(deposit or '0')
withdraw = withdraw.strip()
withdraw = AmTr.decimal_amount(withdraw or '0')
amount = deposit - withdraw
trans = Transaction(u'')
trans.date = date
trans.rdate = date
trans.type = Transaction.TYPE_UNKNOWN
trans.raw = desc
trans.label = desc
trans.amount = amount
yield trans
示例3: account
# 需要导入模块: from weboob.tools.capabilities.bank.transactions import AmericanTransaction [as 别名]
# 或者: from weboob.tools.capabilities.bank.transactions.AmericanTransaction import decimal_amount [as 别名]
def account(self):
label = u' '.join(self.doc.xpath(
'//div[contains(@class,"myCreditCardDetails")]')[0]\
.text_content().split())
balance = self.amount(u'Balance')
cardlimit = self.doc.xpath(
u'//li[text()="Available to Spend"]')[0].text_content()\
.replace(u'Available to Spend', u'').replace(u'Limit', u'').strip()
paymin = self.amount(u'Payment Due')
if self.doc.xpath(u'//li[@class="noPaymentDue"]'):
# If payment date is not scheduled yet, set it somewhere in a
# distant future, so that we always have a valid date.
paydate = datetime.now() + timedelta(days=999)
else:
rawtext = self.doc.xpath(
u'//li[contains(text(),"Due Date")]')[0].text_content()
datetext = re.match('.*(\d\d/\d\d/\d\d\d\d).*', rawtext).group(1)
paydate = datetime.strptime(datetext, '%m/%d/%Y')
a = Account()
a.id = label[-4:]
a.label = label
a.currency = Account.get_currency(balance)
a.balance = -AmTr.decimal_amount(balance)
a.type = Account.TYPE_CARD
a.cardlimit = AmTr.decimal_amount(cardlimit)
a.paymin = AmTr.decimal_amount(paymin)
if paydate is not None:
a.paydate = paydate
return a
示例4: amount
# 需要导入模块: from weboob.tools.capabilities.bank.transactions import AmericanTransaction [as 别名]
# 或者: from weboob.tools.capabilities.bank.transactions.AmericanTransaction import decimal_amount [as 别名]
def amount(self, shmt, name):
for root in shmt.xpath(u'../../../../../../../..'
u'//td[text()="Item(s) Subtotal: "]/../..'):
for node in root.xpath(u'tr/td[text()="%s"]' % name):
return AmTr.decimal_amount(
node.xpath('../td')[-1].text.strip())
for node in root.xpath(u'tr/td/b[text()="%s"]' % name):
return AmTr.decimal_amount(
node.xpath('../../td/b')[-1].text.strip())
return Decimal(0)
示例5: read_indent_amount
# 需要导入模块: from weboob.tools.capabilities.bank.transactions import AmericanTransaction [as 别名]
# 或者: from weboob.tools.capabilities.bank.transactions.AmericanTransaction import decimal_amount [as 别名]
def read_indent_amount(self, pos, range_skip=(0,0), range_plus=(0,0),
range_minus=(0,0)):
startPos = pos
# Read layout-amount pairs.
amounts = []
while True:
prevPos = pos
pos, layout = self.read_layout_tm(pos)
pos, amount = self.read_amount(pos)
if layout is None or amount is None:
pos = prevPos
break
else:
amounts.append((layout, amount))
if not amounts:
return startPos, None
else:
# Infer amount type by its indentation in the layout.
amount_total = AmTr.decimal_amount('0')
for (_, _, _, _, indent, _), amount in amounts:
within = lambda xmin_xmax: xmin_xmax[0] <= indent <= xmin_xmax[1]
if within(range_skip):
continue
elif within(range_plus):
amount_total += amount
elif within(range_minus):
amount_total -= amount
return pos, amount_total
示例6: items
# 需要导入模块: from weboob.tools.capabilities.bank.transactions import AmericanTransaction [as 别名]
# 或者: from weboob.tools.capabilities.bank.transactions.AmericanTransaction import decimal_amount [as 别名]
def items(self):
for shmt in self.shipments():
root = shmt.xpath(u'../../../../../../../..'
u'//b[text()="Items Ordered"]')[0]
for item in root.xpath('../../../tr')[1:]:
count = url = label = None
for div in item.xpath('*//div'):
m = re.match(u'^\s*(\d+)\s*of:(.*)$', div.text,
re.MULTILINE + re.DOTALL)
if not m:
continue
count = Decimal(m.group(1).strip())
label = unicode(m.group(2).strip())
if label:
url = u''
else:
a = div.xpath('*//a[contains(@href,"/gp/product")]')[0]
url = unicode(a.attrib['href'])
label = unicode(a.text.strip())
price1 = item.xpath('*//div')[-1].text.strip()
price = count * AmTr.decimal_amount(price1)
itm = Item()
itm.label = label
itm.url = url
itm.price = price
yield itm
示例7: shipping
# 需要导入模块: from weboob.tools.capabilities.bank.transactions import AmericanTransaction [as 别名]
# 或者: from weboob.tools.capabilities.bank.transactions.AmericanTransaction import decimal_amount [as 别名]
def shipping(self):
if self.doc.xpath('//tr[@id="shipping_fee_row"]'
'//span[@class="free_shipping"]'):
amount = '0'
else:
amount = self.doc.xpath('//span[@id="shipping_fee"]/text()')[0]
return AmTr.decimal_amount(amount)
示例8: payment_part
# 需要导入模块: from weboob.tools.capabilities.bank.transactions import AmericanTransaction [as 别名]
# 或者: from weboob.tools.capabilities.bank.transactions.AmericanTransaction import decimal_amount [as 别名]
def payment_part(self, which):
# The numbers notation on VS is super wierd.
# Sometimes negative amounts are represented by <em> element.
for node in self.doc.xpath('//tbody[@class="payment-summary"]'
'//td[contains(text(),"%s")]/../td[2]' % which):
strv = node.text_content().strip()
v = Decimal(0) if strv == u'FREE' else AmTr.decimal_amount(strv)
return -v if node.xpath('em') and v > 0 else v
return Decimal(0)
示例9: iter_history_recent
# 需要导入模块: from weboob.tools.capabilities.bank.transactions import AmericanTransaction [as 别名]
# 或者: from weboob.tools.capabilities.bank.transactions.AmericanTransaction import decimal_amount [as 别名]
def iter_history_recent(self, account):
self.start()
if account.id != self._account_id():
raise AccountNotFound()
self._account_link().click()
self.wait_ajax()
for span in self.find('span.cM-maximizeButton'):
span.click()
for tr in self.find('tr.payments,tr.purchase'):
trdata = lambda n: tr.find_element_by_css_selector(
'td.cT-bodyTableColumn%i span.cT-line1' % n).text
treid = tr.get_attribute('id').replace('rowID', 'rowIDExt')
tredata = {}
for tre in self.find('tr#%s' % treid):
labels = [x.text for x in tre.find_elements_by_css_selector(
'div.cT-labelItem')]
values = [x.text for x in tre.find_elements_by_css_selector(
'div.cT-valueItem')]
tredata = dict(zip(labels, values))
ref = tredata.get(u'Reference Number:', u'')
tdate = trdata(1)
pdate = tredata.get(u'Posted Date :', tdate)
desc = clean_label(trdata(2))
amount = trdata(4)
tdate = datetime.datetime.strptime(tdate, '%m-%d-%Y')
pdate = datetime.datetime.strptime(pdate, '%m-%d-%Y')
if amount.startswith(u'(') and amount.endswith(u')'):
amount = AmTr.decimal_amount(amount[1:-1])
else:
amount = -AmTr.decimal_amount(amount)
trans = Transaction(ref)
trans.date = tdate
trans.rdate = pdate
trans.type = Transaction.TYPE_UNKNOWN
trans.raw = desc
trans.label = desc
trans.amount = amount
yield trans
self.finish()
示例10: account
# 需要导入模块: from weboob.tools.capabilities.bank.transactions import AmericanTransaction [as 别名]
# 或者: from weboob.tools.capabilities.bank.transactions.AmericanTransaction import decimal_amount [as 别名]
def account(self):
detact = self.doc["accountDetailsAndActivity"]
details = detact["accountDetails"]
account = Account()
account.type = Account.TYPE_CARD
account.label = re.sub(r"<[^>]+>", "", detact["accountName"])
account.id = account.label[-4:]
for bal in details["accountBalances"]:
label, value = bal["label"], (bal["value"] or ["0"])[0]
if label == u"Current Balance:":
account.currency = Account.get_currency(value)
account.balance = -AmTr.decimal_amount(value)
elif label == u"Total Revolving Credit Line:":
account.cardlimit = AmTr.decimal_amount(value)
elif label.startswith(u"Minimum Payment Due"):
d = re.match(r".*(..-..-....):$", label).group(1)
account.paydate = datetime.strptime(d, "%m-%d-%Y")
account.paymin = AmTr.decimal_amount(value)
return account
示例11: account
# 需要导入模块: from weboob.tools.capabilities.bank.transactions import AmericanTransaction [as 别名]
# 或者: from weboob.tools.capabilities.bank.transactions.AmericanTransaction import decimal_amount [as 别名]
def account(self):
detact = self.doc['accountDetailsAndActivity']
details = detact['accountDetails']
account = Account()
account.type = Account.TYPE_CARD
account.label = re.sub(r'<[^>]+>', '', detact['accountName'])
account.id = account.label[-4:]
for bal in details['accountBalances']:
label, value = bal['label'], (bal['value'] or ['0'])[0]
if label == u'Current Balance:':
account.currency = Account.get_currency(value)
account.balance = -AmTr.decimal_amount(value)
elif label == u'Total Revolving Credit Line:':
account.cardlimit = AmTr.decimal_amount(value)
elif label.startswith(u'Minimum Payment Due'):
d = re.match(r'.*(..-..-....):$', label).group(1)
account.paydate = datetime.strptime(d, '%m-%d-%Y')
account.paymin = AmTr.decimal_amount(value)
return account
示例12: iter_accounts
# 需要导入模块: from weboob.tools.capabilities.bank.transactions import AmericanTransaction [as 别名]
# 或者: from weboob.tools.capabilities.bank.transactions.AmericanTransaction import decimal_amount [as 别名]
def iter_accounts(self):
self.start()
bal = self.wait('div.cT-valueItem span.cT-balanceIndicator1')[0].text
account = Account()
account.id = self._account_id()
account.label = self._account_link().text
account.currency = Account.get_currency(bal)
account.balance = -AmTr.decimal_amount(bal)
account.type = Account.TYPE_CARD
self.finish()
yield account
示例13: account
# 需要导入模块: from weboob.tools.capabilities.bank.transactions import AmericanTransaction [as 别名]
# 或者: from weboob.tools.capabilities.bank.transactions.AmericanTransaction import decimal_amount [as 别名]
def account(self):
id_ = self.doc.xpath(u'//strong[contains(text(),'
'"credit card account ending in")]/text()')[0].strip()[-4:]
balance = self.doc.xpath(u'//span[@class="description" and text()="Current Balance"]/../span[@class="total"]/text()')[0].strip()
cardlimit = self.doc.xpath(u'//span[contains(text(),"Credit limit")]'
'/text()')[0].split()[-1]
paymin = self.doc.xpath(u'//section[@id=" account_summary"]'
'//strong[text()="Minimum Payment Due"]/../../span[2]/text()'
)[0].strip()
a = Account()
a.id = id_
a.label = u'ACCOUNT ENDING IN %s' % id_
a.currency = Account.get_currency(balance)
a.balance = -AmTr.decimal_amount(balance)
a.type = Account.TYPE_CARD
a.cardlimit = AmTr.decimal_amount(cardlimit)
a.paymin = AmTr.decimal_amount(paymin)
#TODO: Add paydate.
#Oleg: I don't have an account with scheduled payment.
# Need to wait for a while...
return a
示例14: account
# 需要导入模块: from weboob.tools.capabilities.bank.transactions import AmericanTransaction [as 别名]
# 或者: from weboob.tools.capabilities.bank.transactions.AmericanTransaction import decimal_amount [as 别名]
def account(self):
label = u' '.join(u''.join(self.doc.xpath(
u'//text()[contains(.,"Account ending in")]')).split())
balance = self.doc.xpath(
'//span[@id="currentBalance"]/..')[0].text_content()
cardlimit = self.doc.xpath(u'//td[contains(text(),'
'"Total Credit Limit")]/../td[2]')[0].text_content()
paydate = self.doc.xpath(u'//td[contains(text(),'
'"Payment Due Date")]/../td[2]')[0].text_content()
paymin = self.doc.xpath(
'//span[@id="nextMinPayment"]/..')[0].text_content()
a = Account()
a.id = label[-4:]
a.label = label
a.currency = Account.get_currency(balance)
a.balance = -AmTr.decimal_amount(balance)
a.type = Account.TYPE_CARD
a.cardlimit = AmTr.decimal_amount(cardlimit)
a.paydate = datetime.strptime(paydate, '%m/%d/%Y')
a.paymin = AmTr.decimal_amount(paymin)
return a
示例15: items
# 需要导入模块: from weboob.tools.capabilities.bank.transactions import AmericanTransaction [as 别名]
# 或者: from weboob.tools.capabilities.bank.transactions.AmericanTransaction import decimal_amount [as 别名]
def items(self):
for tr in self.doc.xpath('//tbody[@class="order-items"]/tr'):
label = tr.xpath('*//h1')[0].text_content().strip()
price = AmTr.decimal_amount(re.match(r'^\s*([^\s]+)(\s+.*)?',
tr.xpath('*//div[@class="price"]')[0].text_content(),
re.DOTALL).group(1))
url = 'http:' + tr.xpath('*//img/@src')[0]
item = Item()
item.label = unicode(label)
item.url = unicode(url)
item.price = price
yield item