Author: Alex
Date: 2011-03-30 10:48:42 -0700 (Wed, 30 Mar 2011)
New Revision: 15958

Modified:
   django/trunk/django/db/models/fields/__init__.py
   django/trunk/django/db/models/fields/subclassing.py
   django/trunk/tests/modeltests/field_subclassing/fields.py
Log:
Removed deprecated legacy connection handling for `Field.get_db_*`.

Modified: django/trunk/django/db/models/fields/__init__.py
===================================================================
--- django/trunk/django/db/models/fields/__init__.py    2011-03-30 17:35:50 UTC 
(rev 15957)
+++ django/trunk/django/db/models/fields/__init__.py    2011-03-30 17:48:42 UTC 
(rev 15958)
@@ -7,7 +7,6 @@
 from itertools import tee
 
 from django.db import connection
-from django.db.models.fields.subclassing import LegacyConnection
 from django.db.models.query_utils import QueryWrapper
 from django.conf import settings
 from django import forms
@@ -46,7 +45,6 @@
 
 class Field(object):
     """Base class for all field types"""
-    __metaclass__ = LegacyConnection
 
     # Designates whether empty strings fundamentally are allowed at the
     # database level.

Modified: django/trunk/django/db/models/fields/subclassing.py
===================================================================
--- django/trunk/django/db/models/fields/subclassing.py 2011-03-30 17:35:50 UTC 
(rev 15957)
+++ django/trunk/django/db/models/fields/subclassing.py 2011-03-30 17:48:42 UTC 
(rev 15958)
@@ -6,73 +6,8 @@
 to_python() and the other necessary methods and everything will work 
seamlessly.
 """
 
-from inspect import getargspec
-from warnings import warn
-
-def call_with_connection(func):
-    arg_names, varargs, varkwargs, defaults = getargspec(func)
-    updated = ('connection' in arg_names or varkwargs)
-    if not updated:
-        warn("A Field class whose %s method hasn't been updated to take a "
-            "`connection` argument." % func.__name__,
-            DeprecationWarning, stacklevel=3)
-
-    def inner(*args, **kwargs):
-        if 'connection' not in kwargs:
-            from django.db import connection
-            kwargs['connection'] = connection
-            warn("%s has been called without providing a connection argument. 
" %
-                func.__name__, DeprecationWarning,
-                stacklevel=2)
-        if updated:
-            return func(*args, **kwargs)
-        if 'connection' in kwargs:
-            del kwargs['connection']
-        return func(*args, **kwargs)
-    return inner
-
-def call_with_connection_and_prepared(func):
-    arg_names, varargs, varkwargs, defaults = getargspec(func)
-    updated = (
-        ('connection' in arg_names or varkwargs) and
-        ('prepared' in arg_names or varkwargs)
-    )
-    if not updated:
-        warn("A Field class whose %s method hasn't been updated to take "
-            "`connection` and `prepared` arguments." % func.__name__,
-            DeprecationWarning, stacklevel=3)
-
-    def inner(*args, **kwargs):
-        if 'connection' not in kwargs:
-            from django.db import connection
-            kwargs['connection'] = connection
-            warn("%s has been called without providing a connection argument. 
" %
-                func.__name__, DeprecationWarning,
-                stacklevel=2)
-        if updated:
-            return func(*args, **kwargs)
-        if 'connection' in kwargs:
-            del kwargs['connection']
-        if 'prepared' in kwargs:
-            del kwargs['prepared']
-        return func(*args, **kwargs)
-    return inner
-
-class LegacyConnection(type):
+class SubfieldBase(type):
     """
-    A metaclass to normalize arguments give to the get_db_prep_* and db_type
-    methods on fields.
-    """
-    def __new__(cls, name, bases, attrs):
-        new_cls = super(LegacyConnection, cls).__new__(cls, name, bases, attrs)
-        for attr in ('db_type', 'get_db_prep_save'):
-            setattr(new_cls, attr, call_with_connection(getattr(new_cls, 
attr)))
-        for attr in ('get_db_prep_lookup', 'get_db_prep_value'):
-            setattr(new_cls, attr, 
call_with_connection_and_prepared(getattr(new_cls, attr)))
-        return new_cls
-
-class SubfieldBase(LegacyConnection):
-    """
     A metaclass for custom Field subclasses. This ensures the model's attribute
     has the descriptor protocol attached to it.
     """

Modified: django/trunk/tests/modeltests/field_subclassing/fields.py
===================================================================
--- django/trunk/tests/modeltests/field_subclassing/fields.py   2011-03-30 
17:35:50 UTC (rev 15957)
+++ django/trunk/tests/modeltests/field_subclassing/fields.py   2011-03-30 
17:48:42 UTC (rev 15958)
@@ -40,7 +40,7 @@
             return value
         return Small(value[0], value[1])
 
-    def get_db_prep_save(self, value):
+    def get_db_prep_save(self, value, connection):
         return unicode(value)
 
     def get_prep_lookup(self, lookup_type, value):
@@ -70,7 +70,7 @@
             value = json.loads(value)
         return value
 
-    def get_db_prep_save(self, value):
+    def get_db_prep_save(self, value, connection):
         if value is None:
             return None
         return json.dumps(value)

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to