当前位置: 首页>>代码示例>>Python>>正文


Python bank.Investment类代码示例

本文整理汇总了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()
开发者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 &euro;#YY,YY &euro;#1 YYY,YY &euro;#-YYY,YY &euro;#-42,42%#-0,98 %#42,42 %#|1|AXA#cotationValeur.php?val=E:CS&amp;pl=6&amp;nc=1&amp;
        # popup=2{6{E:CS{PAR{{reel{695{380{AXA#XX#YY,YY &euro;#YY,YYY &euro;#YYY,YY &euro;#YY,YY &euro;#3,70%#42,42 %#42,42 %#|1|blablablab #cotationValeur.php?val=P:CODE&amp;pl=6&amp;nc=1&amp;
        # [...]
        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


注:本文中的weboob.capabilities.bank.Investment类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。