1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173
|
Description: Numerous fixes to provide Python3 support
This patch provides Python 3 compat.
Author: Thomas Goirand <zigo@debian.org>
Forwarded: no
Last-Update: 2014-08-12
--- python-coffin-0.3.8.orig/tests/test_defaultfilters.py
+++ python-coffin-0.3.8/tests/test_defaultfilters.py
@@ -72,8 +72,8 @@ def test_floatformat():
def test_date_stuff():
from coffin.common import env
- assert r('a{{ d|date("Y") }}b', {'d': date(2007, 01, 01)}) == 'a2007b'
- assert r('a{{ d|time("H") }}b', {'d': datetime(2007, 01, 01, 12, 01, 01)}) == 'a12b'
+ assert r('a{{ d|date("Y") }}b', {'d': date(2007, 1, 1)}) == 'a2007b'
+ assert r('a{{ d|time("H") }}b', {'d': datetime(2007, 1, 1, 12, 1, 1)}) == 'a12b'
# TODO: timesince, timeuntil
# Make sure the date filters can handle unset values gracefully.
--- python-coffin-0.3.8.orig/tests/test_defaultags.py
+++ python-coffin-0.3.8/tests/test_defaultags.py
@@ -70,14 +70,14 @@ def test_url():
('{% url urls_app.views.index as url %}{{url}}', {}, '/url_test/'),
('{% url inexistent as url %}{{ url }}', {}, ''), # no exception
):
- print template, '==', expected_result
+ print(template, '==', expected_result)
try:
actual_result = env.from_string(template).render(context)
- except Exception, e:
- print '==> %s: (%s)' % (type(e), e)
+ except Exception as e:
+ print('==> %s: (%s)' % (type(e), e))
assert type(e) == expected_result
else:
- print '==> %s' % actual_result
+ print('==> %s' % actual_result)
assert actual_result == expected_result
--- python-coffin-0.3.8.orig/coffin/contrib/auth/views.py
+++ python-coffin-0.3.8/coffin/contrib/auth/views.py
@@ -8,14 +8,14 @@ from django.contrib.auth.views import *
from coffin.shortcuts import render_to_response
from coffin.template import RequestContext, loader
-exec inspect.getsource(logout)
-exec inspect.getsource(password_change_done)
-exec inspect.getsource(password_reset)
-exec inspect.getsource(password_reset_confirm)
-exec inspect.getsource(password_reset_done)
-exec inspect.getsource(password_reset_complete)
+exec(inspect.getsource(logout))
+exec(inspect.getsource(password_change_done))
+exec(inspect.getsource(password_reset))
+exec(inspect.getsource(password_reset_confirm))
+exec(inspect.getsource(password_reset_done))
+exec(inspect.getsource(password_reset_complete))
-exec inspect.getsource(password_change.view_func)
+exec(inspect.getsource(password_change.view_func))
password_change = login_required(password_change)
# XXX: this function uses a decorator, which calls functools.wraps, which compiles the code
--- python-coffin-0.3.8.orig/coffin/contrib/auth/urls.py
+++ python-coffin-0.3.8/coffin/contrib/auth/urls.py
@@ -2,5 +2,5 @@ import inspect
from django.contrib.auth import urls
-exec inspect.getsource(urlpatterns)\
- .replace('django.contrib.auth.views', 'coffin.contrib.auth.views')
\ No newline at end of file
+exec(inspect.getsource(urlpatterns)\
+ .replace('django.contrib.auth.views', 'coffin.contrib.auth.views'))
\ No newline at end of file
--- python-coffin-0.3.8.orig/coffin/contrib/flatpages/middleware.py
+++ python-coffin-0.3.8/coffin/contrib/flatpages/middleware.py
@@ -3,4 +3,5 @@ import inspect
from django.contrib.flatpages.middleware import *
from coffin.contrib.flatpages.views import flatpage
-exec inspect.getsource(FlatpageFallbackMiddleware)\
+exec(inspect.getsource(FlatpageFallbackMiddleware)\
+)
\ No newline at end of file
--- python-coffin-0.3.8.orig/coffin/template/defaultfilters.py
+++ python-coffin-0.3.8/coffin/template/defaultfilters.py
@@ -12,6 +12,8 @@ from jinja2.runtime import Undefined
# from jinja2 import Markup
from jinja2 import filters
+import six
+
register = Library()
def url(view_name, *args, **kwargs):
@@ -26,14 +28,14 @@ register.object(url)
@register.jinja2_filter(jinja2_only=True)
def timesince(value, *arg):
if value is None or isinstance(value, Undefined):
- return u''
+ return six.u('')
from django.utils.timesince import timesince
return timesince(value, *arg)
@register.jinja2_filter(jinja2_only=True)
def timeuntil(value, *args):
if value is None or isinstance(value, Undefined):
- return u''
+ return six.u('')
from django.utils.timesince import timeuntil
return timeuntil(value, *args)
@@ -41,7 +43,7 @@ def timeuntil(value, *args):
def date(value, arg=None):
"""Formats a date according to the given format."""
if value is None or isinstance(value, Undefined):
- return u''
+ return six.u('')
from django.conf import settings
from django.utils import formats
from django.utils.dateformat import format
@@ -59,7 +61,7 @@ def date(value, arg=None):
def time(value, arg=None):
"""Formats a time according to the given format."""
if value is None or isinstance(value, Undefined):
- return u''
+ return six.u('')
from django.conf import settings
from django.utils import formats
from django.utils.dateformat import time_format
@@ -122,7 +124,7 @@ def floatformat(value, arg=-1):
return result
@register.jinja2_filter(jinja2_only=True)
-def default(value, default_value=u'', boolean=True):
+def default(value, default_value=six.u(''), boolean=True):
"""Make the default filter, if used without arguments, behave like
Django's own version.
"""
--- python-coffin-0.3.8.orig/coffin/template/defaulttags.py
+++ python-coffin-0.3.8/coffin/template/defaulttags.py
@@ -1,10 +1,11 @@
-from jinja2 import nodes
+from jinja2 import nodes
from jinja2.ext import Extension
from jinja2.exceptions import TemplateSyntaxError
from jinja2 import Markup
from django.conf import settings
from coffin.template import Library
+import six
class LoadExtension(Extension):
"""The load-tag is a no-op in Coffin. Instead, all template libraries
@@ -337,7 +338,7 @@ class CacheExtension(Extension):
raise TemplateSyntaxError('"%s" tag got a non-integer timeout '
'value: %r' % (list(self.tags)[0], expire_time), lineno)
- args_string = u':'.join([urlquote(v) for v in vary_on])
+ args_string = six.u(':').join([urlquote(v) for v in vary_on])
args_md5 = md5_constructor(args_string)
cache_key = 'template.cache.%s.%s' % (fragm_name, args_md5.hexdigest())
value = cache.get(cache_key)
--- python-coffin-0.3.8.orig/coffin/views/generic/simple.py
+++ python-coffin-0.3.8/coffin/views/generic/simple.py
@@ -3,4 +3,4 @@ import inspect
from django.views.generic.simple import *
from coffin.template import loader, RequestContext
-exec inspect.getsource(direct_to_template)
+exec(inspect.getsource(direct_to_template))
|