本文整理汇总了Python中weboob.capabilities.bank.Investment类的典型用法代码示例。如果您正苦于以下问题:Python Investment类的具体用法?Python Investment怎么用?Python Investment使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Investment类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: iter_investment
def iter_investment(self, account):
if account.type == Account.TYPE_LIFE_INSURANCE:
if not self.goto_spirica(account):
return iter([])
return self.spirica.iter_investment(account)
elif account.type in (Account.TYPE_MARKET, Account.TYPE_PEA):
bourse_account = self.get_bourse_account(account)
if not bourse_account:
return iter([])
self.location(bourse_account._market_link)
assert self.bourse.is_here()
invs = list(self.page.iter_investment())
# _especes is set during BoursePage accounts parsing. BoursePage
# inherits from lcl module BoursePage
if bourse_account._especes:
i = Investment()
i.valuation = bourse_account._especes
i.code = u"XX-liquidity"
i.label = u"Liquidités"
invs.append(i)
self.leave_espace_bourse()
return invs
raise NotImplementedError()
示例2: get_investment
def get_investment(self, account):
if account.type == Account.TYPE_LIFE_INSURANCE and account._form:
self.assurancevie.stay_or_go()
account._form.submit()
if self.calie.is_here():
# come back to syntese
self.assurancevie.go()
return
if self.page.is_restricted():
self.logger.warning('restricted access to account %s', account)
else:
for inv in self.page.iter_investment():
yield inv
if self.avdetail.is_here():
self.page.come_back()
elif hasattr(account, '_market_link') and account._market_link:
self.connexion_bourse()
for inv in self.location(account._market_link).page.iter_investment():
yield inv
self.deconnexion_bourse()
elif account.id in self.get_bourse_accounts_ids():
inv = Investment()
inv.id = account.id
inv.code = 'XX-Liquidity'
inv.label = "Liquidités"
inv.valuation = account.balance
yield inv
示例3: iter_investment
def iter_investment(self):
for line in self.document.xpath('//table[@summary and count(descendant::td) > 1]/tbody/tr'):
cells = line.findall('td')
if len(cells) < 5:
continue
inv = Investment()
inv.label = unicode(cells[self.COL_ID].text_content().strip())
a = cells[self.COL_ID].find('a')
if a is not None:
try:
inv.code = a.attrib['id']
except KeyError:
#For "Mandat d'arbitrage" which is a recapitulatif of more investement
continue
else:
inv.code = NotAvailable
inv.quantity = self.parse_decimal(cells[self.COL_QUANTITY].text_content())
inv.unitvalue = self.parse_decimal(cells[self.COL_UNITVALUE].text_content())
inv.valuation = self.parse_decimal(cells[self.COL_VALUATION].text_content())
inv.unitprice = NotAvailable
inv.diff = NotAvailable
yield inv
示例4: iter_investment
def iter_investment(self):
valuation = MyDecimal('//td[@class="donneeNumerique borderbottom "]/text()')(self.doc)
if valuation is not None:
inv = Investment()
inv.code = 'XX-liquidity'
inv.code_type = NotAvailable
inv.label = 'Liquidités'
inv.valuation = valuation
yield inv
for inv in self.get_investment():
yield inv
示例5: get_investments
def get_investments(self):
for line in self.document.xpath('//div[@class="row-fluid table-contrat-supports"]/table/tbody[(@class)]/tr'):
cols = line.findall('td')
inv = Investment()
inv.label = self.parser.tocleanstring(cols[self.COL_LABEL]).replace('Cas sans risque ', '')
inv.quantity = self.parse_decimal(cols[self.COL_QUANTITY])
inv.unitvalue = self.parse_decimal(cols[self.COL_UNITVALUE])
inv.valuation = self.parse_decimal(cols[self.COL_VALUATION])
yield inv
示例6: iter_investment
def iter_investment(self, account):
self.account.go(id=account.id)
key = self.page.get_invest_key()
self.invests.go()
data = self.page.get_invest(*key)
for item in data:
inv = Investment()
inv.code = item['isin']
inv.label = item['name']
inv.portfolio_share = item['share']
inv.valuation = account.balance * inv.portfolio_share
yield inv
示例7: get_market_investment
def get_market_investment(self):
COL_LABEL = 0
COL_QUANTITY = 1
COL_UNITPRICE = 2
COL_UNITVALUE = 3
COL_VALUATION = 4
COL_PERF = 5
for table in self.document.xpath('//table[@class="datas-large"]'):
for tr in table.xpath('.//tr[not(@class="entete")]'):
cols = tr.findall('td')
if len(cols) < 7:
continue
delta = 0
if len(cols) == 9:
delta = 1
inv = Investment()
inv.code = self.parser.tocleanstring(cols[COL_LABEL + delta].xpath('.//span')[1])
inv.label = self.parser.tocleanstring(cols[COL_LABEL + delta].xpath('.//span')[0])
inv.quantity = self.parse_decimal(cols[COL_QUANTITY + delta])
inv.unitprice = self.parse_decimal(cols[COL_UNITPRICE + delta])
inv.unitvalue = self.parse_decimal(cols[COL_UNITVALUE + delta])
inv.valuation = self.parse_decimal(cols[COL_VALUATION + delta])
inv.diff = self.parse_decimal(cols[COL_PERF + delta])
yield inv
示例8: get_market_investment
def get_market_investment(self):
if CleanText('//div[contains(text(), "restreint aux fonctions de bourse")]')(self.doc):
return
COL_LABEL = 0
COL_QUANTITY = 1
COL_UNITPRICE = 2
COL_UNITVALUE = 3
COL_VALUATION = 4
COL_PERF = 5
for table in self.doc.xpath('//table[@class="datas-large"]'):
for tr in table.xpath('.//tr[not(@class="entete")]'):
cols = tr.findall('td')
if len(cols) < 7:
continue
delta = 0
if len(cols) == 9:
delta = 1
inv = Investment()
inv.code = CleanText('.')(cols[COL_LABEL + delta].xpath('.//span')[1]).split(' ')[0].split(u'\xa0')[0]
inv.label = CleanText('.')(cols[COL_LABEL + delta].xpath('.//span')[0])
inv.quantity = MyDecimal('.')(cols[COL_QUANTITY + delta])
inv.unitprice = MyDecimal('.')(cols[COL_UNITPRICE + delta])
inv.unitvalue = MyDecimal('.')(cols[COL_UNITVALUE + delta])
inv.valuation = MyDecimal('.')(cols[COL_VALUATION + delta])
inv.diff = MyDecimal('.')(cols[COL_PERF + delta])
yield inv
示例9: iter_investment
def iter_investment(self):
doc = self.browser.get_document(self.browser.openurl('/brs/fisc/fisca10a.html'), encoding='utf-8')
num_page = None
try:
num_page = int(self.parser.tocleanstring(doc.xpath(u'.//tr[contains(td[1], "Relevé des plus ou moins values latentes")]/td[2]')[0]).split('/')[1])
except IndexError:
pass
docs = [doc]
if num_page:
for n in range(2, num_page + 1):
docs.append(self.browser.get_document(self.browser.openurl('%s%s' % ('/brs/fisc/fisca10a.html?action=12&numPage=', str(n))), encoding='utf-8'))
for doc in docs:
for tr in doc.xpath('//tr[count(td)=6 and td[1]/strong]'):
cells = tr.findall('td')
inv = Investment()
inv.label = unicode(cells[self.COL_LABEL].xpath('.//span')[0].attrib['title'].split(' - ')[0])
inv.code = unicode(cells[self.COL_LABEL].xpath('.//span')[0].attrib['title'].split(' - ')[1])
inv.quantity = self.parse_decimal(cells[self.COL_QUANTITY])
inv.unitprice = self.parse_decimal(tr.xpath('./following-sibling::tr/td[3]')[0])
inv.unitvalue = self.parse_decimal(cells[self.COL_UNITVALUE])
inv.valuation = self.parse_decimal(cells[self.COL_VALUATION])
inv.diff = self.parse_decimal(cells[self.COL_DIFF])
yield inv
示例10: iter_investments
def iter_investments(self):
for support in self.path(self.investments_path):
inv = Investment()
inv.code = inv.id = support['securityCode']
inv.quantity = support['quantityOwned']
inv.unitvalue = support['currentQuote']
inv.unitprice = support['averagePrice']
inv.label = support['securityName']
inv.valuation = support['valorizationValuation']
inv.diff = support['profitLossValorisation']
inv.set_empty_fields(NotAvailable)
yield inv
示例11: get_operations
def get_operations(self):
for tr in self.doc.xpath('//table[@id="tabHistoriqueOperations"]/tbody/tr'):
tds = tr.findall('td')
if len(CleanText(None).filter(tds[-1])) == 0:
continue
t = Transaction()
t.type = Transaction.TYPE_BANK
t.parse(date=CleanText(None).filter(tds[3]),
raw=CleanText(None).filter(tds[1]))
t.amount = CleanDecimal(None, replace_dots=True, default=0).filter(tds[-2])
t.commission = CleanDecimal(None, replace_dots=True, default=0).filter(tds[-3])
investment = Investment()
investment.label = CleanText(None).filter(tds[0])
investment.quantity = CleanDecimal(None, replace_dots=True, default=0).filter(tds[4])
investment.unitvalue = CleanDecimal(None, replace_dots=True, default=0).filter(tds[5])
t.investments = [investment]
yield t
示例12: iter_investment
def iter_investment(self):
rows = self.document.xpath('//table[@id="mefav_repartition_supports_BPF"]//tr') or \
self.document.xpath('//tbody[@id="mefav_repartition_supports"]//tr')
for tr in rows:
cells = clean_cells(tr.findall('td'))
cells[3:] = clean_amounts(cells[3:])
inv = Investment()
inv.label, _, inv.code, inv.quantity, inv.unitvalue, inv.valuation, _ = cells
if inv.code:
inv.id = inv.code
if not inv.unitvalue:
# XXX Fonds eu Euros
inv.code = u'XX' + re.sub(ur'[^A-Za-z0-9]', u'', inv.label).upper()
inv.description = u''
yield inv
示例13: get_investments
def get_investments(self):
for line in self.document.xpath('//table[@id="tableau_support"]/tbody/tr'):
cols = line.findall('td')
inv = Investment()
inv.id = unicode(re.search('cdReferentiel=(.*)', cols[self.COL_LABEL].find('a').attrib['href']).group(1))
inv.code = re.match('^[A-Z]+[0-9]+(.*)$', inv.id).group(1)
inv.label = self.parser.tocleanstring(cols[self.COL_LABEL])
inv.quantity = self.parse_decimal(cols[self.COL_QUANTITY])
inv.unitprice = self.parse_decimal(cols[self.COL_UNITPRICE])
inv.unitvalue = self.parse_decimal(cols[self.COL_UNITVALUE])
inv.valuation = self.parse_decimal(cols[self.COL_VALUATION])
inv.diff = self.parse_decimal(cols[self.COL_PERF])
yield inv
示例14: iter_investment
def iter_investment(self):
el_list = self.doc.xpath('//table[@class="liste"]/tbody/tr')
for index, el in enumerate(el_list):
try:
rowspan = int(Attr(el.xpath('./td[has-class("g")]'), 'rowspan')(self))
except:
continue
inv = Investment()
inv.label = CleanText(el.xpath('./td[has-class("i g")]'))(self.doc)
inv.valuation = MyDecimal(el.xpath('./td[last()]'))(self.doc)
inv._pocket_url = None
for i in range(1, rowspan):
# valuation is not directly written on website, but it's separated by pocket, so we compute it here,
# and is also written in footer so it's sum of all valuation, not just one
inv.valuation += MyDecimal(el_list[index+i].xpath('./td[last()]'))(self.doc)
yield inv
示例15: iter_investments
def iter_investments(self):
# We did not get some html, but something like that (XX is a quantity, YY a price):
# message='[...]
# popup=2{6{E:ALO{PAR{{reel{695{380{ALSTOM REGROUPT#XX#YY,YY €#YY,YY €#1 YYY,YY €#-YYY,YY €#-42,42%#-0,98 %#42,42 %#|1|AXA#cotationValeur.php?val=E:CS&pl=6&nc=1&
# popup=2{6{E:CS{PAR{{reel{695{380{AXA#XX#YY,YY €#YY,YYY €#YYY,YY €#YY,YY €#3,70%#42,42 %#42,42 %#|1|blablablab #cotationValeur.php?val=P:CODE&pl=6&nc=1&
# [...]
lines = self.doc.split("popup=2")
lines.pop(0)
for line in lines:
columns = line.split('#')
_pl = columns[0].split('{')[1]
_id = columns[0].split('{')[2]
invest = Investment(_id)
invest.label = unicode(columns[0].split('{')[-1])
invest.code = unicode(_id)
if ':' in invest.code:
invest.code = self.browser.titrevalue.open(val=invest.code,pl=_pl).get_isin()
# The code we got is not a real ISIN code.
if not re.match('^[A-Z]{2}[\d]{10}$|^[A-Z]{2}[\d]{5}[A-Z]{1}[\d]{4}$', invest.code):
m = re.search('\{([A-Z]{2}[\d]{10})\{|\{([A-Z]{2}[\d]{5}[A-Z]{1}[\d]{4})\{', line)
if m:
invest.code = unicode(m.group(1) or m.group(2))
quantity = FrenchTransaction.clean_amount(columns[1])
invest.quantity = CleanDecimal(default=NotAvailable).filter(quantity)
unitprice = FrenchTransaction.clean_amount(columns[2])
invest.unitprice = CleanDecimal(default=NotAvailable).filter(unitprice)
unitvalue = FrenchTransaction.clean_amount(columns[3])
invest.unitvalue = CleanDecimal(default=NotAvailable).filter(unitvalue)
valuation = FrenchTransaction.clean_amount(columns[4])
# valuation is not nullable, use 0 as default value
invest.valuation = CleanDecimal(default=Decimal('0')).filter(valuation)
diff = FrenchTransaction.clean_amount(columns[5])
invest.diff = CleanDecimal(default=NotAvailable).filter(diff)
yield invest