Move 3k compat stuff to own module

This commit is contained in:
Markus Unterwaditzer 2014-06-11 19:37:21 +02:00
parent 4921d25e18
commit 179d9bc393
11 changed files with 47 additions and 33 deletions

View file

@ -10,7 +10,7 @@
''' '''
import vdirsyncer.log import vdirsyncer.log
from vdirsyncer.utils import text_type from vdirsyncer.utils.compat import text_type
from vdirsyncer.utils.vobject import normalize_item as _normalize_item from vdirsyncer.utils.vobject import normalize_item as _normalize_item
vdirsyncer.log.set_level(vdirsyncer.log.logging.DEBUG) vdirsyncer.log.set_level(vdirsyncer.log.logging.DEBUG)

View file

@ -13,7 +13,7 @@ import pytest
from .. import assert_item_equals, SIMPLE_TEMPLATE from .. import assert_item_equals, SIMPLE_TEMPLATE
import vdirsyncer.exceptions as exceptions import vdirsyncer.exceptions as exceptions
from vdirsyncer.storage.base import Item from vdirsyncer.storage.base import Item
from vdirsyncer.utils import text_type, iteritems from vdirsyncer.utils.compat import text_type, iteritems
class StorageTests(object): class StorageTests(object):

View file

@ -10,6 +10,7 @@
from .. import exceptions from .. import exceptions
from .. import utils from .. import utils
from ..utils.compat import text_type
class Item(object): class Item(object):
@ -33,7 +34,7 @@ class Item(object):
This is either the UID or the hash of the item's content.''' This is either the UID or the hash of the item's content.'''
def __init__(self, raw): def __init__(self, raw):
assert isinstance(raw, utils.text_type) assert isinstance(raw, text_type)
for line in raw.splitlines(): for line in raw.splitlines():
if line.startswith(u'UID:'): if line.startswith(u'UID:'):

View file

@ -290,10 +290,10 @@ class DavStorage(Storage):
raise ValueError(href) raise ValueError(href)
x = utils.urlparse.urljoin(self.session.url, href) x = utils.urlparse.urljoin(self.session.url, href)
assert x.startswith(self.session.url) assert x.startswith(self.session.url)
return utils.urlunquote_plus(utils.urlparse.urlsplit(x).path) return utils.compat.urlunquote_plus(utils.urlparse.urlsplit(x).path)
def _get_href(self, item): def _get_href(self, item):
href = utils.urlunquote_plus(item.ident) + self.fileext href = utils.compat.urlunquote_plus(item.ident) + self.fileext
return self._normalize_href(href) return self._normalize_href(href)
def get(self, href): def get(self, href):

View file

@ -12,8 +12,8 @@ import os
from .base import Item, Storage from .base import Item, Storage
import vdirsyncer.exceptions as exceptions import vdirsyncer.exceptions as exceptions
import vdirsyncer.log as log import vdirsyncer.log as log
from vdirsyncer.utils import expand_path, text_type, safe_write, \ from ..utils import expand_path, safe_write, get_etag_from_file, checkdir
get_etag_from_file, checkdir from ..utils.compat import text_type
logger = log.get(__name__) logger = log.get(__name__)

View file

@ -8,7 +8,8 @@
''' '''
from .base import Item, Storage from .base import Item, Storage
from ..utils import expand_path, get_password, request, text_type, urlparse from ..utils import expand_path, get_password, request
from ..utils.compat import text_type, urlparse
from ..utils.vobject import split_collection from ..utils.vobject import split_collection
from ..exceptions import NotFoundError from ..exceptions import NotFoundError

View file

@ -12,8 +12,9 @@ import collections
from .base import Item, Storage from .base import Item, Storage
import vdirsyncer.exceptions as exceptions import vdirsyncer.exceptions as exceptions
import vdirsyncer.log as log import vdirsyncer.log as log
from vdirsyncer.utils import expand_path, safe_write, itervalues, checkfile from ..utils import expand_path, safe_write, checkfile
from vdirsyncer.utils.vobject import split_collection, join_collection from ..utils.compat import itervalues
from ..utils.vobject import split_collection, join_collection
logger = log.get(__name__) logger = log.get(__name__)

View file

@ -18,7 +18,7 @@
import itertools import itertools
from . import exceptions, log from . import exceptions, log
from .utils import iteritems, text_type from .utils.compat import iteritems, text_type
sync_logger = log.get(__name__) sync_logger = log.get(__name__)

View file

@ -8,35 +8,15 @@
''' '''
import os import os
import sys
import requests import requests
from .. import log, exceptions from .. import log, exceptions
from .compat import urlparse
logger = log.get(__name__) logger = log.get(__name__)
PY2 = sys.version_info[0] == 2
if PY2:
import urlparse
from urllib import \
quote_plus as urlquote_plus, \
unquote_plus as urlunquote_plus
text_type = unicode # flake8: noqa
iteritems = lambda x: x.iteritems()
itervalues = lambda x: x.itervalues()
else:
import urllib.parse as urlparse
urlquote_plus = urlparse.quote_plus
urlunquote_plus = urlparse.unquote_plus
text_type = str
iteritems = lambda x: x.items()
itervalues = lambda x: x.values()
try: try:
import keyring import keyring
except ImportError: except ImportError:
@ -284,6 +264,7 @@ def get_class_init_args(cls):
return all | s_all, required | s_required return all | s_all, required | s_required
def checkdir(path, create=False): def checkdir(path, create=False):
if not os.path.isdir(path): if not os.path.isdir(path):
if os.path.exists(path): if os.path.exists(path):
@ -296,6 +277,7 @@ def checkdir(path, create=False):
'create it, or create it ' 'create it, or create it '
'yourself.'.format(path)) 'yourself.'.format(path))
def checkfile(path, create=False): def checkfile(path, create=False):
checkdir(os.path.dirname(path), create=create) checkdir(os.path.dirname(path), create=create)
if not os.path.isfile(path): if not os.path.isfile(path):

View file

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
'''
vdirsyncer.utils.compat
~~~~~~~~~~~~~~~~~~~~~~~
:copyright: (c) 2014 Markus Unterwaditzer & contributors
:license: MIT, see LICENSE for more details.
'''
import sys
PY2 = sys.version_info[0] == 2
if PY2:
import urlparse
from urllib import \
quote_plus as urlquote_plus, \
unquote_plus as urlunquote_plus
text_type = unicode # flake8: noqa
iteritems = lambda x: x.iteritems()
itervalues = lambda x: x.itervalues()
else:
import urllib.parse as urlparse
urlquote_plus = urlparse.quote_plus
urlunquote_plus = urlparse.unquote_plus
text_type = str
iteritems = lambda x: x.items()
itervalues = lambda x: x.values()

View file

@ -12,7 +12,7 @@ import icalendar.cal
import icalendar.parser import icalendar.parser
import icalendar.caselessdict import icalendar.caselessdict
from . import text_type, itervalues from .compat import text_type, itervalues
def _process_properties(*s): def _process_properties(*s):