From 3dcc3516914f25b58bde9312831f1d94b05cdb53 Mon Sep 17 00:00:00 2001 From: Vytis Banaitis Date: Fri, 24 Feb 2017 03:06:01 +0200 Subject: [PATCH] Refs #23919 -- Used yield from. --- django/contrib/gis/geos/mutable_list.py | 3 +-- django/contrib/staticfiles/storage.py | 4 +--- django/contrib/staticfiles/utils.py | 3 +-- django/core/management/commands/dumpdata.py | 3 +-- django/core/serializers/json.py | 3 +-- django/core/serializers/pyyaml.py | 3 +-- django/db/backends/base/creation.py | 3 +-- django/db/backends/utils.py | 3 +-- django/db/models/expressions.py | 3 +-- django/forms/fields.py | 3 +-- django/forms/widgets.py | 6 ++---- django/template/base.py | 3 +-- django/template/context.py | 6 ++---- django/template/defaulttags.py | 9 +++------ django/template/loaders/cached.py | 3 +-- django/test/client.py | 3 +-- tests/model_forms/models.py | 3 +-- tests/queries/tests.py | 3 +-- tests/template_tests/filter_tests/test_unordered_list.py | 8 ++------ 19 files changed, 24 insertions(+), 51 deletions(-) diff --git a/django/contrib/gis/geos/mutable_list.py b/django/contrib/gis/geos/mutable_list.py index fa5faccd1e..867eee7952 100644 --- a/django/contrib/gis/geos/mutable_list.py +++ b/django/contrib/gis/geos/mutable_list.py @@ -312,8 +312,7 @@ class ListMixin: def newItems(): for i in range(origLen + 1): if i == start: - for val in valueList: - yield val + yield from valueList if i < origLen: if i < start or i >= stop: diff --git a/django/contrib/staticfiles/storage.py b/django/contrib/staticfiles/storage.py index 956cf6810f..ac430df40d 100644 --- a/django/contrib/staticfiles/storage.py +++ b/django/contrib/staticfiles/storage.py @@ -402,9 +402,7 @@ class ManifestFilesMixin(HashedFilesMixin): def post_process(self, *args, **kwargs): self.hashed_files = OrderedDict() - all_post_processed = super().post_process(*args, **kwargs) - for post_processed in all_post_processed: - yield post_processed + yield from super().post_process(*args, **kwargs) self.save_manifest() def save_manifest(self): diff --git a/django/contrib/staticfiles/utils.py b/django/contrib/staticfiles/utils.py index fd530d7167..67a7cb6d9e 100644 --- a/django/contrib/staticfiles/utils.py +++ b/django/contrib/staticfiles/utils.py @@ -37,8 +37,7 @@ def get_files(storage, ignore_patterns=None, location=''): continue if location: dir = os.path.join(location, dir) - for fn in get_files(storage, ignore_patterns, dir): - yield fn + yield from get_files(storage, ignore_patterns, dir) def check_settings(base_url=None): diff --git a/django/core/management/commands/dumpdata.py b/django/core/management/commands/dumpdata.py index 3192241a5f..581c86ef63 100644 --- a/django/core/management/commands/dumpdata.py +++ b/django/core/management/commands/dumpdata.py @@ -166,8 +166,7 @@ class Command(BaseCommand): if count_only: yield queryset.order_by().count() else: - for obj in queryset.iterator(): - yield obj + yield from queryset.iterator() try: self.stdout.ending = None diff --git a/django/core/serializers/json.py b/django/core/serializers/json.py index 31f065a831..af5c74d9fd 100644 --- a/django/core/serializers/json.py +++ b/django/core/serializers/json.py @@ -69,8 +69,7 @@ def Deserializer(stream_or_string, **options): stream_or_string = stream_or_string.decode() try: objects = json.loads(stream_or_string) - for obj in PythonDeserializer(objects, **options): - yield obj + yield from PythonDeserializer(objects, **options) except (GeneratorExit, DeserializationError): raise except Exception as exc: diff --git a/django/core/serializers/pyyaml.py b/django/core/serializers/pyyaml.py index b65c9ec3a8..34fc122311 100644 --- a/django/core/serializers/pyyaml.py +++ b/django/core/serializers/pyyaml.py @@ -70,8 +70,7 @@ def Deserializer(stream_or_string, **options): else: stream = stream_or_string try: - for obj in PythonDeserializer(yaml.load(stream, Loader=SafeLoader), **options): - yield obj + yield from PythonDeserializer(yaml.load(stream, Loader=SafeLoader), **options) except (GeneratorExit, DeserializationError): raise except Exception as exc: diff --git a/django/db/backends/base/creation.py b/django/db/backends/base/creation.py index a291f43f55..64a1f06949 100644 --- a/django/db/backends/base/creation.py +++ b/django/db/backends/base/creation.py @@ -113,8 +113,7 @@ class BaseDatabaseCreation: if (model._meta.can_migrate(self.connection) and router.allow_migrate_model(self.connection.alias, model)): queryset = model._default_manager.using(self.connection.alias).order_by(model._meta.pk.name) - for obj in queryset.iterator(): - yield obj + yield from queryset.iterator() # Serialize to a string out = StringIO() serializers.serialize("json", get_objects(), indent=None, stream=out) diff --git a/django/db/backends/utils.py b/django/db/backends/utils.py index 7cb8228226..81eb8693ac 100644 --- a/django/db/backends/utils.py +++ b/django/db/backends/utils.py @@ -28,8 +28,7 @@ class CursorWrapper: def __iter__(self): with self.db.wrap_database_errors: - for item in self.cursor: - yield item + yield from self.cursor def __enter__(self): return self diff --git a/django/db/models/expressions.py b/django/db/models/expressions.py index 07d2b904a8..cfa23ccd2d 100644 --- a/django/db/models/expressions.py +++ b/django/db/models/expressions.py @@ -337,8 +337,7 @@ class BaseExpression: yield self for expr in self.get_source_expressions(): if expr: - for inner_expr in expr.flatten(): - yield inner_expr + yield from expr.flatten() class Expression(BaseExpression, Combinable): diff --git a/django/forms/fields.py b/django/forms/fields.py index 0f120378a1..e42c1597c7 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -742,8 +742,7 @@ class CallableChoiceIterator: self.choices_func = choices_func def __iter__(self): - for e in self.choices_func(): - yield e + yield from self.choices_func() class ChoiceField(Field): diff --git a/django/forms/widgets.py b/django/forms/widgets.py index 164b0c38c1..7db4c69aad 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -539,14 +539,12 @@ class ChoiceWidget(Widget): options from a BoundField for choice widgets. """ value = self.format_value(value) - for option in self.options(name, value, attrs): - yield option + yield from self.options(name, value, attrs) def options(self, name, value, attrs=None): """Yield a flat list of options for this widgets.""" for group in self.optgroups(name, value, attrs): - for option in group[1]: - yield option + yield from group[1] def optgroups(self, name, value, attrs=None): """Return a list of optgroups for this widget.""" diff --git a/django/template/base.py b/django/template/base.py index 92ce5c2164..930b6922f7 100644 --- a/django/template/base.py +++ b/django/template/base.py @@ -162,8 +162,7 @@ class Template: def __iter__(self): for node in self.nodelist: - for subnode in node: - yield subnode + yield from node def _render(self, context): return self.nodelist.render(context) diff --git a/django/template/context.py b/django/template/context.py index 9f1fcadf72..8cb82ed80f 100644 --- a/django/template/context.py +++ b/django/template/context.py @@ -43,8 +43,7 @@ class BaseContext: return repr(self.dicts) def __iter__(self): - for d in reversed(self.dicts): - yield d + yield from reversed(self.dicts) def push(self, *args, **kwargs): dicts = [] @@ -192,8 +191,7 @@ class RenderContext(BaseContext): template = None def __iter__(self): - for d in self.dicts[-1]: - yield d + yield from self.dicts[-1] def __contains__(self, key): return key in self.dicts[-1] diff --git a/django/template/defaulttags.py b/django/template/defaulttags.py index f4fead5f64..e2be85b9c0 100644 --- a/django/template/defaulttags.py +++ b/django/template/defaulttags.py @@ -148,10 +148,8 @@ class ForNode(Node): reversed_text) def __iter__(self): - for node in self.nodelist_loop: - yield node - for node in self.nodelist_empty: - yield node + yield from self.nodelist_loop + yield from self.nodelist_empty def render(self, context): if 'forloop' in context: @@ -297,8 +295,7 @@ class IfNode(Node): def __iter__(self): for _, nodelist in self.conditions_nodelists: - for node in nodelist: - yield node + yield from nodelist @property def nodelist(self): diff --git a/django/template/loaders/cached.py b/django/template/loaders/cached.py index af401827a5..20abe21b35 100644 --- a/django/template/loaders/cached.py +++ b/django/template/loaders/cached.py @@ -63,8 +63,7 @@ class Loader(BaseLoader): def get_template_sources(self, template_name): for loader in self.loaders: - for origin in loader.get_template_sources(template_name): - yield origin + yield from loader.get_template_sources(template_name) def cache_key(self, template_name, skip=None): """ diff --git a/django/test/client.py b/django/test/client.py index 43eb09dd7b..87b59af363 100644 --- a/django/test/client.py +++ b/django/test/client.py @@ -83,8 +83,7 @@ class FakePayload: def closing_iterator_wrapper(iterable, close): try: - for item in iterable: - yield item + yield from iterable finally: request_finished.disconnect(close_old_connections) close() # will fire request_finished diff --git a/tests/model_forms/models.py b/tests/model_forms/models.py index 6ed8b2ca06..cf5ca49cf6 100644 --- a/tests/model_forms/models.py +++ b/tests/model_forms/models.py @@ -348,8 +348,7 @@ class Colour(models.Model): name = models.CharField(max_length=50) def __iter__(self): - for number in range(5): - yield number + yield from range(5) def __str__(self): return self.name diff --git a/tests/queries/tests.py b/tests/queries/tests.py index c4181a10b5..86e8405822 100644 --- a/tests/queries/tests.py +++ b/tests/queries/tests.py @@ -787,8 +787,7 @@ class Queries1Tests(TestCase): n_obj = Note.objects.all()[0] def g(): - for i in [n_obj.pk]: - yield i + yield n_obj.pk self.assertQuerysetEqual(Note.objects.filter(pk__in=f()), []) self.assertEqual(list(Note.objects.filter(pk__in=g())), [n_obj]) diff --git a/tests/template_tests/filter_tests/test_unordered_list.py b/tests/template_tests/filter_tests/test_unordered_list.py index b4d624345b..5e100d5a68 100644 --- a/tests/template_tests/filter_tests/test_unordered_list.py +++ b/tests/template_tests/filter_tests/test_unordered_list.py @@ -103,9 +103,7 @@ class FunctionTests(SimpleTestCase): ) def item_generator(): - yield a - yield b - yield c + yield from (a, b, c) self.assertEqual( unordered_list(item_generator()), @@ -129,9 +127,7 @@ class FunctionTests(SimpleTestCase): ) def item_generator(): - yield a - yield b - yield c + yield from (a, b, c) self.assertEqual( unordered_list(item_generator(), autoescape=False),