diff options
| author | Sebastian Thiel <byronimo@gmail.com> | 2014-11-14 12:45:19 +0100 |
|---|---|---|
| committer | Sebastian Thiel <byronimo@gmail.com> | 2014-11-14 12:45:19 +0100 |
| commit | 2f2fe4eea8ba4f47e63a7392a1f27f74f5ee925d (patch) | |
| tree | 176a493d114fab7cc6e930bf318b2339db386cf5 /gitdb/utils/compat.py | |
| parent | 81707c606b88e971cc359e3e9f3abeeea2204860 (diff) | |
| parent | 0dcec5a27b341ce58e5ab169f91aa25b2cafec0c (diff) | |
| download | gitdb-0.6.0.tar.gz | |
Merge branch 'py2n3'0.6.0
* python 3 compatibility
* all tests work in py2.6, 2.7, 3.3, 3.4
Diffstat (limited to 'gitdb/utils/compat.py')
| -rw-r--r-- | gitdb/utils/compat.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/gitdb/utils/compat.py b/gitdb/utils/compat.py new file mode 100644 index 0000000..a2640fd --- /dev/null +++ b/gitdb/utils/compat.py @@ -0,0 +1,35 @@ +import sys + +PY3 = sys.version_info[0] == 3 + +try: + from itertools import izip + xrange = xrange +except ImportError: + # py3 + izip = zip + xrange = range +# end handle python version + +try: + # Python 2 + buffer = buffer + memoryview = buffer +except NameError: + # Python 3 has no `buffer`; only `memoryview` + # However, it's faster to just slice the object directly, maybe it keeps a view internally + def buffer(obj, offset, size=None): + if size is None: + # return memoryview(obj)[offset:] + return obj[offset:] + else: + # return memoryview(obj)[offset:offset+size] + return obj[offset:offset+size] + # end buffer reimplementation + + memoryview = memoryview + +try: + MAXSIZE = sys.maxint +except AttributeError: + MAXSIZE = sys.maxsize |
