From 8642b7b44aa68cb0355ac5a7b8ee5db27d9a993b Mon Sep 17 00:00:00 2001 From: Nick Sergeant Date: Fri, 13 Nov 2015 15:48:57 -0500 Subject: [PATCH] Python 3 support. --- requirements.txt | 2 +- settings.py | 5 ++++- snipts/api.py | 6 +++--- snipts/models.py | 6 +++--- snipts/templatetags/snipt_tags.py | 2 +- teams/views.py | 2 +- views.py | 5 +++-- 7 files changed, 16 insertions(+), 12 deletions(-) diff --git a/requirements.txt b/requirements.txt index f440fab..305a8aa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,7 +10,7 @@ django-debug-toolbar==1.3.2 django-extensions==1.5.7 django-haystack==2.4.0 django-markdown-deux==1.0.5 -django-pagination==1.0.7 +django-pagination-py3==1.1.0 django-registration-redux==1.2 django-storages==1.1.8 django-taggit==0.16.2 diff --git a/settings.py b/settings.py index d5c3eaa..6b6eea5 100644 --- a/settings.py +++ b/settings.py @@ -1,7 +1,10 @@ import dj_database_url import os -from urlparse import urlparse +try: + from urlparse import urlparse +except ImportError: + from urllib import parse as urlparse if 'DATABASE_URL' in os.environ: diff --git a/snipts/api.py b/snipts/api.py index 2013890..505af73 100644 --- a/snipts/api.py +++ b/snipts/api.py @@ -191,7 +191,7 @@ class PublicUserResource(ModelResource): def dehydrate(self, bundle): bundle.data['snipts'] = '/api/public/snipt/?user=%d' % bundle.obj.id bundle.data['email_md5'] = hashlib \ - .md5(bundle.obj.email.lower()) \ + .md5(bundle.obj.email.lower().encode('utf-8')) \ .hexdigest() bundle.data['snipts_count'] = Snipt.objects.filter(user=bundle.obj.id, public=True).count() @@ -333,7 +333,7 @@ class PrivateUserResource(ModelResource): def dehydrate(self, bundle): bundle.data['email_md5'] = hashlib \ - .md5(bundle.obj.email.lower()) \ + .md5(bundle.obj.email.lower().encode('utf-8')) \ .hexdigest() bundle.data['has_pro'] = bundle.obj.profile.has_pro bundle.data['stats'] = { @@ -452,7 +452,7 @@ class PrivateSniptResource(ModelResource): bundle.data['modified'] = None bundle.data['user'] = user - if type(bundle.data['tags']) in (str, unicode): + if type(bundle.data['tags']) == str: bundle.data['tags_list'] = bundle.data['tags'] else: bundle.data['tags_list'] = '' diff --git a/snipts/models.py b/snipts/models.py index 4c911d5..531473c 100644 --- a/snipts/models.py +++ b/snipts/models.py @@ -71,9 +71,9 @@ class Snipt(models.Model): self.slug = slugify_uniquely(self.title, Snipt) if not self.key: - self.key = hashlib.md5(self.slug + - str(datetime.datetime.now()) + - str(random.random())).hexdigest() + self.key = hashlib.md5((self.slug + + str(datetime.datetime.now()) + + str(random.random())).encode('utf-8')).hexdigest() if self.lexer == 'markdown': self.stylized = markdown(self.code, 'default') diff --git a/snipts/templatetags/snipt_tags.py b/snipts/templatetags/snipt_tags.py index fab326a..120baff 100644 --- a/snipts/templatetags/snipt_tags.py +++ b/snipts/templatetags/snipt_tags.py @@ -60,7 +60,7 @@ def generate_line_numbers(context, line_numbers): @register.filter def md5(string): - return hashlib.md5(string.lower()).hexdigest() + return hashlib.md5(string.lower().encode('utf-8')).hexdigest() @register.filter diff --git a/teams/views.py b/teams/views.py index 00d10c8..5bf49e6 100644 --- a/teams/views.py +++ b/teams/views.py @@ -36,7 +36,7 @@ def for_teams_complete(request): customer = stripe.Customer.create(card=token, plan=plan, email=request.user.email) - except stripe.CardError, e: + except stripe.CardError as e: error_message = e.json_body['error']['message'] return HttpResponseRedirect('/for-teams/?declined=%s' % error_message or diff --git a/views.py b/views.py index 70b93ea..a539ae4 100644 --- a/views.py +++ b/views.py @@ -36,7 +36,8 @@ def homepage(request): user=user, public=True).values('pk').count() if public_snipts_count: - user.email_md5 = hashlib.md5(user.email.lower()).hexdigest() + user.email_md5 = hashlib.md5(user.email.lower().encode('utf-8')) \ + .hexdigest() coders.append(user) if len(coders) == 35: @@ -107,7 +108,7 @@ def pro_complete(request): customer = stripe.Customer.create(card=token, plan=plan, email=request.user.email) - except stripe.CardError, e: + except stripe.CardError as e: error_message = e.json_body['error']['message'] return HttpResponseRedirect('/pro/?declined=%s' % error_message or 'Your card was declined.')