From 62f203f5db9284ce4a419f82927b3f267ea7c33d Mon Sep 17 00:00:00 2001 From: orf Date: Wed, 7 Jun 2017 11:30:59 +0100 Subject: [PATCH] support django 1.11 --- .travis.yml | 32 +++++++++++++++++++++--------- django_babel/extract.py | 10 ++++++++-- django_babel/templatetags/babel.py | 16 +++++++-------- setup.py | 6 ++++-- tox.ini | 5 +++-- 5 files changed, 46 insertions(+), 23 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3ad88ca..c61785d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: python -python: 3.4 +python: 3.5 sudo: false env: - TOX_ENV=docs @@ -7,16 +7,30 @@ env: - TOX_ENV=py27-django18 - TOX_ENV=py27-django19 - TOX_ENV=py27-django110 - - TOX_ENV=py27-djangomaster + - TOX_ENV=py27-django111 - TOX_ENV=py33-django18 - TOX_ENV=py34-django18 - TOX_ENV=py34-django19 - TOX_ENV=py34-django110 + - TOX_ENV=py34-django111 - TOX_ENV=py34-djangomaster -install: -- pip install tox -script: -- tox -e $TOX_ENV -cache: - directories: - - $HOME/.cache/pip + - TOX_ENV=py35-django18 + - TOX_ENV=py35-django19 + - TOX_ENV=py35-django110 + - TOX_ENV=py35-django111 + - TOX_ENV=py35-djangomaster +matrix: + include: + - env: TOX_ENV=py36-django18 + python: "3.6" + - env: TOX_ENV=py36-django19 + python: "3.6" + - env: TOX_ENV=py36-django110 + python: "3.6" + - env: TOX_ENV=py36-django111 + python: "3.6" + - env: TOX_ENV=py36-djangomaster + python: "3.6" +install: pip install tox +script: tox -e $TOX_ENV +cache: pip diff --git a/django_babel/extract.py b/django_babel/extract.py index 3169ffb..edb42c7 100644 --- a/django_babel/extract.py +++ b/django_babel/extract.py @@ -2,8 +2,14 @@ from django.template.base import Lexer, TOKEN_TEXT, TOKEN_VAR, TOKEN_BLOCK from django.utils.translation import trim_whitespace from django.utils.encoding import smart_text -from django.utils.translation.trans_real import ( - inline_re, block_re, endblock_re, plural_re, constant_re) + +try: + from django.utils.translation.trans_real import ( + inline_re, block_re, endblock_re, plural_re, constant_re) +except ImportError: + # Django 1.11+ + from django.utils.translation.template import ( + inline_re, block_re, endblock_re, plural_re, constant_re) def join_tokens(tokens, trim=False): diff --git a/django_babel/templatetags/babel.py b/django_babel/templatetags/babel.py index bda7289..85f5f6e 100644 --- a/django_babel/templatetags/babel.py +++ b/django_babel/templatetags/babel.py @@ -32,41 +32,41 @@ def _get_format(): return babel_support.Format(locale, tzinfo) +@register.filter def datefmt(date=None, format='medium'): return _get_format().date(date, format=format) -datefmt = register.filter(datefmt) +@register.filter def datetimefmt(datetime=None, format='medium'): return _get_format().datetime(datetime, format=format) -datetimefmt = register.filter(datetimefmt) +@register.filter def timefmt(time=None, format='medium'): return _get_format().time(time, format=format) -timefmt = register.filter(timefmt) +@register.filter def numberfmt(number): return _get_format().number(number) -numberfmt = register.filter(numberfmt) +@register.filter def decimalfmt(number, format=None): return _get_format().decimal(number, format=format) -decimalfmt = register.filter(decimalfmt) +@register.filter def currencyfmt(number, currency): return _get_format().currency(number, currency) -currencyfmt = register.filter(currencyfmt) +@register.filter def percentfmt(number, format=None): return _get_format().percent(number, format=format) -percentfmt = register.filter(percentfmt) +@register.filter def scientificfmt(number): return _get_format().scientific(number) -scientificfmt = register.filter(scientificfmt) diff --git a/setup.py b/setup.py index bb94009..3bba4c4 100755 --- a/setup.py +++ b/setup.py @@ -24,7 +24,7 @@ setup( url='https://github.com/python-babel/django-babel/', packages=find_packages(exclude=('tests',)), install_requires=[ - 'django>=1.4,<1.11', + 'django>=1.4,<1.12', 'babel>=1.3', ], classifiers=[ @@ -37,10 +37,12 @@ setup( 'Topic :: Software Development :: Libraries :: Python Modules', 'Framework :: Django', 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.6', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: Implementation :: PyPy', 'Programming Language :: Python :: Implementation :: CPython', ], diff --git a/tox.ini b/tox.ini index 8c45bdb..d45be3d 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = {py27,py34,py35}-django{18,19,110,master}, py33-django18, lint, docs +envlist = py{34,35,36}-djangomaster, py{27,34,35,36}-django{18,19,110,111}, py33-django18, lint, docs [testenv] deps = @@ -11,6 +11,7 @@ deps = django18: Django>=1.8,<1.9 django19: Django>=1.9,<1.10 django110: Django>=1.10,<1.11 + django111: Django>=1.11,<1.12 djangomaster: https://github.com/django/django/archive/master.tar.gz#egg=Django commands = py.test {posargs} @@ -22,5 +23,5 @@ commands = [testenv:lint] deps = - flake8==2.4.1 + flake8==3.3.0 commands=flake8 django_babel tests