diff options
| author | Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> | 2024-06-28 13:35:58 +0200 |
|---|---|---|
| committer | Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> | 2024-06-28 14:57:41 +0200 |
| commit | 8cfcf9a30edd3ec0447af6a493b16d21e298e4e0 (patch) | |
| tree | 249e206f96ef977238e8d4055febaf295462704c /django/contrib/admin/checks.py | |
| parent | 8719a6181ee6e81282822598e7f14d2d5c9b4c3c (diff) | |
Reverted "Fixed #35564 -- Improved readability of subclass identification."
This reverts commit f0d05a747f7a099e6c6bc58c42a787546d2212e7 due to a performance regression.
Diffstat (limited to 'django/contrib/admin/checks.py')
| -rw-r--r-- | django/contrib/admin/checks.py | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/django/contrib/admin/checks.py b/django/contrib/admin/checks.py index 9937273c28..94e700cf68 100644 --- a/django/contrib/admin/checks.py +++ b/django/contrib/admin/checks.py @@ -1,5 +1,4 @@ import collections -import contextlib from itertools import chain from django.apps import apps @@ -22,9 +21,10 @@ def _issubclass(cls, classinfo): issubclass() variant that doesn't raise an exception if cls isn't a class. """ - with contextlib.suppress(TypeError): + try: return issubclass(cls, classinfo) - return False + except TypeError: + return False def _contains_subclass(class_path, candidate_paths): @@ -34,9 +34,13 @@ def _contains_subclass(class_path, candidate_paths): """ cls = import_string(class_path) for path in candidate_paths: - with contextlib.suppress(ImportError, TypeError): - if issubclass(import_string(path), cls): - return True + try: + candidate_cls = import_string(path) + except ImportError: + # ImportErrors are raised elsewhere. + continue + if _issubclass(candidate_cls, cls): + return True return False |
