Skip to content

Commit

Permalink
Merge pull request #40 from mjmaenpaa/py3
Browse files Browse the repository at this point in the history
Python3 compatibility
  • Loading branch information
Gauvain Pocentek committed Oct 24, 2014
2 parents 221f418 + 431e4bd commit 1eccc3b
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 8 deletions.
2 changes: 2 additions & 0 deletions gitlab
Expand Up @@ -16,6 +16,8 @@
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

from __future__ import print_function, division, absolute_import

import os
import sys
import re
Expand Down
20 changes: 13 additions & 7 deletions gitlab.py
Expand Up @@ -15,6 +15,10 @@
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

from __future__ import print_function, division, absolute_import

import six

import json
import requests
import sys
Expand Down Expand Up @@ -292,7 +296,7 @@ def create(self, obj):

url = self.constructUrl(id_=None, obj=obj, parameters=obj.__dict__)

for k, v in obj.__dict__.items():
for k, v in list(obj.__dict__.items()):
if type(v) == bool:
obj.__dict__[k] = 1 if v else 0

Expand All @@ -317,12 +321,12 @@ def update(self, obj):

# build a dict of data that can really be sent to server
d = {}
for k, v in obj.__dict__.items():
for k, v in list(obj.__dict__.items()):
if type(v) in (int, str):
d[k] = str(v)
elif type(v) == bool:
d[k] = 1 if v else 0
elif type(v) == unicode:
elif six.PY2 and type(v) == six.text_type:
d[k] = str(v.encode(self.gitlab_encoding, "replace"))

try:
Expand Down Expand Up @@ -473,7 +477,7 @@ def _get_display_encoding():


def _sanitize(value):
if type(value) in (str, unicode):
if isinstance(value, six.string_types):
return value.replace('/', '%2F')
return value

Expand Down Expand Up @@ -573,7 +577,8 @@ def delete(self):
def __init__(self, gl, data=None, **kwargs):
self.gitlab = gl

if data is None or type(data) in [int, str, unicode]:
if data is None or isinstance(data, six.integer_types) or\
isinstance(data, six.string_types):
data = self.gitlab.get(self.__class__, data, **kwargs)

self._setFromDict(data)
Expand Down Expand Up @@ -609,7 +614,7 @@ def _obj_to_str(obj):
elif isinstance(obj, list):
s = ", ".join([GitlabObject._obj_to_str(x) for x in obj])
return "[ %s ]" % s
elif isinstance(obj, unicode):
elif six.PY2 and isinstance(obj, six.text_type):
return obj.encode(_get_display_encoding(), "replace")
else:
return str(obj)
Expand All @@ -622,7 +627,8 @@ def pretty_print(self, depth=0):
continue
v = self.__dict__[k]
pretty_k = k.replace('_', '-')
pretty_k = pretty_k.encode(_get_display_encoding(), "replace")
if six.PY2:
pretty_k = pretty_k.encode(_get_display_encoding(), "replace")
if isinstance(v, GitlabObject):
if depth == 0:
print("%s:" % pretty_k)
Expand Down
1 change: 1 addition & 0 deletions requirements.txt
@@ -1 +1,2 @@
requests>1.0
six
2 changes: 1 addition & 1 deletion setup.py
Expand Up @@ -22,7 +22,7 @@ def get_version():
url='https://github.com/gpocentek/python-gitlab',
py_modules=['gitlab'],
scripts=['gitlab'],
install_requires=['requests'],
install_requires=['requests', 'six'],
classifiers=[
'Development Status :: 5 - Production/Stable',
'Environment :: Console',
Expand Down

0 comments on commit 1eccc3b

Please sign in to comment.