diff --git a/django/contrib/admin/bin/compress.py b/django/contrib/admin/bin/compress.py index 06e750f3cb9..69660284eb7 100644 --- a/django/contrib/admin/bin/compress.py +++ b/django/contrib/admin/bin/compress.py @@ -28,7 +28,7 @@ Compiler library and Java version 6 or later.""" parser.add_argument("-q", "--quiet", action="store_false", dest="verbose") options = parser.parse_args() - compiler = Path(closure_compiler if closure_compiler else options.compiler).expanduser() + compiler = Path(closure_compiler or options.compiler).expanduser() if not compiler.exists(): sys.exit( "Google Closure compiler jar file %s not found. Please use the -c " diff --git a/django/contrib/gis/gdal/raster/base.py b/django/contrib/gis/gdal/raster/base.py index c98f636ec2c..5bf3fb804eb 100644 --- a/django/contrib/gis/gdal/raster/base.py +++ b/django/contrib/gis/gdal/raster/base.py @@ -56,7 +56,7 @@ class GDALRasterBase(GDALBase): counter += 1 item = data[counter] # The default domain values are returned if domain is None. - result[domain if domain else 'DEFAULT'] = domain_meta + result[domain or 'DEFAULT'] = domain_meta return result @metadata.setter diff --git a/django/contrib/sessions/backends/file.py b/django/contrib/sessions/backends/file.py index 0a724f7e0a8..0c09fa564ce 100644 --- a/django/contrib/sessions/backends/file.py +++ b/django/contrib/sessions/backends/file.py @@ -73,10 +73,9 @@ class SessionStore(SessionBase): """ Return the expiry time of the file storing the session's content. """ - expiry = session_data.get('_session_expiry') - if not expiry: - expiry = self._last_modification() + datetime.timedelta(seconds=settings.SESSION_COOKIE_AGE) - return expiry + return session_data.get('_session_expiry') or ( + self._last_modification() + datetime.timedelta(seconds=settings.SESSION_COOKIE_AGE) + ) def load(self): session_data = {} diff --git a/django/core/handlers/wsgi.py b/django/core/handlers/wsgi.py index 2ec6269bead..010e9acfbc4 100644 --- a/django/core/handlers/wsgi.py +++ b/django/core/handlers/wsgi.py @@ -66,13 +66,9 @@ class LimitedStream: class WSGIRequest(HttpRequest): def __init__(self, environ): script_name = get_script_name(environ) - path_info = get_path_info(environ) - if not path_info: - # Sometimes PATH_INFO exists, but is empty (e.g. accessing - # the SCRIPT_NAME URL without a trailing slash). We really need to - # operate as if they'd requested '/'. Not amazingly nice to force - # the path like this, but should be harmless. - path_info = '/' + # If PATH_INFO is empty (e.g. accessing the SCRIPT_NAME URL without a + # trailing slash), operate as if '/' was requested. + path_info = get_path_info(environ) or '/' self.environ = environ self.path_info = path_info # be careful to only replace the first slash in the path because of diff --git a/django/core/management/commands/makemessages.py b/django/core/management/commands/makemessages.py index 0151644a3a1..f8c0da8388d 100644 --- a/django/core/management/commands/makemessages.py +++ b/django/core/management/commands/makemessages.py @@ -323,9 +323,9 @@ class Command(BaseCommand): raise CommandError("currently makemessages only supports domains " "'django' and 'djangojs'") if self.domain == 'djangojs': - exts = extensions if extensions else ['js'] + exts = extensions or ['js'] else: - exts = extensions if extensions else ['html', 'txt', 'py'] + exts = extensions or ['html', 'txt', 'py'] self.extensions = handle_extensions(exts) if (locale is None and not exclude and not process_all) or self.domain is None: @@ -501,9 +501,7 @@ class Command(BaseCommand): locale_dir = path break if not locale_dir: - locale_dir = self.default_locale_path - if not locale_dir: - locale_dir = NO_LOCALE_DIR + locale_dir = self.default_locale_path or NO_LOCALE_DIR all_files.append(self.translatable_file_class(dirpath, filename, locale_dir)) return sorted(all_files) diff --git a/django/db/backends/base/introspection.py b/django/db/backends/base/introspection.py index 27a3cb2b873..154ae22bf15 100644 --- a/django/db/backends/base/introspection.py +++ b/django/db/backends/base/introspection.py @@ -130,7 +130,7 @@ class BaseDatabaseIntrospection: # we don't need to reset the sequence. if f.remote_field.through is None: sequence = self.get_sequences(cursor, f.m2m_db_table()) - sequence_list.extend(sequence if sequence else [{'table': f.m2m_db_table(), 'column': None}]) + sequence_list.extend(sequence or [{'table': f.m2m_db_table(), 'column': None}]) return sequence_list def get_sequences(self, cursor, table_name, table_fields=()): diff --git a/django/db/backends/sqlite3/creation.py b/django/db/backends/sqlite3/creation.py index 3c6fb291fab..2c45f63c2bf 100644 --- a/django/db/backends/sqlite3/creation.py +++ b/django/db/backends/sqlite3/creation.py @@ -12,9 +12,7 @@ class DatabaseCreation(BaseDatabaseCreation): return database_name == ':memory:' or 'mode=memory' in database_name def _get_test_db_name(self): - test_database_name = self.connection.settings_dict['TEST']['NAME'] - if not test_database_name: - test_database_name = ':memory:' + test_database_name = self.connection.settings_dict['TEST']['NAME'] or ':memory:' if test_database_name == ':memory:': return 'file:memorydb_%s?mode=memory&cache=shared' % self.connection.alias return test_database_name diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py index 372431c620d..57da2fe68bf 100644 --- a/django/db/models/sql/query.py +++ b/django/db/models/sql/query.py @@ -606,7 +606,7 @@ class Query: # Ordering uses the 'rhs' ordering, unless it has none, in which case # the current ordering is used. - self.order_by = rhs.order_by if rhs.order_by else self.order_by + self.order_by = rhs.order_by or self.order_by self.extra_order_by = rhs.extra_order_by or self.extra_order_by def deferred_to_data(self, target, callback): diff --git a/django/forms/widgets.py b/django/forms/widgets.py index 47396213d97..498185fe23f 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -474,7 +474,7 @@ class DateTimeBaseInput(TextInput): def __init__(self, attrs=None, format=None): super().__init__(attrs) - self.format = format if format else None + self.format = format or None def format_value(self, value): return formats.localize_input(value, self.format or formats.get_format(self.format_key)[0]) diff --git a/django/utils/dateparse.py b/django/utils/dateparse.py index ffb37afcdfb..e0e5e244c7e 100644 --- a/django/utils/dateparse.py +++ b/django/utils/dateparse.py @@ -131,9 +131,11 @@ def parse_duration(value): Also supports ISO 8601 representation and PostgreSQL's day-time interval format. """ - match = standard_duration_re.match(value) - if not match: - match = iso8601_duration_re.match(value) or postgres_interval_re.match(value) + match = ( + standard_duration_re.match(value) or + iso8601_duration_re.match(value) or + postgres_interval_re.match(value) + ) if match: kw = match.groupdict() days = datetime.timedelta(float(kw.pop('days', 0) or 0))