本文整理汇总了Python中weboob.capabilities.bank.Investment类的典型用法代码示例。如果您正苦于以下问题:Python Investment类的具体用法?Python Investment怎么用?Python Investment使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Investment类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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()
开发者ID:P4ncake,项目名称:weboob,代码行数:28,代码来源:browser.py
示例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
开发者ID:P4ncake,项目名称:weboob,代码行数:29,代码来源:browser.py
示例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
开发者ID:ffourcot,项目名称:weboob,代码行数:25,代码来源:pages.py
示例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
开发者ID:P4ncake,项目名称:weboob,代码行数:11,代码来源:pages.py
示例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
开发者ID:ngrislain,项目名称:weboob,代码行数:11,代码来源:pages.py
示例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
开发者ID:laurentb,项目名称:weboob,代码行数:13,代码来源:browser.py
示例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
开发者ID:ffourcot,项目名称:weboob,代码行数:26,代码来源:pages.py
示例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
开发者ID:P4ncake,项目名称:weboob,代码行数:31,代码来源:pages.py
示例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
开发者ID:h4wkmoon,项目名称:weboob,代码行数:26,代码来源:accounts_list.py
示例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
开发者ID:dasimon,项目名称:weboob,代码行数:12,代码来源:pages.py
示例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
开发者ID:P4ncake,项目名称:weboob,代码行数:17,代码来源:accounts_list.py
示例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
开发者ID:dasimon,项目名称:weboob,代码行数:18,代码来源:investment.py
示例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
开发者ID:Konubinix,项目名称:weboob,代码行数:15,代码来源:accounts_list.py
示例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
开发者ID:laurentb,项目名称:weboob,代码行数:19,代码来源:pages.py
示例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
开发者ID:h4wkmoon,项目名称:weboob,代码行数:40,代码来源:titre.py
示例16: get_accounts_list
def get_accounts_list(self):
data = {'clang': self.LANG,
'ctcc': self.CTCC,
'login': self.username,
'session': self.sessionId}
for dispositif in self.accountsp.open(data=data).get_list():
if dispositif['montantBrutDispositif'] == 0:
continue
a = Account()
a.id = dispositif['codeDispositif']
a.type = Account.TYPE_MARKET
a.balance = Decimal(dispositif["montantBrutDispositif"]).quantize(Decimal('.01'))
a.label = dispositif['titreDispositif']
a.currency = u"EUR" # Don't find any possbility to get that from configuration.
a._investments = []
for fund in dispositif['listeFonds']:
if fund['montantValeurEuro'] == 0:
continue
i = Investment()
i.id = i.code = dispositif['codeEntreprise'] + dispositif["codeDispositif"] + fund["codeSupport"]
i.label = fund['libelleSupport']
i.unitvalue = Decimal(fund["montantValeur"]).quantize(Decimal('.01'))
i.valuation = Decimal(fund["montantValeurEuro"]).quantize(Decimal('.01'))
i.quantity = i.valuation / i.unitvalue
i.vdate = parse_date(fund['dateValeur'], dayfirst=True)
a._investments.append(i)
yield a
开发者ID:ffourcot,项目名称:weboob,代码行数:30,代码来源:browser.py
示例17: get_investment
def get_investment(self):
Decimal = CleanDecimal(replace_dots=True).filter
for tr in self._tr_list(self.document):
cells = list(el_to_string(td) for td in self._td_list(tr))
link = unicode(self._link(tr)[0])
'''
Boursorama table cells
----------------------
0. Fonds
1. Date de valeur
2. Valeur de part
3. Nombre de parts
4. Contre valeur
5. Prix revient
6. +/- value en €*
7. +/- value en %*
Investment model
----------------
label = StringField('Label of stocks')
code = StringField('Identifier of the stock (ISIN code)')
description = StringField('Short description of the stock')
quantity = IntField('Quantity of stocks')
unitprice = DecimalField('Buy price of one stock')
unitvalue = DecimalField('Current value of one stock')
valuation = DecimalField('Total current valuation of the Investment')
diff = DecimalField('Difference between the buy cost and the current valuation')
'''
inv = Investment()
isin = self.get_isin(link)
if isin:
inv.id = inv.code = isin
inv.label = cells[0]
inv.quantity = Decimal(cells[3])
inv.valuation = Decimal(cells[4])
inv.unitprice = Decimal(cells[5])
inv.unitvalue = Decimal(cells[2])
inv.diff = Decimal(cells[6])
inv._detail_url = link if '/cours.phtml' in link else None
yield inv
开发者ID:Konubinix,项目名称:weboob,代码行数:50,代码来源:investment.py
示例18: get_transactions_from_detail
def get_transactions_from_detail(self, account):
for label, page in account._history_pages:
amounts = page.doc.xpath('//span[contains(text(), "Montant")]/following-sibling::span')
if len(amounts) == 3:
amounts.pop(0)
for table in page.doc.xpath('//table'):
t = Transaction()
t.date = Date(CleanText(page.doc.xpath('//span[contains(text(), "Date d\'effet")]/following-sibling::span')), dayfirst=True)(page)
t.label = label
t.amount = CleanDecimal(replace_dots=True).filter(amounts[0])
amounts.pop(0)
t._is_coming = False
t.investments = []
sum_amount = 0
for tr in table.xpath('./tbody/tr'):
i = Investment()
i.label = CleanText().filter(tr.xpath('./td[1]'))
i.vdate = Date(CleanText(tr.xpath('./td[2]')), dayfirst=True)(tr)
i.unitvalue = CleanDecimal(replace_dots=True).filter(tr.xpath('./td[3]'))
i.quantity = CleanDecimal(replace_dots=True).filter(tr.xpath('./td[4]'))
i.valuation = CleanDecimal(replace_dots=True).filter(tr.xpath('./td[5]'))
sum_amount += i.valuation
t.investments.append(i)
if t.label == 'prélèvement':
t.amount = sum_amount
yield t
开发者ID:laurentb,项目名称:weboob,代码行数:29,代码来源:pages.py
示例19: parse
def parse(self, el):
i = Investment()
i.label = Field('label')(self)
i.code = CleanText(TableCell('code'))(self)
i.quantity = MyDecimal(TableCell('quantity'))(self)
i.valuation = Field('amount')(self)
i.vdate = Field('date')(self)
self.env['investments'] = [i]
开发者ID:laurentb,项目名称:weboob,代码行数:8,代码来源:pages.py
示例20: create_investment
def create_investment(self, cells):
inv = Investment()
inv.quantity = MyDecimal('.')(cells[self.COL_QUANTITY])
inv.unitvalue = MyDecimal('.')(cells[self.COL_UNITVALUE])
inv.unitprice = NotAvailable
inv.valuation = MyDecimal('.')(cells[self.COL_VALUATION])
inv.diff = NotAvailable
link = cells[self.COL_LABEL].xpath('a[contains(@href, "CDCVAL=")]')[0]
m = re.search('CDCVAL=([^&]+)', link.attrib['href'])
if m:
inv.code = m.group(1)
else:
inv.code = NotAvailable
return inv
开发者ID:P4ncake,项目名称:weboob,代码行数:15,代码来源:accounts_list.py
注:本文中的weboob.capabilities.bank.Investment类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论