本文整理汇总了Python中weboob.capabilities.bank.Transfer.backend方法的典型用法代码示例。如果您正苦于以下问题:Python Transfer.backend方法的具体用法?Python Transfer.backend怎么用?Python Transfer.backend使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类weboob.capabilities.bank.Transfer
的用法示例。
在下文中一共展示了Transfer.backend方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _build_transfer
# 需要导入模块: from weboob.capabilities.bank import Transfer [as 别名]
# 或者: from weboob.capabilities.bank.Transfer import backend [as 别名]
def _build_transfer(self, line):
if self.interactive:
id_from, id_to, amount, reason, exec_date = self.parse_command_args(line, 5, 0)
else:
id_from, id_to, amount, reason, exec_date = self.parse_command_args(line, 5, 3)
missing = not bool(id_from and id_to and amount)
if id_from:
account = self.get_object(id_from, 'get_account', [])
id_from = account.id
if not account:
print('Error: account %s not found' % id_from, file=self.stderr)
return
else:
with self.use_cmd_formatter('list'):
self.do_ls('')
id_from = self.ask('Transfer money from account', default='')
if not id_from:
return
id_from, backend = self.parse_id(id_from)
account = find_object(self.objects, fullid='%[email protected]%s' % (id_from, backend))
if not account:
return
id_from = account.id
if id_to:
id_to, backend_name_to = self.parse_id(id_to)
if account.backend != backend_name_to:
print("Transfer between different backends is not implemented", file=self.stderr)
return
rcpts = self.do('iter_transfer_recipients', id_from, backends=account.backend)
rcpt = find_object(rcpts, id=id_to)
else:
with self.use_cmd_formatter('recipients'):
self.do_recipients(account.fullid)
id_to = self.ask('Transfer money to recipient', default='')
if not id_to:
return
id_to, backend = self.parse_id(id_to)
rcpt = find_object(self.objects, fullid='%[email protected]%s' % (id_to, backend))
if not rcpt:
return
if not amount:
amount = self.ask('Amount to transfer', default='', regexp=r'\d+(?:\.\d*)?')
try:
amount = Decimal(amount)
except (TypeError, ValueError, InvalidOperation):
print('Error: please give a decimal amount to transfer', file=self.stderr)
return
if amount <= 0:
print('Error: transfer amount must be strictly positive', file=self.stderr)
return
if missing:
reason = self.ask('Label of the transfer (seen by the recipient)', default='')
exec_date = self.ask('Execution date of the transfer (YYYY-MM-DD format, empty for today)', default='')
today = datetime.date.today()
if exec_date:
try:
exec_date = datetime.datetime.strptime(exec_date, '%Y-%m-%d').date()
except ValueError:
print('Error: execution date must be valid and in YYYY-MM-DD format', file=self.stderr)
return
if exec_date < today:
print('Error: execution date cannot be in the past', file=self.stderr)
return
else:
exec_date = today
transfer = Transfer()
transfer.backend = account.backend
transfer.account_id = account.id
transfer.account_label = account.label
transfer.account_iban = account.iban
transfer.recipient_id = id_to
if rcpt:
# Try to find the recipient label. It can be missing from
# recipients list, for example for banks which allow transfers to
# arbitrary recipients.
transfer.recipient_label = rcpt.label
transfer.recipient_iban = rcpt.iban
transfer.amount = amount
transfer.label = reason or u''
transfer.exec_date = exec_date
return transfer