40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
from __future__ import unicode_literals
|
|
import warnings
|
|
|
|
from django.core.compat_checks import django_1_6_0
|
|
|
|
|
|
COMPAT_CHECKS = [
|
|
# Add new modules at the top, so we keep things in descending order.
|
|
# After two-three minor releases, old versions should get dropped.
|
|
django_1_6_0,
|
|
]
|
|
|
|
|
|
def check_compatibility():
|
|
"""
|
|
Runs through compatibility checks to warn the user with an existing install
|
|
about changes in an up-to-date Django.
|
|
|
|
Modules should be located in ``django.core.compat_checks`` (typically one
|
|
per release of Django) & must have a ``run_checks`` function that runs
|
|
all the checks.
|
|
|
|
Returns a list of informational messages about incompatibilities.
|
|
"""
|
|
messages = []
|
|
|
|
for check_module in COMPAT_CHECKS:
|
|
check = getattr(check_module, 'run_checks', None)
|
|
|
|
if check is None:
|
|
warnings.warn(
|
|
"The '%s' module lacks a " % check_module.__name__ +
|
|
"'run_checks' method, which is needed to verify compatibility."
|
|
)
|
|
continue
|
|
|
|
messages.extend(check())
|
|
|
|
return messages
|