first step in python3 support

This commit is contained in:
Romain Bignon 2014-05-17 13:37:47 +02:00
commit 6fcac89dd5
25 changed files with 302 additions and 208 deletions

View file

@ -17,10 +17,13 @@
# You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
from __future__ import absolute_import
from __future__ import absolute_import, print_function
import re
from urlparse import urlparse, urljoin
try:
from urllib.parse import urlparse, urljoin
except ImportError:
from urlparse import urlparse, urljoin
import mimetypes
import os
import tempfile
@ -157,7 +160,7 @@ class BaseBrowser(object):
def _save(self, response, warning=False, **kwargs):
if self.responses_dirname is None:
self.responses_dirname = tempfile.mkdtemp(prefix='weboob_session_')
print >>sys.stderr, 'Debug data will be saved in this directory: %s' % self.responses_dirname
print('Debug data will be saved in this directory: %s' % self.responses_dirname, file=sys.stderr)
elif not os.path.isdir(self.responses_dirname):
os.makedirs(self.responses_dirname)

View file

@ -17,7 +17,10 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
import requests.cookies
import cookielib
try:
import cookielib
except ImportError:
import http.cookiejar as cookielib
__all__ = ['WeboobCookieJar']

View file

@ -26,6 +26,7 @@ import re
import lxml.html as html
from weboob.tools.misc import html2text
from weboob.tools.compat import basestring
from weboob.capabilities.base import empty
@ -258,7 +259,7 @@ class CleanDecimal(CleanText):
if self.replace_dots:
text = text.replace('.','').replace(',','.')
try:
return Decimal(re.sub(ur'[^\d\-\.]', '', text))
return Decimal(re.sub(r'[^\d\-\.]', '', text))
except InvalidOperation as e:
return self.default_or_raise(e)
@ -388,7 +389,7 @@ class DateGuesser(Filter):
class Time(Filter):
klass = datetime.time
regexp = re.compile(ur'(?P<hh>\d+):?(?P<mm>\d+)(:(?P<ss>\d+))?')
regexp = re.compile(r'(?P<hh>\d+):?(?P<mm>\d+)(:(?P<ss>\d+))?')
kwargs = {'hour': 'hh', 'minute': 'mm', 'second': 'ss'}
def __init__(self, selector, default=_NO_DEFAULT):
@ -407,7 +408,7 @@ class Time(Filter):
class Duration(Time):
klass = datetime.timedelta
regexp = re.compile(ur'((?P<hh>\d+)[:;])?(?P<mm>\d+)[;:](?P<ss>\d+)')
regexp = re.compile(r'((?P<hh>\d+)[:;])?(?P<mm>\d+)[;:](?P<ss>\d+)')
kwargs = {'hours': 'hh', 'minutes': 'mm', 'seconds': 'ss'}

View file

@ -19,18 +19,22 @@
from __future__ import absolute_import
from urllib import unquote
try:
from urllib.parse import unquote
except ImportError:
from urllib import unquote
import requests
import re
import sys
from copy import deepcopy
from cStringIO import StringIO
from io import BytesIO
import lxml.html as html
import lxml.etree as etree
from weboob.tools.json import json
from weboob.tools.ordereddict import OrderedDict
from weboob.tools.regex_helper import normalize
from weboob.tools.compat import basestring
from weboob.tools.log import getLogger
@ -527,7 +531,7 @@ class XMLPage(BasePage):
def __init__(self, browser, response, *args, **kwargs):
super(XMLPage, self).__init__(browser, response, *args, **kwargs)
parser = etree.XMLParser(encoding=self.ENCODING or response.encoding)
self.doc = etree.parse(StringIO(response.content), parser)
self.doc = etree.parse(BytesIO(response.content), parser)
class RawPage(BasePage):
@ -551,7 +555,7 @@ class HTMLPage(BasePage):
def __init__(self, browser, response, *args, **kwargs):
super(HTMLPage, self).__init__(browser, response, *args, **kwargs)
parser = html.HTMLParser(encoding=self.ENCODING or response.encoding)
self.doc = html.parse(StringIO(response.content), parser)
self.doc = html.parse(BytesIO(response.content), parser)
def get_form(self, xpath='//form', name=None, nr=None):
"""