first step in python3 support
This commit is contained in:
parent
7c1e08eb96
commit
6fcac89dd5
25 changed files with 302 additions and 208 deletions
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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']
|
||||
|
|
|
|||
|
|
@ -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'}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
"""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue