summaryrefslogtreecommitdiff
path: root/django/db
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2016-03-28 18:33:29 -0400
committerTim Graham <timograham@gmail.com>2016-04-08 09:51:06 -0400
commitdf8d8d4292684d6ffa7474f1e201aed486f02b53 (patch)
treec661bf9b33de5288afe4f63347a2a9c768ef98eb /django/db
parent2956e2f5e3f63d279f5dae2a995265364d3e6db1 (diff)
Fixed E128 flake8 warnings in django/.
Diffstat (limited to 'django/db')
-rw-r--r--django/db/backends/base/introspection.py3
-rw-r--r--django/db/backends/mysql/base.py28
-rw-r--r--django/db/backends/mysql/operations.py3
-rw-r--r--django/db/backends/oracle/base.py6
-rw-r--r--django/db/backends/oracle/operations.py3
-rw-r--r--django/db/backends/postgresql/operations.py8
-rw-r--r--django/db/backends/sqlite3/base.py26
-rw-r--r--django/db/backends/utils.py12
-rw-r--r--django/db/models/base.py20
-rw-r--r--django/db/models/deletion.py7
-rw-r--r--django/db/models/fields/__init__.py41
-rw-r--r--django/db/models/fields/files.py3
-rw-r--r--django/db/models/fields/related.py43
-rw-r--r--django/db/models/fields/related_descriptors.py44
-rw-r--r--django/db/models/fields/reverse_related.py13
-rw-r--r--django/db/models/options.py27
-rw-r--r--django/db/models/query.py32
-rw-r--r--django/db/models/sql/compiler.py5
-rw-r--r--django/db/models/sql/query.py3
-rw-r--r--django/db/models/sql/subqueries.py3
20 files changed, 178 insertions, 152 deletions
diff --git a/django/db/backends/base/introspection.py b/django/db/backends/base/introspection.py
index 7f3c7aca59..b3eec72469 100644
--- a/django/db/backends/base/introspection.py
+++ b/django/db/backends/base/introspection.py
@@ -6,8 +6,7 @@ from django.utils import six
TableInfo = namedtuple('TableInfo', ['name', 'type'])
# Structure returned by the DB-API cursor.description interface (PEP 249)
-FieldInfo = namedtuple('FieldInfo',
- 'name type_code display_size internal_size precision scale null_ok')
+FieldInfo = namedtuple('FieldInfo', 'name type_code display_size internal_size precision scale null_ok')
class BaseDatabaseIntrospection(object):
diff --git a/django/db/backends/mysql/base.py b/django/db/backends/mysql/base.py
index f674232ab3..761e5faaff 100644
--- a/django/db/backends/mysql/base.py
+++ b/django/db/backends/mysql/base.py
@@ -43,8 +43,8 @@ from .validation import DatabaseValidation # isort:skip
# lexicographic ordering in this check because then (1, 2, 1, 'gamma')
# inadvertently passes the version test.
version = Database.version_info
-if (version < (1, 2, 1) or (version[:3] == (1, 2, 1) and
- (len(version) < 5 or version[3] != 'final' or version[4] < 2))):
+if (version < (1, 2, 1) or (
+ version[:3] == (1, 2, 1) and (len(version) < 5 or version[3] != 'final' or version[4] < 2))):
from django.core.exceptions import ImproperlyConfigured
raise ImproperlyConfigured("MySQLdb-1.2.1p2 or newer is required; you have %s" % Database.__version__)
@@ -334,19 +334,27 @@ class DatabaseWrapper(BaseDatabaseWrapper):
continue
key_columns = self.introspection.get_key_columns(cursor, table_name)
for column_name, referenced_table_name, referenced_column_name in key_columns:
- cursor.execute("""
+ cursor.execute(
+ """
SELECT REFERRING.`%s`, REFERRING.`%s` FROM `%s` as REFERRING
LEFT JOIN `%s` as REFERRED
ON (REFERRING.`%s` = REFERRED.`%s`)
- WHERE REFERRING.`%s` IS NOT NULL AND REFERRED.`%s` IS NULL"""
- % (primary_key_column_name, column_name, table_name, referenced_table_name,
- column_name, referenced_column_name, column_name, referenced_column_name))
+ WHERE REFERRING.`%s` IS NOT NULL AND REFERRED.`%s` IS NULL
+ """ % (
+ primary_key_column_name, column_name, table_name,
+ referenced_table_name, column_name, referenced_column_name,
+ column_name, referenced_column_name,
+ )
+ )
for bad_row in cursor.fetchall():
- raise utils.IntegrityError("The row in table '%s' with primary key '%s' has an invalid "
+ raise utils.IntegrityError(
+ "The row in table '%s' with primary key '%s' has an invalid "
"foreign key: %s.%s contains a value '%s' that does not have a corresponding value in %s.%s."
- % (table_name, bad_row[0],
- table_name, column_name, bad_row[1],
- referenced_table_name, referenced_column_name))
+ % (
+ table_name, bad_row[0], table_name, column_name,
+ bad_row[1], referenced_table_name, referenced_column_name,
+ )
+ )
def is_usable(self):
try:
diff --git a/django/db/backends/mysql/operations.py b/django/db/backends/mysql/operations.py
index 963ad42f10..b9b8cd9089 100644
--- a/django/db/backends/mysql/operations.py
+++ b/django/db/backends/mysql/operations.py
@@ -12,7 +12,8 @@ class DatabaseOperations(BaseDatabaseOperations):
compiler_module = "django.db.backends.mysql.compiler"
# MySQL stores positive fields as UNSIGNED ints.
- integer_field_ranges = dict(BaseDatabaseOperations.integer_field_ranges,
+ integer_field_ranges = dict(
+ BaseDatabaseOperations.integer_field_ranges,
PositiveSmallIntegerField=(0, 65535),
PositiveIntegerField=(0, 4294967295),
)
diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py
index 62b17fbe42..91af08acb6 100644
--- a/django/db/backends/oracle/base.py
+++ b/django/db/backends/oracle/base.py
@@ -367,8 +367,7 @@ class OracleParam(object):
else:
# To transmit to the database, we need Unicode if supported
# To get size right, we must consider bytes.
- self.force_bytes = convert_unicode(param, cursor.charset,
- strings_only)
+ self.force_bytes = convert_unicode(param, cursor.charset, strings_only)
if isinstance(self.force_bytes, six.string_types):
# We could optimize by only converting up to 4000 bytes here
string_size = len(force_bytes(param, cursor.charset, strings_only))
@@ -498,8 +497,7 @@ class FormatStylePlaceholderCursor(object):
formatted = [firstparams] + [self._format_params(p) for p in params_iter]
self._guess_input_sizes(formatted)
try:
- return self.cursor.executemany(query,
- [self._param_generator(p) for p in formatted])
+ return self.cursor.executemany(query, [self._param_generator(p) for p in formatted])
except Database.DatabaseError as e:
# cx_Oracle <= 4.4.0 wrongly raises a DatabaseError for ORA-01400.
if hasattr(e.args[0], 'code') and e.args[0].code == 1400 and not isinstance(e, IntegrityError):
diff --git a/django/db/backends/oracle/operations.py b/django/db/backends/oracle/operations.py
index c101fcd870..8670e2f4d1 100644
--- a/django/db/backends/oracle/operations.py
+++ b/django/db/backends/oracle/operations.py
@@ -99,8 +99,7 @@ WHEN (new.%(col_name)s IS NULL)
days = str(timedelta.days)
day_precision = len(days)
fmt = "INTERVAL '%s %02d:%02d:%02d.%06d' DAY(%d) TO SECOND(6)"
- return fmt % (days, hours, minutes, seconds, timedelta.microseconds,
- day_precision), []
+ return fmt % (days, hours, minutes, seconds, timedelta.microseconds, day_precision), []
def date_trunc_sql(self, lookup_type, field_name):
# http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions230.htm#i1002084
diff --git a/django/db/backends/postgresql/operations.py b/django/db/backends/postgresql/operations.py
index 41d3a7a230..f0715a24e3 100644
--- a/django/db/backends/postgresql/operations.py
+++ b/django/db/backends/postgresql/operations.py
@@ -139,11 +139,11 @@ class DatabaseOperations(BaseDatabaseOperations):
# This will be the case if it's an m2m using an autogenerated
# intermediate table (see BaseDatabaseIntrospection.sequence_list)
column_name = 'id'
- sql.append("%s setval(pg_get_serial_sequence('%s','%s'), 1, false);" %
- (style.SQL_KEYWORD('SELECT'),
+ sql.append("%s setval(pg_get_serial_sequence('%s','%s'), 1, false);" % (
+ style.SQL_KEYWORD('SELECT'),
style.SQL_TABLE(self.quote_name(table_name)),
- style.SQL_FIELD(column_name))
- )
+ style.SQL_FIELD(column_name),
+ ))
return sql
def tablespace_sql(self, tablespace, inline=False):
diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py
index 2330a98a53..4f52cc3637 100644
--- a/django/db/backends/sqlite3/base.py
+++ b/django/db/backends/sqlite3/base.py
@@ -282,18 +282,28 @@ class DatabaseWrapper(BaseDatabaseWrapper):
continue
key_columns = self.introspection.get_key_columns(cursor, table_name)
for column_name, referenced_table_name, referenced_column_name in key_columns:
- cursor.execute("""
+ cursor.execute(
+ """
SELECT REFERRING.`%s`, REFERRING.`%s` FROM `%s` as REFERRING
LEFT JOIN `%s` as REFERRED
ON (REFERRING.`%s` = REFERRED.`%s`)
- WHERE REFERRING.`%s` IS NOT NULL AND REFERRED.`%s` IS NULL"""
- % (primary_key_column_name, column_name, table_name, referenced_table_name,
- column_name, referenced_column_name, column_name, referenced_column_name))
+ WHERE REFERRING.`%s` IS NOT NULL AND REFERRED.`%s` IS NULL
+ """
+ % (
+ primary_key_column_name, column_name, table_name,
+ referenced_table_name, column_name, referenced_column_name,
+ column_name, referenced_column_name,
+ )
+ )
for bad_row in cursor.fetchall():
- raise utils.IntegrityError("The row in table '%s' with primary key '%s' has an invalid "
- "foreign key: %s.%s contains a value '%s' that does not have a corresponding value in %s.%s."
- % (table_name, bad_row[0], table_name, column_name, bad_row[1],
- referenced_table_name, referenced_column_name))
+ raise utils.IntegrityError(
+ "The row in table '%s' with primary key '%s' has an "
+ "invalid foreign key: %s.%s contains a value '%s' that "
+ "does not have a corresponding value in %s.%s." % (
+ table_name, bad_row[0], table_name, column_name,
+ bad_row[1], referenced_table_name, referenced_column_name,
+ )
+ )
def is_usable(self):
return True
diff --git a/django/db/backends/utils.py b/django/db/backends/utils.py
index 94134811dd..dce453b7b0 100644
--- a/django/db/backends/utils.py
+++ b/django/db/backends/utils.py
@@ -85,7 +85,8 @@ class CursorDebugWrapper(CursorWrapper):
'sql': sql,
'time': "%.3f" % duration,
})
- logger.debug('(%.3f) %s; args=%s', duration, sql, params,
+ logger.debug(
+ '(%.3f) %s; args=%s', duration, sql, params,
extra={'duration': duration, 'sql': sql, 'params': params}
)
@@ -104,7 +105,8 @@ class CursorDebugWrapper(CursorWrapper):
'sql': '%s times: %s' % (times, sql),
'time': "%.3f" % duration,
})
- logger.debug('(%.3f) %s; args=%s', duration, sql, param_list,
+ logger.debug(
+ '(%.3f) %s; args=%s', duration, sql, param_list,
extra={'duration': duration, 'sql': sql, 'params': param_list}
)
@@ -154,9 +156,11 @@ def typecast_timestamp(s): # does NOT store time zone information
else:
microseconds = '0'
tzinfo = utc if settings.USE_TZ else None
- return datetime.datetime(int(dates[0]), int(dates[1]), int(dates[2]),
+ return datetime.datetime(
+ int(dates[0]), int(dates[1]), int(dates[2]),
int(times[0]), int(times[1]), int(seconds),
- int((microseconds + '000000')[:6]), tzinfo)
+ int((microseconds + '000000')[:6]), tzinfo
+ )
def typecast_decimal(s):
diff --git a/django/db/models/base.py b/django/db/models/base.py
index 7b0b68f983..c029fd812a 100644
--- a/django/db/models/base.py
+++ b/django/db/models/base.py
@@ -519,9 +519,10 @@ class Model(six.with_metaclass(ModelBase)):
if pickled_version:
current_version = get_version()
if current_version != pickled_version:
- msg = ("Pickled model instance's Django version %s does"
- " not match the current version %s."
- % (pickled_version, current_version))
+ msg = (
+ "Pickled model instance's Django version %s does not match "
+ "the current version %s." % (pickled_version, current_version)
+ )
else:
msg = "Pickled model instance's Django version is not specified."
@@ -1285,9 +1286,7 @@ class Model(six.with_metaclass(ModelBase)):
@classmethod
def _check_id_field(cls):
""" Check if `id` field is a primary key. """
-
- fields = list(f for f in cls._meta.local_fields
- if f.name == 'id' and f != cls._meta.pk)
+ fields = list(f for f in cls._meta.local_fields if f.name == 'id' and f != cls._meta.pk)
# fields is empty or consists of the invalid "id" field
if fields and not fields[0].primary_key and cls._meta.pk.name == 'id':
return [
@@ -1342,8 +1341,7 @@ class Model(six.with_metaclass(ModelBase)):
# field "id" and automatically added unique field "id", both
# defined at the same model. This special case is considered in
# _check_id_field and here we ignore it.
- id_conflict = (f.name == "id" and
- clash and clash.name == "id" and clash.model == cls)
+ id_conflict = f.name == "id" and clash and clash.name == "id" and clash.model == cls
if clash and not id_conflict:
errors.append(
checks.Error(
@@ -1397,8 +1395,7 @@ class Model(six.with_metaclass(ModelBase)):
)
]
- elif any(not isinstance(fields, (tuple, list))
- for fields in cls._meta.index_together):
+ elif any(not isinstance(fields, (tuple, list)) for fields in cls._meta.index_together):
return [
checks.Error(
"All 'index_together' elements must be lists or tuples.",
@@ -1425,8 +1422,7 @@ class Model(six.with_metaclass(ModelBase)):
)
]
- elif any(not isinstance(fields, (tuple, list))
- for fields in cls._meta.unique_together):
+ elif any(not isinstance(fields, (tuple, list)) for fields in cls._meta.unique_together):
return [
checks.Error(
"All 'unique_together' elements must be lists or tuples.",
diff --git a/django/db/models/deletion.py b/django/db/models/deletion.py
index 7c9db0d87a..07ee0459de 100644
--- a/django/db/models/deletion.py
+++ b/django/db/models/deletion.py
@@ -20,8 +20,9 @@ def CASCADE(collector, field, sub_objs, using):
def PROTECT(collector, field, sub_objs, using):
- raise ProtectedError("Cannot delete some instances of model '%s' because "
- "they are referenced through a protected foreign key: '%s.%s'" % (
+ raise ProtectedError(
+ "Cannot delete some instances of model '%s' because they are "
+ "referenced through a protected foreign key: '%s.%s'" % (
field.remote_field.model.__name__, sub_objs[0].__class__.__name__, field.name
),
sub_objs
@@ -165,7 +166,7 @@ class Collector(object):
return [objs]
def collect(self, objs, source=None, nullable=False, collect_related=True,
- source_attr=None, reverse_dependency=False, keep_parents=False):
+ source_attr=None, reverse_dependency=False, keep_parents=False):
"""
Adds 'objs' to the collection of objects to be deleted as well as all
parent instances. 'objs' must be a homogeneous iterable collection of
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index 14f7058285..812e5425fc 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -137,12 +137,12 @@ class Field(RegisterLookupMixin):
description = property(_description)
def __init__(self, verbose_name=None, name=None, primary_key=False,
- max_length=None, unique=False, blank=False, null=False,
- db_index=False, rel=None, default=NOT_PROVIDED, editable=True,
- serialize=True, unique_for_date=None, unique_for_month=None,
- unique_for_year=None, choices=None, help_text='', db_column=None,
- db_tablespace=None, auto_created=False, validators=[],
- error_messages=None):
+ max_length=None, unique=False, blank=False, null=False,
+ db_index=False, rel=None, default=NOT_PROVIDED, editable=True,
+ serialize=True, unique_for_date=None, unique_for_month=None,
+ unique_for_year=None, choices=None, help_text='', db_column=None,
+ db_tablespace=None, auto_created=False, validators=[],
+ error_messages=None):
self.name = name
self.verbose_name = verbose_name # May be set by set_attributes_from_name
self._verbose_name = verbose_name # Store original for deconstruction
@@ -806,8 +806,7 @@ class Field(RegisterLookupMixin):
if callable(self.default):
return self.default()
return self.default
- if (not self.empty_strings_allowed or (self.null and
- not connection.features.interprets_empty_strings_as_nulls)):
+ if not self.empty_strings_allowed or self.null and not connection.features.interprets_empty_strings_as_nulls:
return None
return ""
@@ -1177,10 +1176,8 @@ class DateTimeCheckMixin(object):
# auto_now, auto_now_add, and default are mutually exclusive
# options. The use of more than one of these options together
# will trigger an Error
- mutually_exclusive_options = [self.auto_now_add, self.auto_now,
- self.has_default()]
- enabled_options = [option not in (None, False)
- for option in mutually_exclusive_options].count(True)
+ mutually_exclusive_options = [self.auto_now_add, self.auto_now, self.has_default()]
+ enabled_options = [option not in (None, False) for option in mutually_exclusive_options].count(True)
if enabled_options > 1:
return [
checks.Error(
@@ -1314,12 +1311,14 @@ class DateField(DateTimeCheckMixin, Field):
def contribute_to_class(self, cls, name, **kwargs):
super(DateField, self).contribute_to_class(cls, name, **kwargs)
if not self.null:
- setattr(cls, 'get_next_by_%s' % self.name,
- curry(cls._get_next_or_previous_by_FIELD, field=self,
- is_next=True))
- setattr(cls, 'get_previous_by_%s' % self.name,
- curry(cls._get_next_or_previous_by_FIELD, field=self,
- is_next=False))
+ setattr(
+ cls, 'get_next_by_%s' % self.name,
+ curry(cls._get_next_or_previous_by_FIELD, field=self, is_next=True)
+ )
+ setattr(
+ cls, 'get_previous_by_%s' % self.name,
+ curry(cls._get_next_or_previous_by_FIELD, field=self, is_next=False)
+ )
def get_prep_value(self, value):
value = super(DateField, self).get_prep_value(value)
@@ -1633,8 +1632,7 @@ class DecimalField(Field):
return utils.format_number(value, self.max_digits, self.decimal_places)
def get_db_prep_save(self, value, connection):
- return connection.ops.adapt_decimalfield_value(self.to_python(value),
- self.max_digits, self.decimal_places)
+ return connection.ops.adapt_decimalfield_value(self.to_python(value), self.max_digits, self.decimal_places)
def get_prep_value(self, value):
value = super(DecimalField, self).get_prep_value(value)
@@ -2002,8 +2000,7 @@ class GenericIPAddressField(Field):
value = force_text(value)
value = value.strip()
if ':' in value:
- return clean_ipv6_address(value,
- self.unpack_ipv4, self.error_messages['invalid'])
+ return clean_ipv6_address(value, self.unpack_ipv4, self.error_messages['invalid'])
return value
def get_db_prep_value(self, value, connection, prepared=False):
diff --git a/django/db/models/fields/files.py b/django/db/models/fields/files.py
index 763fdd8093..1d0308b7da 100644
--- a/django/db/models/fields/files.py
+++ b/django/db/models/fields/files.py
@@ -369,8 +369,7 @@ class ImageField(FileField):
descriptor_class = ImageFileDescriptor
description = _("Image")
- def __init__(self, verbose_name=None, name=None, width_field=None,
- height_field=None, **kwargs):
+ def __init__(self, verbose_name=None, name=None, width_field=None, height_field=None, **kwargs):
self.width_field, self.height_field = width_field, height_field
super(ImageField, self).__init__(verbose_name, name, **kwargs)
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py
index 001b0907ab..0539647bcc 100644
--- a/django/db/models/fields/related.py
+++ b/django/db/models/fields/related.py
@@ -221,8 +221,7 @@ class RelatedField(Field):
# model_set and it clashes with Target.model_set.
potential_clashes = rel_opts.fields + rel_opts.many_to_many
for clash_field in potential_clashes:
- clash_name = "%s.%s" % (rel_opts.object_name,
- clash_field.name) # i. e. "Target.model_set"
+ clash_name = "%s.%s" % (rel_opts.object_name, clash_field.name) # i.e. "Target.model_set"
if not rel_is_hidden and clash_field.name == rel_name:
errors.append(
checks.Error(
@@ -441,8 +440,8 @@ class ForeignObject(RelatedField):
rel_class = ForeignObjectRel
def __init__(self, to, on_delete, from_fields, to_fields, rel=None, related_name=None,
- related_query_name=None, limit_choices_to=None, parent_link=False,
- swappable=True, **kwargs):
+ related_query_name=None, limit_choices_to=None, parent_link=False,
+ swappable=True, **kwargs):
if rel is None:
rel = self.rel_class(
@@ -491,8 +490,9 @@ class ForeignObject(RelatedField):
has_unique_constraint = any(u <= foreign_fields for u in unique_foreign_fields)
if not has_unique_constraint and len(self.foreign_related_fields) > 1:
- field_combination = ', '.join("'%s'" % rel_field.name
- for rel_field in self.foreign_related_fields)
+ field_combination = ', '.join(
+ "'%s'" % rel_field.name for rel_field in self.foreign_related_fields
+ )
model_name = self.remote_field.model.__name__
return [
checks.Error(
@@ -743,8 +743,8 @@ class ForeignKey(ForeignObject):
description = _("Foreign Key (type determined by related field)")
def __init__(self, to, on_delete=None, related_name=None, related_query_name=None,
- limit_choices_to=None, parent_link=False, to_field=None,
- db_constraint=True, **kwargs):
+ limit_choices_to=None, parent_link=False, to_field=None,
+ db_constraint=True, **kwargs):
try:
to._meta.model_name
except AttributeError:
@@ -1111,9 +1111,9 @@ class ManyToManyField(RelatedField):
description = _("Many-to-many relationship")
def __init__(self, to, related_name=None, related_query_name=None,
- limit_choices_to=None, symmetrical=None, through=None,
- through_fields=None, db_constraint=True, db_table=None,
- swappable=True, **kwargs):
+ limit_choices_to=None, symmetrical=None, through=None,
+ through_fields=None, db_constraint=True, db_table=None,
+ swappable=True, **kwargs):
try:
to._meta
except AttributeError:
@@ -1241,8 +1241,10 @@ class ManyToManyField(RelatedField):
# Count foreign keys in intermediate model
if self_referential:
- seen_self = sum(from_model == getattr(field.remote_field, 'model', None)
- for field in self.remote_field.through._meta.fields)
+ seen_self = sum(
+ from_model == getattr(field.remote_field, 'model', None)
+ for field in self.remote_field.through._meta.fields
+ )
if seen_self > 2 and not self.remote_field.through_fields:
errors.append(
@@ -1260,10 +1262,14 @@ class ManyToManyField(RelatedField):
else:
# Count foreign keys in relationship model
- seen_from = sum(from_model == getattr(field.remote_field, 'model', None)
- for field in self.remote_field.through._meta.fields)
- seen_to = sum(to_model == getattr(field.remote_field, 'model', None)
- for field in self.remote_field.through._meta.fields)
+ seen_from = sum(
+ from_model == getattr(field.remote_field, 'model', None)
+ for field in self.remote_field.through._meta.fields
+ )
+ seen_to = sum(
+ to_model == getattr(field.remote_field, 'model', None)
+ for field in self.remote_field.through._meta.fields
+ )
if seen_from > 1 and not self.remote_field.through_fields:
errors.append(
@@ -1469,8 +1475,7 @@ class ManyToManyField(RelatedField):
elif self.db_table:
return self.db_table
else:
- return utils.truncate_name('%s_%s' % (opts.db_table, self.name),
- connection.ops.max_name_length())
+ return utils.truncate_name('%s_%s' % (opts.db_table, self.name), connection.ops.max_name_length())
def _get_m2m_attr(self, related, attr):
"""
diff --git a/django/db/models/fields/related_descriptors.py b/django/db/models/fields/related_descriptors.py
index b6349e5c49..8599911a41 100644
--- a/django/db/models/fields/related_descriptors.py
+++ b/django/db/models/fields/related_descriptors.py
@@ -868,16 +868,19 @@ def create_forward_many_to_many_manager(superclass, rel, reverse):
def clear(self):
db = router.db_for_write(self.through, instance=self.instance)
with transaction.atomic(using=db, savepoint=False):
- signals.m2m_changed.send(sender=self.through, action="pre_clear",
+ signals.m2m_changed.send(
+ sender=self.through, action="pre_clear",
instance=self.instance, reverse=self.reverse,
- model=self.model, pk_set=None, using=db)
-
+ model=self.model, pk_set=None, using=db,
+ )
filters = self._build_remove_filters(super(ManyRelatedManager, self).get_queryset().using(db))
self.through._default_manager.using(db).filter(filters).delete()
- signals.m2m_changed.send(sender=self.through, action="post_clear",
+ signals.m2m_changed.send(
+ sender=self.through, action="post_clear",
instance=self.instance, reverse=self.reverse,
- model=self.model, pk_set=None, using=db)
+ model=self.model, pk_set=None, using=db,
+ )
clear.alters_data = True
def set(self, objs, **kwargs):
@@ -905,9 +908,10 @@ def create_forward_many_to_many_manager(superclass, rel, reverse):
new_objs = []
for obj in objs:
- fk_val = (self.target_field.get_foreign_related_value(obj)[0]
- if isinstance(obj, self.model) else obj)
-
+ fk_val = (
+ self.target_field.get_foreign_related_value(obj)[0]
+ if isinstance(obj, self.model) else obj
+ )
if fk_val in old_ids:
old_ids.remove(fk_val)
else:
@@ -998,9 +1002,11 @@ def create_forward_many_to_many_manager(superclass, rel, reverse):
if self.reverse or source_field_name == self.source_field_name:
# Don't send the signal when we are inserting the
# duplicate data row for symmetrical reverse entries.
- signals.m2m_changed.send(sender=self.through, action='pre_add',
+ signals.m2m_changed.send(
+ sender=self.through, action='pre_add',
instance=self.instance, reverse=self.reverse,
- model=self.model, pk_set=new_ids, using=db)
+ model=self.model, pk_set=new_ids, using=db,
+ )
# Add the ones that aren't there already
self.through._default_manager.using(db).bulk_create([
@@ -1014,9 +1020,11 @@ def create_forward_many_to_many_manager(superclass, rel, reverse):
if self.reverse or source_field_name == self.source_field_name:
# Don't send the signal when we are inserting the
# duplicate data row for symmetrical reverse entries.
- signals.m2m_changed.send(sender=self.through, action='post_add',
+ signals.m2m_changed.send(
+ sender=self.through, action='post_add',
instance=self.instance, reverse=self.reverse,
- model=self.model, pk_set=new_ids, using=db)
+ model=self.model, pk_set=new_ids, using=db,
+ )
def _remove_items(self, source_field_name, target_field_name, *objs):
# source_field_name: the PK colname in join table for the source object
@@ -1037,9 +1045,11 @@ def create_forward_many_to_many_manager(superclass, rel, reverse):
db = router.db_for_write(self.through, instance=self.instance)
with transaction.atomic(using=db, savepoint=False):
# Send a signal to the other end if need be.
- signals.m2m_changed.send(sender=self.through, action="pre_remove",
+ signals.m2m_changed.send(
+ sender=self.through, action="pre_remove",
instance=self.instance, reverse=self.reverse,
- model=self.model, pk_set=old_ids, using=db)
+ model=self.model, pk_set=old_ids, using=db,
+ )
target_model_qs = super(ManyRelatedManager, self).get_queryset()
if target_model_qs._has_filters():
old_vals = target_model_qs.using(db).filter(**{
@@ -1049,8 +1059,10 @@ def create_forward_many_to_many_manager(superclass, rel, reverse):
filters = self._build_remove_filters(old_vals)
self.through._default_manager.using(db).filter(filters).delete()
- signals.m2m_changed.send(sender=self.through, action="post_remove",
+ signals.m2m_changed.send(
+ sender=self.through, action="post_remove",
instance=self.instance, reverse=self.reverse,
- model=self.model, pk_set=old_ids, using=db)
+ model=self.model, pk_set=old_ids, using=db,
+ )
return ManyRelatedManager
diff --git a/django/db/models/fields/reverse_related.py b/django/db/models/fields/reverse_related.py
index 0d2ed35c69..93f0d4aba0 100644
--- a/django/db/models/fields/reverse_related.py
+++ b/django/db/models/fields/reverse_related.py
@@ -40,7 +40,7 @@ class ForeignObjectRel(object):
null = True
def __init__(self, field, to, related_name=None, related_query_name=None,
- limit_choices_to=None, parent_link=False, on_delete=None):
+ limit_choices_to=None, parent_link=False, on_delete=None):
self.field = field
self.model = to
self.related_name = related_name
@@ -212,7 +212,7 @@ class ManyToOneRel(ForeignObjectRel):
"""
def __init__(self, field, to, field_name, related_name=None, related_query_name=None,
- limit_choices_to=None, parent_link=False, on_delete=None):
+ limit_choices_to=None, parent_link=False, on_delete=None):
super(ManyToOneRel, self).__init__(
field, to,
related_name=related_name,
@@ -235,8 +235,7 @@ class ManyToOneRel(ForeignObjectRel):
"""
field = self.model._meta.get_field(self.field_name)
if not field.concrete:
- raise exceptions.FieldDoesNotExist("No related field named '%s'" %
- self.field_name)
+ raise exceptions.FieldDoesNotExist("No related field named '%s'" % self.field_name)
return field
def set_field_name(self):
@@ -252,7 +251,7 @@ class OneToOneRel(ManyToOneRel):
"""
def __init__(self, field, to, field_name, related_name=None, related_query_name=None,
- limit_choices_to=None, parent_link=False, on_delete=None):
+ limit_choices_to=None, parent_link=False, on_delete=None):
super(OneToOneRel, self).__init__(
field, to, field_name,
related_name=related_name,
@@ -274,8 +273,8 @@ class ManyToManyRel(ForeignObjectRel):
"""
def __init__(self, field, to, related_name=None, related_query_name=None,
- limit_choices_to=None, symmetrical=True, through=None, through_fields=None,
- db_constraint=True):
+ limit_choices_to=None, symmetrical=True, through=None,
+ through_fields=None, db_constraint=True):
super(ManyToManyRel, self).__init__(
field, to,
related_name=related_name,
diff --git a/django/db/models/options.py b/django/db/models/options.py
index a0b2f56082..0432d6958a 100644
--- a/django/db/models/options.py
+++ b/django/db/models/options.py
@@ -28,13 +28,14 @@ IMMUTABLE_WARNING = (
"for your own use, make a copy first."
)
-DEFAULT_NAMES = ('verbose_name', 'verbose_name_plural', 'db_table', 'ordering',
- 'unique_together', 'permissions', 'get_latest_by',
- 'order_with_respect_to', 'app_label', 'db_tablespace',
- 'abstract', 'managed', 'proxy', 'swappable', 'auto_created',
- 'index_together', 'apps', 'default_permissions',
- 'select_on_save', 'default_related_name',
- 'required_db_features', 'required_db_vendor')
+DEFAULT_NAMES = (
+ 'verbose_name', 'verbose_name_plural', 'db_table', 'ordering',
+ 'unique_together', 'permissions', 'get_latest_by', 'order_with_respect_to',
+ 'app_label', 'db_tablespace', 'abstract', 'managed', 'proxy', 'swappable',
+ 'auto_created', 'index_together', 'apps', 'default_permissions',
+ 'select_on_save', 'default_related_name', 'required_db_features',
+ 'required_db_vendor',
+)
def normalize_together(option_together):
@@ -249,8 +250,7 @@ class Options(object):
field.primary_key = True
self.setup_pk(field)
else:
- auto = AutoField(verbose_name='ID', primary_key=True,
- auto_created=True)
+ auto = AutoField(verbose_name='ID', primary_key=True, auto_created=True)
model.add_to_class('id', auto)
def add_field(self, field, virtual=False):
@@ -385,8 +385,7 @@ class Options(object):
return make_immutable_fields_list(
"fields",
(f for f in self._get_fields(reverse=False)
- if is_not_an_m2m_field(f) and is_not_a_generic_relation(f) and
- is_not_a_generic_foreign_key(f))
+ if is_not_an_m2m_field(f) and is_not_a_generic_relation(f) and is_not_a_generic_foreign_key(f))
)
@cached_property
@@ -426,8 +425,7 @@ class Options(object):
"""
return make_immutable_fields_list(
"many_to_many",
- (f for f in self._get_fields(reverse=False)
- if f.is_relation and f.many_to_many)
+ (f for f in self._get_fields(reverse=False) if f.is_relation and f.many_to_many)
)
@cached_property
@@ -444,8 +442,7 @@ class Options(object):
all_related_fields = self._get_fields(forward=False, reverse=True, include_hidden=True)
return make_immutable_fields_list(
"related_objects",
- (obj for obj in all_related_fields
- if not obj.hidden or obj.field.many_to_many)
+ (obj for obj in all_related_fields if not obj.hidden or obj.field.many_to_many)
)
@cached_property
diff --git a/django/db/models/query.py b/django/db/models/query.py
index 150d77bc91..61c52167c7 100644
--- a/django/db/models/query.py
+++ b/django/db/models/query.py
@@ -220,9 +220,10 @@ class QuerySet(object):
if pickled_version:
current_version = get_version()
if current_version != pickled_version:
- msg = ("Pickled queryset instance's Django version %s does"
- " not match the current version %s."
- % (pickled_version, current_version))
+ msg = (
+ "Pickled queryset instance's Django version %s does not "
+ "match the current version %s." % (pickled_version, current_version)
+ )
else:
msg = "Pickled queryset instance's Django version is not specified."
@@ -673,9 +674,7 @@ class QuerySet(object):
def raw(self, raw_query, params=None, translations=None, using=None):
if using is None:
using = self.db
- return RawQuerySet(raw_query, model=self.model,
- params=params, translations=translations,
- using=using)
+ return RawQuerySet(raw_query, model=self.model, params=params, translations=translations, using=using)
def _values(self, *fields):
clone = self._clone()
@@ -726,8 +725,7 @@ class QuerySet(object):
def values_list(self, *fields, **kwargs):
flat = kwargs.pop('flat', False)
if kwargs:
- raise TypeError('Unexpected keyword arguments to values_list: %s'
- % (list(kwargs),))
+ raise TypeError('Unexpected keyword arguments to values_list: %s' % (list(kwargs),))
if flat and len(fields) > 1:
raise TypeError("'flat' is not valid when values_list is called with more than one field.")
@@ -1116,8 +1114,10 @@ class QuerySet(object):
set(self.query.values_select) != set(other.query.values_select) or
set(self.query.extra_select) != set(other.query.extra_select) or
set(self.query.annotation_select) != set(other.query.annotation_select)):
- raise TypeError("Merging '%s' classes must involve the same values in each case."
- % self.__class__.__name__)
+ raise TypeError(
+ "Merging '%s' classes must involve the same values in each case."
+ % self.__class__.__name__
+ )
def _merge_known_related_objects(self, other):
"""
@@ -1214,7 +1214,7 @@ class RawQuerySet(object):
annotated model instances.
"""
def __init__(self, raw_query, model=None, query=None, params=None,
- translations=None, using=None, hints=None):
+ translations=None, using=None, hints=None):
self.raw_query = raw_query
self.model = model
self._db = using
@@ -1291,10 +1291,12 @@ class RawQuerySet(object):
"""
Selects which database this Raw QuerySet should execute its query against.
"""
- return RawQuerySet(self.raw_query, model=self.model,
- query=self.query.clone(using=alias),
- params=self.params, translations=self.translations,
- using=alias)
+ return RawQuerySet(
+ self.raw_query, model=self.model,
+ query=self.query.clone(using=alias),
+ params=self.params, translations=self.translations,
+ using=alias,
+ )
@property
def columns(self):
diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py
index 9fd6e83220..9447f06f85 100644
--- a/django/db/models/sql/compiler.py
+++ b/django/db/models/sql/compiler.py
@@ -1059,8 +1059,9 @@ class SQLInsertCompiler(SQLCompiler):
if self.connection.features.can_return_id_from_insert:
assert len(self.query.objs) == 1
return self.connection.ops.fetch_returned_insert_id(cursor)
- return self.connection.ops.last_insert_id(cursor,
- self.query.get_meta().db_table, self.query.get_meta().pk.column)
+ return self.connection.ops.last_insert_id(
+ cursor, self.query.get_meta().db_table, self.query.get_meta().pk.column
+ )
class SQLDeleteCompiler(SQLCompiler):
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index 4a5eb1701a..6946c273c7 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -576,8 +576,7 @@ class Query(object):
# really make sense (or return consistent value sets). Not worth
# the extra complexity when you can write a real query instead.
if self._extra and rhs._extra:
- raise ValueError("When merging querysets using 'or', you "
- "cannot have extra(select=...) on both sides.")
+ raise ValueError("When merging querysets using 'or', you cannot have extra(select=...) on both sides.")
self.extra.update(rhs.extra)
extra_select_mask = set()
if self.extra_select_mask is not None:
diff --git a/django/db/models/sql/subqueries.py b/django/db/models/sql/subqueries.py
index 266b6a017c..316a5c684d 100644
--- a/django/db/models/sql/subqueries.py
+++ b/django/db/models/sql/subqueries.py
@@ -105,8 +105,7 @@ class UpdateQuery(Query):
self.related_updates = {}
def clone(self, klass=None, **kwargs):
- return super(UpdateQuery, self).clone(klass,
- related_updates=self.related_updates.copy(), **kwargs)
+ return super(UpdateQuery, self).clone(klass, related_updates=self.related_updates.copy(), **kwargs)
def update_batch(self, pk_list, values, using):
self.add_update_values(values)