mirror of
https://github.com/django/django.git
synced 2024-12-22 17:16:24 +00:00
Refs #23919 -- Replaced six.reraise by raise
This commit is contained in:
parent
d170c63351
commit
6e55e1d88a
@ -1,4 +1,3 @@
|
||||
import sys
|
||||
from collections import OrderedDict
|
||||
|
||||
from django.contrib.admin import FieldListFilter
|
||||
@ -17,7 +16,6 @@ from django.core.exceptions import (
|
||||
from django.core.paginator import InvalidPage
|
||||
from django.db import models
|
||||
from django.urls import reverse
|
||||
from django.utils import six
|
||||
from django.utils.encoding import force_text
|
||||
from django.utils.http import urlencode
|
||||
from django.utils.translation import ugettext
|
||||
@ -151,7 +149,7 @@ class ChangeList:
|
||||
use_distinct = use_distinct or lookup_needs_distinct(self.lookup_opts, key)
|
||||
return filter_specs, bool(filter_specs), lookup_params, use_distinct
|
||||
except FieldDoesNotExist as e:
|
||||
six.reraise(IncorrectLookupParameters, IncorrectLookupParameters(e), sys.exc_info()[2])
|
||||
raise IncorrectLookupParameters(e) from e
|
||||
|
||||
def get_query_string(self, new_params=None, remove=None):
|
||||
if new_params is None:
|
||||
|
@ -1,9 +1,6 @@
|
||||
import sys
|
||||
|
||||
import cx_Oracle
|
||||
|
||||
from django.db.backends.oracle.introspection import DatabaseIntrospection
|
||||
from django.utils import six
|
||||
|
||||
|
||||
class OracleIntrospection(DatabaseIntrospection):
|
||||
@ -24,12 +21,11 @@ class OracleIntrospection(DatabaseIntrospection):
|
||||
(table_name.upper(), geo_col.upper())
|
||||
)
|
||||
row = cursor.fetchone()
|
||||
except Exception as msg:
|
||||
new_msg = (
|
||||
except Exception as exc:
|
||||
raise Exception(
|
||||
'Could not find entry in USER_SDO_GEOM_METADATA '
|
||||
'corresponding to "%s"."%s"\n'
|
||||
'Error message: %s.') % (table_name, geo_col, msg)
|
||||
six.reraise(Exception, Exception(new_msg), sys.exc_info()[2])
|
||||
'corresponding to "%s"."%s"' % (table_name, geo_col)
|
||||
) from exc
|
||||
|
||||
# TODO: Research way to find a more specific geometry field type for
|
||||
# the column's contents.
|
||||
|
@ -1,4 +1,3 @@
|
||||
import sys
|
||||
from ctypes.util import find_library
|
||||
|
||||
from django.conf import settings
|
||||
@ -6,7 +5,6 @@ from django.core.exceptions import ImproperlyConfigured
|
||||
from django.db.backends.sqlite3.base import (
|
||||
DatabaseWrapper as SQLiteDatabaseWrapper, SQLiteCursorWrapper,
|
||||
)
|
||||
from django.utils import six
|
||||
|
||||
from .client import SpatiaLiteClient
|
||||
from .features import DatabaseFeatures
|
||||
@ -53,11 +51,10 @@ class DatabaseWrapper(SQLiteDatabaseWrapper):
|
||||
cur = conn.cursor(factory=SQLiteCursorWrapper)
|
||||
try:
|
||||
cur.execute("SELECT load_extension(%s)", (self.spatialite_lib,))
|
||||
except Exception as msg:
|
||||
new_msg = (
|
||||
'Unable to load the SpatiaLite library extension '
|
||||
'"%s" because: %s') % (self.spatialite_lib, msg)
|
||||
six.reraise(ImproperlyConfigured, ImproperlyConfigured(new_msg), sys.exc_info()[2])
|
||||
except Exception as exc:
|
||||
raise ImproperlyConfigured(
|
||||
'Unable to load the SpatiaLite library extension "%s"' % self.spatialite_lib
|
||||
) from exc
|
||||
cur.close()
|
||||
return conn
|
||||
|
||||
|
@ -4,7 +4,6 @@ https://web.archive.org/web/20130407175746/http://www.gaia-gis.it/gaia-sins/spat
|
||||
http://www.gaia-gis.it/gaia-sins/spatialite-sql-4.2.1.html
|
||||
"""
|
||||
import re
|
||||
import sys
|
||||
|
||||
from django.contrib.gis.db.backends.base.operations import \
|
||||
BaseSpatialOperations
|
||||
@ -15,7 +14,6 @@ from django.contrib.gis.geometry.backend import Geometry
|
||||
from django.contrib.gis.measure import Distance
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.db.backends.sqlite3.operations import DatabaseOperations
|
||||
from django.utils import six
|
||||
from django.utils.functional import cached_property
|
||||
|
||||
|
||||
@ -123,12 +121,13 @@ class SpatiaLiteOperations(BaseSpatialOperations, DatabaseOperations):
|
||||
"""Determine the version of the SpatiaLite library."""
|
||||
try:
|
||||
version = self.spatialite_version_tuple()[1:]
|
||||
except Exception as msg:
|
||||
new_msg = (
|
||||
'Cannot determine the SpatiaLite version for the "%s" '
|
||||
'database (error was "%s"). Was the SpatiaLite initialization '
|
||||
'SQL loaded on this database?') % (self.connection.settings_dict['NAME'], msg)
|
||||
six.reraise(ImproperlyConfigured, ImproperlyConfigured(new_msg), sys.exc_info()[2])
|
||||
except Exception as exc:
|
||||
raise ImproperlyConfigured(
|
||||
'Cannot determine the SpatiaLite version for the "%s" database. '
|
||||
'Was the SpatiaLite initialization SQL loaded on this database?' % (
|
||||
self.connection.settings_dict['NAME'],
|
||||
)
|
||||
) from exc
|
||||
if version < (4, 0, 0):
|
||||
raise ImproperlyConfigured('GeoDjango only supports SpatiaLite versions 4.0.0 and above.')
|
||||
return version
|
||||
|
@ -20,7 +20,6 @@ from django.contrib.gis.gdal.field import (
|
||||
)
|
||||
from django.core.exceptions import FieldDoesNotExist, ObjectDoesNotExist
|
||||
from django.db import connections, models, router, transaction
|
||||
from django.utils import six
|
||||
from django.utils.encoding import force_text
|
||||
|
||||
|
||||
@ -456,9 +455,10 @@ class LayerMapping:
|
||||
|
||||
# Creating the CoordTransform object
|
||||
return CoordTransform(self.source_srs, target_srs)
|
||||
except Exception as msg:
|
||||
new_msg = 'Could not translate between the data source and model geometry: %s' % msg
|
||||
six.reraise(LayerMapError, LayerMapError(new_msg), sys.exc_info()[2])
|
||||
except Exception as exc:
|
||||
raise LayerMapError(
|
||||
'Could not translate between the data source and model geometry.'
|
||||
) from exc
|
||||
|
||||
def geometry_field(self):
|
||||
"Returns the GeometryField instance associated with the geographic column."
|
||||
|
@ -1,4 +1,3 @@
|
||||
import sys
|
||||
from importlib import import_module
|
||||
|
||||
from django.apps import apps
|
||||
@ -6,7 +5,6 @@ from django.core.management.base import BaseCommand, CommandError
|
||||
from django.core.management.color import no_style
|
||||
from django.core.management.sql import emit_post_migrate_signal, sql_flush
|
||||
from django.db import DEFAULT_DB_ALIAS, connections, transaction
|
||||
from django.utils import six
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
@ -67,16 +65,17 @@ Are you sure you want to do this?
|
||||
with connection.cursor() as cursor:
|
||||
for sql in sql_list:
|
||||
cursor.execute(sql)
|
||||
except Exception as e:
|
||||
new_msg = (
|
||||
except Exception as exc:
|
||||
raise CommandError(
|
||||
"Database %s couldn't be flushed. Possible reasons:\n"
|
||||
" * The database isn't running or isn't configured correctly.\n"
|
||||
" * At least one of the expected database tables doesn't exist.\n"
|
||||
" * The SQL was invalid.\n"
|
||||
"Hint: Look at the output of 'django-admin sqlflush'. "
|
||||
"That's the SQL this command wasn't able to run.\n"
|
||||
"The full error: %s") % (connection.settings_dict['NAME'], e)
|
||||
six.reraise(CommandError, CommandError(new_msg), sys.exc_info()[2])
|
||||
"That's the SQL this command wasn't able to run.\n" % (
|
||||
connection.settings_dict['NAME'],
|
||||
)
|
||||
) from exc
|
||||
|
||||
# Empty sql_list may signify an empty database and post_migrate would then crash
|
||||
if sql_list and not inhibit_post_migrate:
|
||||
|
@ -1,9 +1,7 @@
|
||||
import os
|
||||
import sys
|
||||
from subprocess import PIPE, Popen
|
||||
|
||||
from django.apps import apps as installed_apps
|
||||
from django.utils import six
|
||||
from django.utils.crypto import get_random_string
|
||||
from django.utils.encoding import DEFAULT_LOCALE_ENCODING, force_text
|
||||
|
||||
@ -18,10 +16,8 @@ def popen_wrapper(args, os_err_exc_type=CommandError, stdout_encoding='utf-8'):
|
||||
"""
|
||||
try:
|
||||
p = Popen(args, shell=False, stdout=PIPE, stderr=PIPE, close_fds=os.name != 'nt')
|
||||
except OSError as e:
|
||||
strerror = force_text(e.strerror, DEFAULT_LOCALE_ENCODING, strings_only=True)
|
||||
six.reraise(os_err_exc_type, os_err_exc_type('Error executing %s: %s' %
|
||||
(args[0], strerror)), sys.exc_info()[2])
|
||||
except OSError as err:
|
||||
raise os_err_exc_type('Error executing %s' % args[0]) from err
|
||||
output, errors = p.communicate()
|
||||
return (
|
||||
force_text(output, stdout_encoding, strings_only=True, errors='strict'),
|
||||
|
@ -5,14 +5,12 @@ Serialize data to/from JSON
|
||||
import datetime
|
||||
import decimal
|
||||
import json
|
||||
import sys
|
||||
import uuid
|
||||
|
||||
from django.core.serializers.base import DeserializationError
|
||||
from django.core.serializers.python import (
|
||||
Deserializer as PythonDeserializer, Serializer as PythonSerializer,
|
||||
)
|
||||
from django.utils import six
|
||||
from django.utils.duration import duration_iso_string
|
||||
from django.utils.functional import Promise
|
||||
from django.utils.timezone import is_aware
|
||||
@ -77,11 +75,10 @@ def Deserializer(stream_or_string, **options):
|
||||
objects = json.loads(stream_or_string)
|
||||
for obj in PythonDeserializer(objects, **options):
|
||||
yield obj
|
||||
except GeneratorExit:
|
||||
except (GeneratorExit, DeserializationError):
|
||||
raise
|
||||
except Exception as e:
|
||||
# Map to deserializer error
|
||||
six.reraise(DeserializationError, DeserializationError(e), sys.exc_info()[2])
|
||||
except Exception as exc:
|
||||
raise DeserializationError() from exc
|
||||
|
||||
|
||||
class DjangoJSONEncoder(json.JSONEncoder):
|
||||
|
@ -6,7 +6,6 @@ Requires PyYaml (http://pyyaml.org/), but that's checked for in __init__.
|
||||
|
||||
import collections
|
||||
import decimal
|
||||
import sys
|
||||
from io import StringIO
|
||||
|
||||
import yaml
|
||||
@ -16,7 +15,6 @@ from django.core.serializers.python import (
|
||||
Deserializer as PythonDeserializer, Serializer as PythonSerializer,
|
||||
)
|
||||
from django.db import models
|
||||
from django.utils import six
|
||||
|
||||
# Use the C (faster) implementation if possible
|
||||
try:
|
||||
@ -78,8 +76,7 @@ def Deserializer(stream_or_string, **options):
|
||||
try:
|
||||
for obj in PythonDeserializer(yaml.load(stream, Loader=SafeLoader), **options):
|
||||
yield obj
|
||||
except GeneratorExit:
|
||||
except (GeneratorExit, DeserializationError):
|
||||
raise
|
||||
except Exception as e:
|
||||
# Map to deserializer error
|
||||
six.reraise(DeserializationError, DeserializationError(e), sys.exc_info()[2])
|
||||
except Exception as exc:
|
||||
raise DeserializationError() from exc
|
||||
|
@ -15,7 +15,6 @@ from wsgiref import simple_server
|
||||
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.core.wsgi import get_wsgi_application
|
||||
from django.utils import six
|
||||
from django.utils.module_loading import import_string
|
||||
|
||||
__all__ = ('WSGIServer', 'WSGIRequestHandler')
|
||||
@ -43,16 +42,11 @@ def get_internal_wsgi_application():
|
||||
|
||||
try:
|
||||
return import_string(app_path)
|
||||
except ImportError as e:
|
||||
msg = (
|
||||
"WSGI application '%(app_path)s' could not be loaded; "
|
||||
"Error importing module: '%(exception)s'" % ({
|
||||
'app_path': app_path,
|
||||
'exception': e,
|
||||
})
|
||||
)
|
||||
six.reraise(ImproperlyConfigured, ImproperlyConfigured(msg),
|
||||
sys.exc_info()[2])
|
||||
except ImportError as err:
|
||||
raise ImproperlyConfigured(
|
||||
"WSGI application '%s' could not be loaded; "
|
||||
"Error importing module." % app_path
|
||||
) from err
|
||||
|
||||
|
||||
def is_broken_pipe_error():
|
||||
|
@ -4,23 +4,21 @@ MySQL database backend for Django.
|
||||
Requires mysqlclient: https://pypi.python.org/pypi/mysqlclient/
|
||||
"""
|
||||
import re
|
||||
import sys
|
||||
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.db import utils
|
||||
from django.db.backends import utils as backend_utils
|
||||
from django.db.backends.base.base import BaseDatabaseWrapper
|
||||
from django.utils import six
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.safestring import SafeBytes, SafeText
|
||||
|
||||
try:
|
||||
import MySQLdb as Database
|
||||
except ImportError as e:
|
||||
except ImportError as err:
|
||||
raise ImproperlyConfigured(
|
||||
'Error loading MySQLdb module: %s.\n'
|
||||
'Did you install mysqlclient or MySQL-python?' % e
|
||||
)
|
||||
'Error loading MySQLdb module.\n'
|
||||
'Did you install mysqlclient or MySQL-python?'
|
||||
) from err
|
||||
|
||||
from MySQLdb.constants import CLIENT, FIELD_TYPE # isort:skip
|
||||
from MySQLdb.converters import conversions # isort:skip
|
||||
@ -88,7 +86,7 @@ class CursorWrapper:
|
||||
# Map some error codes to IntegrityError, since they seem to be
|
||||
# misclassified and Django would prefer the more logical place.
|
||||
if e.args[0] in self.codes_for_integrityerror:
|
||||
six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2])
|
||||
raise utils.IntegrityError(*tuple(e.args))
|
||||
raise
|
||||
|
||||
def executemany(self, query, args):
|
||||
@ -98,7 +96,7 @@ class CursorWrapper:
|
||||
# Map some error codes to IntegrityError, since they seem to be
|
||||
# misclassified and Django would prefer the more logical place.
|
||||
if e.args[0] in self.codes_for_integrityerror:
|
||||
six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2])
|
||||
raise utils.IntegrityError(*tuple(e.args))
|
||||
raise
|
||||
|
||||
def __getattr__(self, attr):
|
||||
|
@ -7,13 +7,11 @@ import datetime
|
||||
import decimal
|
||||
import os
|
||||
import platform
|
||||
import sys
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.db import utils
|
||||
from django.db.backends.base.base import BaseDatabaseWrapper
|
||||
from django.utils import six
|
||||
from django.utils.encoding import force_bytes, force_text
|
||||
from django.utils.functional import cached_property
|
||||
|
||||
@ -261,7 +259,7 @@ class DatabaseWrapper(BaseDatabaseWrapper):
|
||||
x = e.args[0]
|
||||
if hasattr(x, 'code') and hasattr(x, 'message') \
|
||||
and x.code == 2091 and 'ORA-02291' in x.message:
|
||||
six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2])
|
||||
raise utils.IntegrityError(*tuple(e.args))
|
||||
raise
|
||||
|
||||
# Oracle doesn't support releasing savepoints. But we fake them when query
|
||||
|
@ -1,10 +1,8 @@
|
||||
import sys
|
||||
import warnings
|
||||
from collections import deque
|
||||
from functools import total_ordering
|
||||
|
||||
from django.db.migrations.state import ProjectState
|
||||
from django.utils import six
|
||||
from django.utils.datastructures import OrderedSet
|
||||
|
||||
from .exceptions import CircularDependencyError, NodeNotFoundError
|
||||
@ -178,16 +176,12 @@ class MigrationGraph:
|
||||
replaced = set(replaced)
|
||||
try:
|
||||
replacement_node = self.node_map[replacement]
|
||||
except KeyError as exc:
|
||||
exc_value = NodeNotFoundError(
|
||||
except KeyError as err:
|
||||
raise NodeNotFoundError(
|
||||
"Unable to find replacement node %r. It was either never added"
|
||||
" to the migration graph, or has been removed." % (replacement, ),
|
||||
replacement
|
||||
)
|
||||
exc_value.__cause__ = exc
|
||||
if not hasattr(exc, '__traceback__'):
|
||||
exc.__traceback__ = sys.exc_info()[2]
|
||||
six.reraise(NodeNotFoundError, exc_value, sys.exc_info()[2])
|
||||
) from err
|
||||
for replaced_key in replaced:
|
||||
self.nodes.pop(replaced_key, None)
|
||||
replaced_node = self.node_map.pop(replaced_key, None)
|
||||
@ -218,16 +212,12 @@ class MigrationGraph:
|
||||
self.nodes.pop(replacement, None)
|
||||
try:
|
||||
replacement_node = self.node_map.pop(replacement)
|
||||
except KeyError as exc:
|
||||
exc_value = NodeNotFoundError(
|
||||
except KeyError as err:
|
||||
raise NodeNotFoundError(
|
||||
"Unable to remove replacement node %r. It was either never added"
|
||||
" to the migration graph, or has been removed already." % (replacement, ),
|
||||
replacement
|
||||
)
|
||||
exc_value.__cause__ = exc
|
||||
if not hasattr(exc, '__traceback__'):
|
||||
exc.__traceback__ = sys.exc_info()[2]
|
||||
six.reraise(NodeNotFoundError, exc_value, sys.exc_info()[2])
|
||||
) from err
|
||||
replaced_nodes = set()
|
||||
replaced_nodes_parents = set()
|
||||
for key in replaced:
|
||||
|
@ -6,7 +6,6 @@ from django.apps import apps
|
||||
from django.conf import settings
|
||||
from django.db.migrations.graph import MigrationGraph
|
||||
from django.db.migrations.recorder import MigrationRecorder
|
||||
from django.utils import six
|
||||
|
||||
from .exceptions import (
|
||||
AmbiguityError, BadMigrationError, InconsistentMigrationHistory,
|
||||
@ -256,7 +255,7 @@ class MigrationLoader:
|
||||
is_replaced = any(candidate in self.graph.nodes for candidate in candidates)
|
||||
if not is_replaced:
|
||||
tries = ', '.join('%s.%s' % c for c in candidates)
|
||||
exc_value = NodeNotFoundError(
|
||||
raise NodeNotFoundError(
|
||||
"Migration {0} depends on nonexistent node ('{1}', '{2}'). "
|
||||
"Django tried to replace migration {1}.{2} with any of [{3}] "
|
||||
"but wasn't able to because some of the replaced migrations "
|
||||
@ -264,11 +263,7 @@ class MigrationLoader:
|
||||
exc.origin, exc.node[0], exc.node[1], tries
|
||||
),
|
||||
exc.node
|
||||
)
|
||||
exc_value.__cause__ = exc
|
||||
if not hasattr(exc, '__traceback__'):
|
||||
exc.__traceback__ = sys.exc_info()[2]
|
||||
six.reraise(NodeNotFoundError, exc_value, sys.exc_info()[2])
|
||||
) from exc
|
||||
raise exc
|
||||
|
||||
def check_consistent_history(self, connection):
|
||||
|
@ -21,7 +21,7 @@ from django.db.models.fields import AutoField
|
||||
from django.db.models.functions import Trunc
|
||||
from django.db.models.query_utils import InvalidQuery, Q
|
||||
from django.db.models.sql.constants import CURSOR
|
||||
from django.utils import six, timezone
|
||||
from django.utils import timezone
|
||||
from django.utils.functional import cached_property, partition
|
||||
from django.utils.version import get_version
|
||||
|
||||
@ -498,7 +498,7 @@ class QuerySet:
|
||||
return self.get(**lookup), False
|
||||
except self.model.DoesNotExist:
|
||||
pass
|
||||
six.reraise(*exc_info)
|
||||
raise exc_info[0](exc_info[1]).with_traceback(exc_info[2])
|
||||
|
||||
def _extract_model_params(self, defaults, **kwargs):
|
||||
"""
|
||||
|
@ -5,7 +5,6 @@ from threading import local
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.utils import six
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.module_loading import import_string
|
||||
|
||||
@ -90,7 +89,7 @@ class DatabaseErrorWrapper:
|
||||
# the connection unusable.
|
||||
if dj_exc_type not in (DataError, IntegrityError):
|
||||
self.wrapper.errors_occurred = True
|
||||
six.reraise(dj_exc_type, dj_exc_value, traceback)
|
||||
raise dj_exc_value.with_traceback(traceback)
|
||||
|
||||
def __call__(self, func):
|
||||
# Note that we are intentionally not using @wraps here for performance
|
||||
|
@ -7,7 +7,6 @@ import datetime
|
||||
import itertools
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import uuid
|
||||
from decimal import Decimal, DecimalException
|
||||
from io import BytesIO
|
||||
@ -26,7 +25,7 @@ from django.forms.widgets import (
|
||||
SplitDateTimeWidget, SplitHiddenDateTimeWidget, TextInput, TimeInput,
|
||||
URLInput,
|
||||
)
|
||||
from django.utils import formats, six
|
||||
from django.utils import formats
|
||||
from django.utils.dateparse import parse_duration
|
||||
from django.utils.duration import duration_string
|
||||
from django.utils.encoding import force_text
|
||||
@ -650,12 +649,12 @@ class ImageField(FileField):
|
||||
# Pillow doesn't detect the MIME type of all formats. In those
|
||||
# cases, content_type will be None.
|
||||
f.content_type = Image.MIME.get(image.format)
|
||||
except Exception:
|
||||
except Exception as exc:
|
||||
# Pillow doesn't recognize it as an image.
|
||||
six.reraise(ValidationError, ValidationError(
|
||||
raise ValidationError(
|
||||
self.error_messages['invalid_image'],
|
||||
code='invalid_image',
|
||||
), sys.exc_info()[2])
|
||||
) from exc
|
||||
if hasattr(f, 'seek') and callable(f.seek):
|
||||
f.seek(0)
|
||||
return f
|
||||
|
@ -1,10 +1,9 @@
|
||||
import json
|
||||
import sys
|
||||
from collections import UserList
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ValidationError # backwards compatibility
|
||||
from django.utils import six, timezone
|
||||
from django.utils import timezone
|
||||
from django.utils.encoding import force_text
|
||||
from django.utils.html import escape, format_html, format_html_join, html_safe
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
@ -156,18 +155,14 @@ def from_current_timezone(value):
|
||||
current_timezone = timezone.get_current_timezone()
|
||||
try:
|
||||
return timezone.make_aware(value, current_timezone)
|
||||
except Exception:
|
||||
message = _(
|
||||
'%(datetime)s couldn\'t be interpreted '
|
||||
except Exception as exc:
|
||||
raise ValidationError(
|
||||
_('%(datetime)s couldn\'t be interpreted '
|
||||
'in time zone %(current_timezone)s; it '
|
||||
'may be ambiguous or it may not exist.'
|
||||
)
|
||||
params = {'datetime': value, 'current_timezone': current_timezone}
|
||||
six.reraise(ValidationError, ValidationError(
|
||||
message,
|
||||
'may be ambiguous or it may not exist.'),
|
||||
code='ambiguous_timezone',
|
||||
params=params,
|
||||
), sys.exc_info()[2])
|
||||
params={'datetime': value, 'current_timezone': current_timezone}
|
||||
) from exc
|
||||
return value
|
||||
|
||||
|
||||
|
@ -7,7 +7,6 @@ file upload handlers for processing.
|
||||
import base64
|
||||
import binascii
|
||||
import cgi
|
||||
import sys
|
||||
from urllib.parse import unquote
|
||||
|
||||
from django.conf import settings
|
||||
@ -17,7 +16,6 @@ from django.core.exceptions import (
|
||||
from django.core.files.uploadhandler import (
|
||||
SkipFile, StopFutureHandlers, StopUpload,
|
||||
)
|
||||
from django.utils import six
|
||||
from django.utils.datastructures import MultiValueDict
|
||||
from django.utils.encoding import force_text
|
||||
from django.utils.text import unescape_entities
|
||||
@ -247,10 +245,9 @@ class MultiPartParser:
|
||||
|
||||
try:
|
||||
chunk = base64.b64decode(stripped_chunk)
|
||||
except Exception as e:
|
||||
except Exception as exc:
|
||||
# Since this is only a chunk, any error is an unfixable error.
|
||||
msg = "Could not decode base64 data: %r" % e
|
||||
six.reraise(MultiPartParserError, MultiPartParserError(msg), sys.exc_info()[2])
|
||||
raise MultiPartParserError("Could not decode base64 data.") from exc
|
||||
|
||||
for i, handler in enumerate(handlers):
|
||||
chunk_length = len(chunk)
|
||||
|
@ -1,6 +1,5 @@
|
||||
import copy
|
||||
import re
|
||||
import sys
|
||||
from io import BytesIO
|
||||
from itertools import chain
|
||||
from urllib.parse import quote, urlencode, urljoin, urlsplit
|
||||
@ -12,7 +11,6 @@ from django.core.exceptions import (
|
||||
)
|
||||
from django.core.files import uploadhandler
|
||||
from django.http.multipartparser import MultiPartParser, MultiPartParserError
|
||||
from django.utils import six
|
||||
from django.utils.datastructures import ImmutableList, MultiValueDict
|
||||
from django.utils.encoding import escape_uri_path, force_bytes, iri_to_uri
|
||||
from django.utils.http import is_same_domain, limited_parse_qsl
|
||||
@ -263,7 +261,7 @@ class HttpRequest:
|
||||
try:
|
||||
self._body = self.read()
|
||||
except IOError as e:
|
||||
six.reraise(UnreadablePostError, UnreadablePostError(*e.args), sys.exc_info()[2])
|
||||
raise UnreadablePostError(*e.args) from e
|
||||
self._stream = BytesIO(self._body)
|
||||
return self._body
|
||||
|
||||
@ -322,14 +320,14 @@ class HttpRequest:
|
||||
try:
|
||||
return self._stream.read(*args, **kwargs)
|
||||
except IOError as e:
|
||||
six.reraise(UnreadablePostError, UnreadablePostError(*e.args), sys.exc_info()[2])
|
||||
raise UnreadablePostError(*e.args) from e
|
||||
|
||||
def readline(self, *args, **kwargs):
|
||||
self._read_started = True
|
||||
try:
|
||||
return self._stream.readline(*args, **kwargs)
|
||||
except IOError as e:
|
||||
six.reraise(UnreadablePostError, UnreadablePostError(*e.args), sys.exc_info()[2])
|
||||
raise UnreadablePostError(*e.args) from e
|
||||
|
||||
def xreadlines(self):
|
||||
while True:
|
||||
|
@ -1,4 +1,3 @@
|
||||
import sys
|
||||
from importlib import import_module
|
||||
from pkgutil import walk_packages
|
||||
|
||||
@ -8,7 +7,6 @@ from django.template import TemplateDoesNotExist
|
||||
from django.template.context import make_context
|
||||
from django.template.engine import Engine
|
||||
from django.template.library import InvalidTemplateLibrary
|
||||
from django.utils import six
|
||||
|
||||
from .base import BaseEngine
|
||||
|
||||
@ -83,7 +81,7 @@ def reraise(exc, backend):
|
||||
Reraise TemplateDoesNotExist while maintaining template debug information.
|
||||
"""
|
||||
new = copy_exception(exc, backend)
|
||||
six.reraise(exc.__class__, new, sys.exc_info()[2])
|
||||
raise new from exc
|
||||
|
||||
|
||||
def get_installed_libraries():
|
||||
|
@ -1,10 +1,7 @@
|
||||
import sys
|
||||
|
||||
import jinja2
|
||||
|
||||
from django.conf import settings
|
||||
from django.template import TemplateDoesNotExist, TemplateSyntaxError
|
||||
from django.utils import six
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.module_loading import import_string
|
||||
|
||||
@ -41,15 +38,11 @@ class Jinja2(BaseEngine):
|
||||
try:
|
||||
return Template(self.env.get_template(template_name), self)
|
||||
except jinja2.TemplateNotFound as exc:
|
||||
six.reraise(
|
||||
TemplateDoesNotExist,
|
||||
TemplateDoesNotExist(exc.name, backend=self),
|
||||
sys.exc_info()[2],
|
||||
)
|
||||
raise TemplateDoesNotExist(exc.name, backend=self) from exc
|
||||
except jinja2.TemplateSyntaxError as exc:
|
||||
new = TemplateSyntaxError(exc.args)
|
||||
new.template_debug = get_exception_info(exc)
|
||||
six.reraise(TemplateSyntaxError, new, sys.exc_info()[2])
|
||||
raise new from exc
|
||||
|
||||
@cached_property
|
||||
def template_context_processors(self):
|
||||
|
@ -1,10 +1,8 @@
|
||||
import sys
|
||||
|
||||
from django.conf import settings
|
||||
from django.template import Library, Node, TemplateSyntaxError, Variable
|
||||
from django.template.base import TOKEN_TEXT, TOKEN_VAR, render_value_in_context
|
||||
from django.template.defaulttags import token_kwargs
|
||||
from django.utils import six, translation
|
||||
from django.utils import translation
|
||||
from django.utils.safestring import SafeData, mark_safe
|
||||
|
||||
register = Library()
|
||||
@ -388,8 +386,9 @@ def do_translate(parser, token):
|
||||
try:
|
||||
value = remaining.pop(0)
|
||||
except IndexError:
|
||||
msg = "No argument provided to the '%s' tag for the context option." % bits[0]
|
||||
six.reraise(TemplateSyntaxError, TemplateSyntaxError(msg), sys.exc_info()[2])
|
||||
raise TemplateSyntaxError(
|
||||
"No argument provided to the '%s' tag for the context option." % bits[0]
|
||||
)
|
||||
if value in invalid_context:
|
||||
raise TemplateSyntaxError(
|
||||
"Invalid argument '%s' provided to the '%s' tag for the context option" % (value, bits[0]),
|
||||
@ -399,8 +398,9 @@ def do_translate(parser, token):
|
||||
try:
|
||||
value = remaining.pop(0)
|
||||
except IndexError:
|
||||
msg = "No argument provided to the '%s' tag for the as option." % bits[0]
|
||||
six.reraise(TemplateSyntaxError, TemplateSyntaxError(msg), sys.exc_info()[2])
|
||||
raise TemplateSyntaxError(
|
||||
"No argument provided to the '%s' tag for the as option." % bits[0]
|
||||
)
|
||||
asvar = value
|
||||
else:
|
||||
raise TemplateSyntaxError(
|
||||
@ -481,18 +481,18 @@ def do_block_translate(parser, token):
|
||||
value = remaining_bits.pop(0)
|
||||
value = parser.compile_filter(value)
|
||||
except Exception:
|
||||
msg = (
|
||||
'"context" in %r tag expected '
|
||||
'exactly one argument.') % bits[0]
|
||||
six.reraise(TemplateSyntaxError, TemplateSyntaxError(msg), sys.exc_info()[2])
|
||||
raise TemplateSyntaxError(
|
||||
'"context" in %r tag expected exactly one argument.' % bits[0]
|
||||
)
|
||||
elif option == "trimmed":
|
||||
value = True
|
||||
elif option == "asvar":
|
||||
try:
|
||||
value = remaining_bits.pop(0)
|
||||
except IndexError:
|
||||
msg = "No argument provided to the '%s' tag for the asvar option." % bits[0]
|
||||
six.reraise(TemplateSyntaxError, TemplateSyntaxError(msg), sys.exc_info()[2])
|
||||
raise TemplateSyntaxError(
|
||||
"No argument provided to the '%s' tag for the asvar option." % bits[0]
|
||||
)
|
||||
asvar = value
|
||||
else:
|
||||
raise TemplateSyntaxError('Unknown argument for %r tag: %r.' %
|
||||
|
@ -20,7 +20,6 @@ from django.template import TemplateDoesNotExist
|
||||
from django.test import signals
|
||||
from django.test.utils import ContextList
|
||||
from django.urls import resolve
|
||||
from django.utils import six
|
||||
from django.utils.encoding import force_bytes, uri_to_iri
|
||||
from django.utils.functional import SimpleLazyObject, curry
|
||||
from django.utils.http import urlencode
|
||||
@ -494,7 +493,7 @@ class Client(RequestFactory):
|
||||
if self.exc_info:
|
||||
exc_info = self.exc_info
|
||||
self.exc_info = None
|
||||
six.reraise(*exc_info)
|
||||
raise exc_info[0](exc_info[1]).with_traceback(exc_info[2])
|
||||
|
||||
# Save the client and request that stimulated the response.
|
||||
response.client = self
|
||||
|
@ -40,7 +40,6 @@ import _thread
|
||||
from django.apps import apps
|
||||
from django.conf import settings
|
||||
from django.core.signals import request_finished
|
||||
from django.utils import six
|
||||
|
||||
# This import does nothing, but it's necessary to avoid some race conditions
|
||||
# in the threading module. See http://code.djangoproject.com/ticket/2330 .
|
||||
@ -247,7 +246,7 @@ def check_errors(fn):
|
||||
def raise_last_exception():
|
||||
global _exception
|
||||
if _exception is not None:
|
||||
six.reraise(*_exception)
|
||||
raise _exception[0](_exception[1]).with_traceback(_exception[2])
|
||||
|
||||
|
||||
def ensure_echo_on():
|
||||
|
@ -2,7 +2,6 @@ import base64
|
||||
import calendar
|
||||
import datetime
|
||||
import re
|
||||
import sys
|
||||
import unicodedata
|
||||
import warnings
|
||||
from binascii import Error as BinasciiError
|
||||
@ -13,7 +12,6 @@ from urllib.parse import (
|
||||
)
|
||||
|
||||
from django.core.exceptions import TooManyFieldsSent
|
||||
from django.utils import six
|
||||
from django.utils.datastructures import MultiValueDict
|
||||
from django.utils.deprecation import RemovedInDjango21Warning
|
||||
from django.utils.encoding import force_bytes, force_str, force_text
|
||||
@ -163,8 +161,8 @@ def parse_http_date(date):
|
||||
sec = int(m.group('sec'))
|
||||
result = datetime.datetime(year, month, day, hour, min, sec)
|
||||
return calendar.timegm(result.utctimetuple())
|
||||
except Exception:
|
||||
six.reraise(ValueError, ValueError("%r is not a valid date" % date), sys.exc_info()[2])
|
||||
except Exception as exc:
|
||||
raise ValueError("%r is not a valid date" % date) from exc
|
||||
|
||||
|
||||
def parse_http_date_safe(date):
|
||||
|
@ -1,11 +1,8 @@
|
||||
import copy
|
||||
import os
|
||||
import sys
|
||||
from importlib import import_module
|
||||
from importlib.util import find_spec as importlib_find
|
||||
|
||||
from django.utils import six
|
||||
|
||||
|
||||
def import_string(dotted_path):
|
||||
"""
|
||||
@ -14,18 +11,17 @@ def import_string(dotted_path):
|
||||
"""
|
||||
try:
|
||||
module_path, class_name = dotted_path.rsplit('.', 1)
|
||||
except ValueError:
|
||||
msg = "%s doesn't look like a module path" % dotted_path
|
||||
six.reraise(ImportError, ImportError(msg), sys.exc_info()[2])
|
||||
except ValueError as err:
|
||||
raise ImportError("%s doesn't look like a module path" % dotted_path) from err
|
||||
|
||||
module = import_module(module_path)
|
||||
|
||||
try:
|
||||
return getattr(module, class_name)
|
||||
except AttributeError:
|
||||
msg = 'Module "%s" does not define a "%s" attribute/class' % (
|
||||
except AttributeError as err:
|
||||
raise ImportError('Module "%s" does not define a "%s" attribute/class' % (
|
||||
module_path, class_name)
|
||||
six.reraise(ImportError, ImportError(msg), sys.exc_info()[2])
|
||||
) from err
|
||||
|
||||
|
||||
def autodiscover_modules(*args, **kwargs):
|
||||
|
@ -1,9 +1,7 @@
|
||||
import sys
|
||||
import unittest
|
||||
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.db import ProgrammingError
|
||||
from django.utils import six
|
||||
|
||||
try:
|
||||
from django.contrib.gis.db.backends.postgis.operations import PostGISOperations
|
||||
@ -19,7 +17,7 @@ except ImproperlyConfigured as e:
|
||||
if e.args and e.args[0].startswith('Could not import user-defined GEOMETRY_BACKEND'):
|
||||
HAS_POSTGRES = False
|
||||
else:
|
||||
six.reraise(*sys.exc_info())
|
||||
raise
|
||||
|
||||
|
||||
if HAS_POSTGRES:
|
||||
|
Loading…
Reference in New Issue
Block a user