diff --git a/modules/bnpcards/browser.py b/modules/bnpcards/browser.py
index daea4939deb3cb96c4924c5d4618770afd404f0f..8900ba22ed5785330019294a85666e316b48c153 100644
--- a/modules/bnpcards/browser.py
+++ b/modules/bnpcards/browser.py
@@ -22,6 +22,7 @@
from weboob.browser import LoginBrowser, URL, need_login
from weboob.browser.switch import SiteSwitch
from weboob.tools.capabilities.bank.transactions import sorted_transactions
+from weboob.tools.compat import basestring
from .pages import LoginPage, ErrorPage, AccountsPage, TransactionsPage, \
TiCardPage, TiHistoPage, ComingPage, HistoPage, HomePage
@@ -30,35 +31,35 @@
class BnpcartesentrepriseBrowser(LoginBrowser):
BASEURL = 'https://www.cartesentreprise.bnpparibas.com'
- login = URL('/ce_internet_public/seConnecter.builder.do', LoginPage)
- error = URL('.*.seConnecter.event.do',
- '.*.compteGestChgPWD.builder.do',
- '/ce_internet_prive_ti/compteTituChgPWD.builder.do',
+ login = URL(r'/ce_internet_public/seConnecter.builder.do', LoginPage)
+ error = URL(r'.*.seConnecter.event.do',
+ r'.*.compteGestChgPWD.builder.do',
+ r'/ce_internet_prive_ti/compteTituChgPWD.builder.do',
r'/ce_internet_corporate_ti/compteTituChgPWDCorporate.builder.do',
ErrorPage)
- home = URL('/ce_internet_prive_ge/accueilInternetGe.builder.do',
- '/ce_internet_(prive|corporate)_ti/accueilInternetTi(Corporate)?.builder.do', HomePage)
- accounts = URL('/ce_internet_prive_ge/carteAffaireParc.builder.do',
- '/ce_internet_prive_ge/carteAffaireParcChange.event.do',
- '/ce_internet_prive_ge/pageParcCarteAffaire.event.do', AccountsPage)
- coming = URL('/ce_internet_prive_ge/operationEnCours.builder.do',
- '/ce_internet_prive_ge/operationEnCours.event.do', ComingPage)
- history = URL('/ce_internet_prive_ge/operationHisto.builder.do',
- '/ce_internet_prive_ge/operationHisto.event.do', HistoPage)
- transactions = URL('ce_internet_prive_ge/operationEnCoursDetail.builder.do.*',
- 'ce_internet_prive_ge/pageOperationEnCoursDetail.event.do.*',
- 'ce_internet_prive_ge/operationHistoDetail.builder.do.*',
- 'ce_internet_prive_ge/pageOperationHistoDetail.event.do.*',
+ home = URL(r'/ce_internet_prive_ge/accueilInternetGe.builder.do',
+ r'/ce_internet_(prive|corporate)_ti/accueilInternetTi(Corporate)?.builder.do', HomePage)
+ accounts = URL(r'/ce_internet_prive_ge/carteAffaireParc.builder.do',
+ r'/ce_internet_prive_ge/carteAffaireParcChange.event.do',
+ r'/ce_internet_prive_ge/pageParcCarteAffaire.event.do', AccountsPage)
+ coming = URL(r'/ce_internet_prive_ge/operationEnCours.builder.do',
+ r'/ce_internet_prive_ge/operationEnCours.event.do', ComingPage)
+ history = URL(r'/ce_internet_prive_ge/operationHisto.builder.do',
+ r'/ce_internet_prive_ge/operationHisto.event.do', HistoPage)
+ transactions = URL(r'ce_internet_prive_ge/operationEnCoursDetail.builder.do.*',
+ r'ce_internet_prive_ge/pageOperationEnCoursDetail.event.do.*',
+ r'ce_internet_prive_ge/operationHistoDetail.builder.do.*',
+ r'ce_internet_prive_ge/pageOperationHistoDetail.event.do.*',
TransactionsPage)
- ti_card = URL('/ce_internet_prive_ti/operationEnCoursDetail.builder.do',
- '/ce_internet_(prive|corporate)_ti/operation(Corporate)?EnCoursDetail(Afficher|Appliquer)?.event.do.*',
- '/ce_internet_prive_ti/pageOperationEnCoursDetail.event.do.*', TiCardPage)
- ti_corporate_card = URL('/ce_internet_corporate_ti/operationCorporateEnCoursDetail.builder.do', TiCardPage)
- ti_histo = URL('/ce_internet_prive_ti/operationHistoDetail.builder.do',
- '/ce_internet_(prive|corporate)_ti/operation(Corporate)?HistoDetail(Afficher|Appliquer)?.event.do.*',
- '/ce_internet_prive_ti/pageOperationHistoDetail.event.do.*', TiHistoPage)
- ti_corporate_histo = URL('/ce_internet_corporate_ti/operationCorporateHistoDetail.builder.do', TiHistoPage)
+ ti_card = URL(r'/ce_internet_prive_ti/operationEnCoursDetail.builder.do',
+ r'/ce_internet_(prive|corporate)_ti/operation(Corporate)?EnCoursDetail(Afficher|Appliquer)?.event.do.*',
+ r'/ce_internet_prive_ti/pageOperationEnCoursDetail.event.do.*', TiCardPage)
+ ti_corporate_card = URL(r'/ce_internet_corporate_ti/operationCorporateEnCoursDetail.builder.do', TiCardPage)
+ ti_histo = URL(r'/ce_internet_prive_ti/operationHistoDetail.builder.do',
+ r'/ce_internet_(prive|corporate)_ti/operation(Corporate)?HistoDetail(Afficher|Appliquer)?.event.do.*',
+ r'/ce_internet_prive_ti/pageOperationHistoDetail.event.do.*', TiHistoPage)
+ ti_corporate_histo = URL(r'/ce_internet_corporate_ti/operationCorporateHistoDetail.builder.do', TiHistoPage)
TIMEOUT = 60.0
def __init__(self, type, *args, **kwargs):
diff --git a/modules/bnpcards/corporate/browser.py b/modules/bnpcards/corporate/browser.py
index eb9b40057b0c147123f7e953f8a0e5014e008dd0..3ce446433f0ecd6ac07423e5ab6dee6b7e6da3d0 100644
--- a/modules/bnpcards/corporate/browser.py
+++ b/modules/bnpcards/corporate/browser.py
@@ -21,6 +21,7 @@
from weboob.exceptions import BrowserIncorrectPassword, BrowserPasswordExpired
from weboob.browser import LoginBrowser, URL, need_login
from weboob.tools.capabilities.bank.transactions import sorted_transactions
+from weboob.tools.compat import basestring
from .pages import LoginPage, ErrorPage, AccountsPage, TransactionsPage
diff --git a/modules/bnpcards/corporate/pages.py b/modules/bnpcards/corporate/pages.py
index 2c48d9f7826da073a8e8a828dcd29954a0d65d2f..1b1deccd735e124825ccfb2dec976fc2b52d1242 100644
--- a/modules/bnpcards/corporate/pages.py
+++ b/modules/bnpcards/corporate/pages.py
@@ -17,6 +17,8 @@
# You should have received a copy of the GNU Lesser General Public License
# along with this weboob module. If not, see .
+from __future__ import unicode_literals
+
import re
from datetime import date
from dateutil.relativedelta import relativedelta
@@ -60,7 +62,7 @@ class item(ItemElement):
obj_label = CleanText('./td[1]')
obj_type = Account.TYPE_CARD
obj__status = CleanText('./td[5]')
- obj_currency = u'EUR'
+ obj_currency = 'EUR'
obj_url = Link('./td[2]/a')
obj__company = Env('company', default=None) # this field is something used to make the module work, not something meant to be displayed to end users
@@ -145,7 +147,7 @@ def assert_first_page_or_go_there(self):
url = Attr('//table[@id="tgDecorationFoot"]//a[contains(text(), "1")]', 'href', default=None)(self.doc)
if url is None:
# at page=4, there is " ... <2> <3> 4"
- url = Attr(u'//table[@id="tgDecorationFoot"]//a[contains(text(), "Première page")]', 'href')(self.doc)
+ url = Attr('//table[@id="tgDecorationFoot"]//a[contains(text(), "Première page")]', 'href')(self.doc)
self.browser.location(url)
diff --git a/modules/bnpcards/module.py b/modules/bnpcards/module.py
index 45565eba9fb63267559d0a9fa40958aafdbf74ce..0ae65765781122007ebcb9325269471db5ed5042 100644
--- a/modules/bnpcards/module.py
+++ b/modules/bnpcards/module.py
@@ -17,6 +17,7 @@
# You should have received a copy of the GNU Lesser General Public License
# along with this weboob module. If not, see .
+from __future__ import unicode_literals
from weboob.tools.backend import Module, BackendConfig
from weboob.capabilities.bank import CapBank, AccountNotFound
@@ -31,16 +32,24 @@
class BnpcartesentrepriseModule(Module, CapBank):
NAME = 'bnpcards'
- DESCRIPTION = u'BNP Cartes Entreprises'
- MAINTAINER = u'Baptiste Delpey'
+ DESCRIPTION = 'BNP Cartes Entreprises'
+ MAINTAINER = 'Baptiste Delpey'
EMAIL = 'bdelpey@budget-insight.fr'
LICENSE = 'LGPLv3+'
VERSION = '1.6'
- CONFIG = BackendConfig(ValueBackendPassword('login', label='Identifiant', masked=False),
- ValueBackendPassword('password', label='Code personnel'),
- Value('type', label='Profil de connexion', default='1',
- choices={'1': 'Titulaire',
- '2': 'Gestionnaire'}))
+ CONFIG = BackendConfig(
+ ValueBackendPassword('login', label='Identifiant', masked=False),
+ ValueBackendPassword('password', label='Code personnel'),
+ Value(
+ 'type',
+ label='Profil de connexion',
+ default='1',
+ choices={
+ '1': 'Titulaire',
+ '2': 'Gestionnaire',
+ }
+ )
+ )
BROWSER = ProxyBrowser
diff --git a/modules/bnpcards/pages.py b/modules/bnpcards/pages.py
index 4e889f08ab32ea664bbc74570a4ef1f8b06f2b55..f1abcbe0bc5cbf4355cd6abaa2119fc37be1a597 100644
--- a/modules/bnpcards/pages.py
+++ b/modules/bnpcards/pages.py
@@ -17,6 +17,8 @@
# You should have received a copy of the GNU Lesser General Public License
# along with this weboob module. If not, see .
+from __future__ import unicode_literals
+
import re
from datetime import date
from decimal import Decimal
@@ -119,7 +121,7 @@ class item(ItemElement):
obj_type = Account.TYPE_CARD
obj__rib = Env('rib')
obj__company = Env('company', default=None) # this field is something used to make the module work, not something meant to be displayed to end users
- obj_currency = u'EUR'
+ obj_currency = 'EUR'
obj_number = CleanText('./td[2]', replace=[(' ', '')])
obj_url = AbsoluteLink('./td[2]/a')
@@ -203,7 +205,7 @@ class item(ItemElement):
obj_label = Format('%s %s', CleanText('//table[@class="params"]/tr/td[1]/b[2]'), Field('id'))
obj_type = Account.TYPE_CARD
obj__nav_num = Attr('.', 'value')
- obj_currency = u'EUR'
+ obj_currency = 'EUR'
obj__company = Env('company', default=None) # this field is something used to make the module work, not something meant to be displayed to end users
def get_balance(self):
diff --git a/tools/py3-compatible.modules b/tools/py3-compatible.modules
index 598df53ff6b9cd9c10baf0310146a8dd17a8ebd3..8fa88cee942a2288c20553d5227be61bbd52a164 100644
--- a/tools/py3-compatible.modules
+++ b/tools/py3-compatible.modules
@@ -29,6 +29,7 @@ binck
biplan
blablacar
blogspot
+bnpcards
bnporc
bnppere
bolden