summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Meyer <carl@oddbird.net>2014-11-22 22:29:23 -0700
committerCarl Meyer <carl@oddbird.net>2014-11-22 22:29:23 -0700
commitbcb693ebd4d3743cb194c6fd05b2d70fb9696a4c (patch)
treef32e2fd8c6152f9c5ad2b198f18f77b0fdac59c5
parentf36151ed169813f2873e13ca9de616cfa4095321 (diff)
Revert "Fixed #23892 -- Made deconstructible classes forwards compatible"
This reverts commit f36151ed169813f2873e13ca9de616cfa4095321. Adding kwargs to deconstructed objects does not achieve useful forward-compatibility in general, since additional arguments are silently dropped rather than having their intended effect. In fact, it can make the failure more difficult to diagnose. Thanks Shai Berger for discussion.
-rw-r--r--django/contrib/postgres/operations.py4
-rw-r--r--django/contrib/postgres/validators.py2
-rw-r--r--django/core/files/storage.py2
-rw-r--r--django/core/validators.py6
-rw-r--r--django/db/migrations/operations/base.py3
-rw-r--r--django/db/migrations/operations/fields.py8
-rw-r--r--django/db/migrations/operations/models.py16
-rw-r--r--django/db/migrations/operations/special.py6
-rw-r--r--docs/releases/1.7.2.txt4
9 files changed, 22 insertions, 29 deletions
diff --git a/django/contrib/postgres/operations.py b/django/contrib/postgres/operations.py
index 2d22c313b9..e39d63ffa0 100644
--- a/django/contrib/postgres/operations.py
+++ b/django/contrib/postgres/operations.py
@@ -5,7 +5,7 @@ from django.db.migrations.operations.base import Operation
class CreateExtension(Operation):
reversible = True
- def __init__(self, name, **kwargs):
+ def __init__(self, name):
self.name = name
def state_forwards(self, app_label, state):
@@ -23,7 +23,7 @@ class CreateExtension(Operation):
class HStoreExtension(CreateExtension):
- def __init__(self, **kwargs):
+ def __init__(self):
self.name = 'hstore'
def database_forwards(self, app_label, schema_editor, from_state, to_state):
diff --git a/django/contrib/postgres/validators.py b/django/contrib/postgres/validators.py
index 22ac10074f..19d0a69765 100644
--- a/django/contrib/postgres/validators.py
+++ b/django/contrib/postgres/validators.py
@@ -30,7 +30,7 @@ class KeysValidator(object):
}
strict = False
- def __init__(self, keys, strict=False, messages=None, **kwargs):
+ def __init__(self, keys, strict=False, messages=None):
self.keys = set(keys)
self.strict = strict
if messages is not None:
diff --git a/django/core/files/storage.py b/django/core/files/storage.py
index c6146fcdb7..2d7c0c78e9 100644
--- a/django/core/files/storage.py
+++ b/django/core/files/storage.py
@@ -150,7 +150,7 @@ class FileSystemStorage(Storage):
"""
def __init__(self, location=None, base_url=None, file_permissions_mode=None,
- directory_permissions_mode=None, **kwargs):
+ directory_permissions_mode=None):
if location is None:
location = settings.MEDIA_ROOT
self.base_location = location
diff --git a/django/core/validators.py b/django/core/validators.py
index 846efe7ac8..e0fd995227 100644
--- a/django/core/validators.py
+++ b/django/core/validators.py
@@ -23,7 +23,7 @@ class RegexValidator(object):
inverse_match = False
flags = 0
- def __init__(self, regex=None, message=None, code=None, inverse_match=None, flags=None, **kwargs):
+ def __init__(self, regex=None, message=None, code=None, inverse_match=None, flags=None):
if regex is not None:
self.regex = regex
if message is not None:
@@ -134,7 +134,7 @@ class EmailValidator(object):
re.IGNORECASE)
domain_whitelist = ['localhost']
- def __init__(self, message=None, code=None, whitelist=None, **kwargs):
+ def __init__(self, message=None, code=None, whitelist=None):
if message is not None:
self.message = message
if code is not None:
@@ -251,7 +251,7 @@ class BaseValidator(object):
message = _('Ensure this value is %(limit_value)s (it is %(show_value)s).')
code = 'limit_value'
- def __init__(self, limit_value, message=None, **kwargs):
+ def __init__(self, limit_value, message=None):
self.limit_value = limit_value
if message:
self.message = message
diff --git a/django/db/migrations/operations/base.py b/django/db/migrations/operations/base.py
index 167034c8f3..655f03a4c6 100644
--- a/django/db/migrations/operations/base.py
+++ b/django/db/migrations/operations/base.py
@@ -37,9 +37,6 @@ class Operation(object):
self._constructor_args = (args, kwargs)
return self
- def __init__(self, **kwargs):
- pass
-
def deconstruct(self):
"""
Returns a 3-tuple of class import path (or just name if it lives
diff --git a/django/db/migrations/operations/fields.py b/django/db/migrations/operations/fields.py
index 41cae1ea1e..ecfa5d6387 100644
--- a/django/db/migrations/operations/fields.py
+++ b/django/db/migrations/operations/fields.py
@@ -10,7 +10,7 @@ class AddField(Operation):
Adds a field to a model.
"""
- def __init__(self, model_name, name, field, preserve_default=True, **kwargs):
+ def __init__(self, model_name, name, field, preserve_default=True):
self.model_name = model_name
self.name = name
self.field = field
@@ -69,7 +69,7 @@ class RemoveField(Operation):
Removes a field from a model.
"""
- def __init__(self, model_name, name, **kwargs):
+ def __init__(self, model_name, name):
self.model_name = model_name
self.name = name
@@ -113,7 +113,7 @@ class AlterField(Operation):
Alters a field's database column (e.g. null, max_length) to the provided new field
"""
- def __init__(self, model_name, name, field, preserve_default=True, **kwargs):
+ def __init__(self, model_name, name, field, preserve_default=True):
self.model_name = model_name
self.name = name
self.field = field
@@ -177,7 +177,7 @@ class RenameField(Operation):
Renames a field on the model. Might affect db_column too.
"""
- def __init__(self, model_name, old_name, new_name, **kwargs):
+ def __init__(self, model_name, old_name, new_name):
self.model_name = model_name
self.old_name = old_name
self.new_name = new_name
diff --git a/django/db/migrations/operations/models.py b/django/db/migrations/operations/models.py
index 11ac1d9640..8672cf4515 100644
--- a/django/db/migrations/operations/models.py
+++ b/django/db/migrations/operations/models.py
@@ -14,7 +14,7 @@ class CreateModel(Operation):
serialization_expand_args = ['fields', 'options']
- def __init__(self, name, fields, options=None, bases=None, **kwargs):
+ def __init__(self, name, fields, options=None, bases=None):
self.name = name
self.fields = fields
self.options = options or {}
@@ -79,7 +79,7 @@ class DeleteModel(Operation):
Drops a model's table.
"""
- def __init__(self, name, **kwargs):
+ def __init__(self, name):
self.name = name
def deconstruct(self):
@@ -116,7 +116,7 @@ class RenameModel(Operation):
Renames a model.
"""
- def __init__(self, old_name, new_name, **kwargs):
+ def __init__(self, old_name, new_name):
self.old_name = old_name
self.new_name = new_name
@@ -209,7 +209,7 @@ class AlterModelTable(Operation):
Renames a model's table
"""
- def __init__(self, name, table, **kwargs):
+ def __init__(self, name, table):
self.name = name
self.table = table
@@ -260,7 +260,7 @@ class AlterUniqueTogether(Operation):
"""
option_name = "unique_together"
- def __init__(self, name, unique_together, **kwargs):
+ def __init__(self, name, unique_together):
self.name = name
unique_together = normalize_together(unique_together)
self.unique_together = set(tuple(cons) for cons in unique_together)
@@ -305,7 +305,7 @@ class AlterIndexTogether(Operation):
"""
option_name = "index_together"
- def __init__(self, name, index_together, **kwargs):
+ def __init__(self, name, index_together):
self.name = name
index_together = normalize_together(index_together)
self.index_together = set(tuple(cons) for cons in index_together)
@@ -348,7 +348,7 @@ class AlterOrderWithRespectTo(Operation):
Represents a change with the order_with_respect_to option.
"""
- def __init__(self, name, order_with_respect_to, **kwargs):
+ def __init__(self, name, order_with_respect_to):
self.name = name
self.order_with_respect_to = order_with_respect_to
@@ -407,7 +407,7 @@ class AlterModelOptions(Operation):
"verbose_name_plural",
]
- def __init__(self, name, options, **kwargs):
+ def __init__(self, name, options):
self.name = name
self.options = options
diff --git a/django/db/migrations/operations/special.py b/django/db/migrations/operations/special.py
index 3aa7b8678e..c5181dd294 100644
--- a/django/db/migrations/operations/special.py
+++ b/django/db/migrations/operations/special.py
@@ -11,7 +11,7 @@ class SeparateDatabaseAndState(Operation):
that affect the state or not the database, or so on.
"""
- def __init__(self, database_operations=None, state_operations=None, **kwargs):
+ def __init__(self, database_operations=None, state_operations=None):
self.database_operations = database_operations or []
self.state_operations = state_operations or []
@@ -62,7 +62,7 @@ class RunSQL(Operation):
by this SQL change, in case it's custom column/table creation/deletion.
"""
- def __init__(self, sql, reverse_sql=None, state_operations=None, **kwargs):
+ def __init__(self, sql, reverse_sql=None, state_operations=None):
self.sql = sql
self.reverse_sql = reverse_sql
self.state_operations = state_operations or []
@@ -122,7 +122,7 @@ class RunPython(Operation):
reduces_to_sql = False
- def __init__(self, code, reverse_code=None, atomic=True, **kwargs):
+ def __init__(self, code, reverse_code=None, atomic=True):
self.atomic = atomic
# Forwards code
if not callable(code):
diff --git a/docs/releases/1.7.2.txt b/docs/releases/1.7.2.txt
index 18330dd16c..c9f69fe856 100644
--- a/docs/releases/1.7.2.txt
+++ b/docs/releases/1.7.2.txt
@@ -77,7 +77,3 @@ Bugfixes
* Fixed a crash in migrations when deleting a field that is part of a
``index/unique_together`` constraint (:ticket:`23794`).
-
-* Made the initializers of deconstructible classes, such as migration
- operations and validators, accept kwargs for forwards compatibility
- (:ticket:`23892`).