Compat 兼容性

提供Python 2和3兼容的数据结构、库和函数。

pydu.compat.PY2

判断当前Python解释器是Python 2还是3。

pydu.compat.urlib(base, url, allow_fragments=True)

在PY2中是 urlparse.urljoin,在PY3中是 urllib.parse.urljoin

pydu.compat.urlparse(base, url, allow_fragments=True)

在PY2中是 urlparse.urljoin,在PY3中是 urllib.parse.urljoin

pydu.compat.urljoin(base, url, allow_fragments=True)

在PY2中是 urlparse.urljoin,在PY3中是 urllib.parse.urljoin

pydu.compat.iterkeys(d)

返回字典键的iter对象。

pydu.compat.itervalues(d)

返回字典值的iter对象。

pydu.compat.iteritems(d)

返回字典键值对的iter对象。

pydu.compat.text_type

text类型在PY2中是 unicode,在PY3中是 str

pydu.compat.string_types

string类型在PY2中是 (str, unicode),在PY3中是 (str,)

pydu.compat.strbytes_types

strbytes(string bytes)类型在PY2中是 (str, unicode, bytes),在PY3中是 (str, bytes)

pydu.compat.numeric_types

在PY2中是 (int, long),在PY3中是 (int,)

pydu.compat.imap(function, sequence, *sequence_1)

在PY2中是 itertools.imap,在PY3中是 map

pydu.compat.reduce(function, sequence, initial=None)

在PY2中是内建 reduce,在PY3中是 functools.reduce

pydu.compat.cmp(x, y)

Same to cmp on PY2, but implement on PY3.

pydu.compat.has_next_attr(x)

检查是否是可迭代的。

pydu.compat.is_iterable(x)

检查是否是可迭代的。

>>> from pydu.compat import is_iterable
>>> is_iterable([])
True
>>> is_iterable(1)
False