From e06a25e079d7ac120d7ff766ef656b2bcff2f922 Mon Sep 17 00:00:00 2001 From: Artur Barseghyan Date: Sun, 15 Feb 2015 01:49:49 +0100 Subject: [PATCH] prepare 0.4.19; replace some code bits related to backwards/forwards compatibility with equivalent code bits from django-nine; better support for feature versions (django 1.9); --- CHANGELOG.rst | 8 ++++++++ setup.py | 3 ++- src/fobi/__init__.py | 4 ++-- src/fobi/base.py | 8 +++++++- src/fobi/compat.py | 41 +---------------------------------------- src/fobi/tests/base.py | 2 ++ 6 files changed, 22 insertions(+), 44 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 3df6c3b3..08f033d0 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -15,6 +15,14 @@ are used for versioning (schema follows below): 0.3.4 to 0.4). - All backwards incompatible changes are mentioned in this document. +0.4.19 +------------------------------------- +2015-02-15 + +- Some more work on future (Django 1.9) compatibility. +- Replace bits of backwards-/forwards- compatibility code with equal code + parts of ``django-nine``. + 0.4.18 ------------------------------------- 2015-02-13 diff --git a/setup.py b/setup.py index ecaf012d..1b569913 100644 --- a/setup.py +++ b/setup.py @@ -63,7 +63,7 @@ for static_dir in static_dirs: for locale_dir in locale_dirs: locale_files += [os.path.join(locale_dir, f) for f in os.listdir(locale_dir)] -version = '0.4.18' +version = '0.4.19' install_requires = [ 'Pillow>=2.0.0', @@ -75,6 +75,7 @@ install_requires = [ 'easy-thumbnails>=1.4,<2.0', 'vishap>=0.1.3,<2.0', 'Unidecode>=0.04.1', + 'django-nine>=0.1.1', #'Django<=1.6.5' ] diff --git a/src/fobi/__init__.py b/src/fobi/__init__.py index 5429c6a4..6ee692e3 100644 --- a/src/fobi/__init__.py +++ b/src/fobi/__init__.py @@ -1,6 +1,6 @@ __title__ = 'django-fobi' -__version__ = '0.4.18' -__build__ = 0x000021 +__version__ = '0.4.19' +__build__ = 0x000022 __author__ = 'Artur Barseghyan ' __copyright__ = 'Copyright (c) 2014-2015 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' diff --git a/src/fobi/base.py b/src/fobi/base.py index cca9e565..5643c451 100644 --- a/src/fobi/base.py +++ b/src/fobi/base.py @@ -45,10 +45,16 @@ from six import with_metaclass from django import forms from django.forms import ModelForm -from django.forms.util import ErrorList from django.http import Http404 from django.utils.translation import ugettext_lazy as _ +from nine.versions import DJANGO_GTE_1_8 + +if DJANGO_GTE_1_8: + from django.forms.utils import ErrorList +else: + from django.forms.util import ErrorList + from fobi.discover import autodiscover from fobi.constants import CALLBACK_STAGES from fobi.settings import ( diff --git a/src/fobi/compat.py b/src/fobi/compat.py index 4eea54d9..1a836dea 100644 --- a/src/fobi/compat.py +++ b/src/fobi/compat.py @@ -4,48 +4,9 @@ __copyright__ = 'Copyright (c) 2013-2015 Artur Barseghyan' __license__ = 'GPL 2.0/LGPL 2.1' __all__ = ('AUTH_USER_MODEL', 'User',) -from distutils.version import LooseVersion -import importlib - -import django from django.conf import settings -DJANGO_1_4 = LooseVersion('1.4') <= LooseVersion(django.get_version()) \ - < LooseVersion('1.5') -DJANGO_1_5 = LooseVersion('1.5') <= LooseVersion(django.get_version()) \ - < LooseVersion('1.6') -DJANGO_1_6 = LooseVersion('1.6') <= LooseVersion(django.get_version()) \ - < LooseVersion('1.7') -DJANGO_1_7 = LooseVersion('1.7') <= LooseVersion(django.get_version()) \ - < LooseVersion('1.8') -DJANGO_1_8 = LooseVersion('1.8') <= LooseVersion(django.get_version()) \ - < LooseVersion('1.9') -DJANGO_1_9 = LooseVersion('1.9') <= LooseVersion(django.get_version()) \ - < LooseVersion('2.0') -DJANGO_2_0 = LooseVersion('2.0') <= LooseVersion(django.get_version()) \ - < LooseVersion('2.1') - -# Cannot use contrib.auth.get_user_model() at compile time. -user_app_name, user_model_name = settings.AUTH_USER_MODEL.rsplit('.', 1) -User = None -if DJANGO_1_6: - for app in settings.INSTALLED_APPS: - if app.endswith(user_app_name): - user_app_models = importlib.import_module(app + ".models") - User = getattr(user_app_models, user_model_name) - break -elif DJANGO_1_7 or DJANGO_1_8 or DJANGO_1_9: - from django.apps import apps - try: - User = apps.get_registered_model(user_app_name, user_model_name) - except KeyError: - pass - -if User is None: - raise ImproperlyConfigured( - "You have defined a custom user model %s, but the app %s is not " - "in settings.INSTALLED_APPS" % (settings.AUTH_USER_MODEL, user_app_name) - ) +from nine.user import User # Sanity checks. Possibly rely on the dynamic username field in future. user = User() diff --git a/src/fobi/tests/base.py b/src/fobi/tests/base.py index f53a006f..364f296f 100644 --- a/src/fobi/tests/base.py +++ b/src/fobi/tests/base.py @@ -1,3 +1,5 @@ +from __future__ import print_function + __title__ = 'fobi.tests.base' __author__ = 'Artur Barseghyan ' __copyright__ = 'Copyright (c) 2014 Artur Barseghyan'