Skip to content

Commit

Permalink
[py3] Replace filter/lambda by list comprehensions
Browse files Browse the repository at this point in the history
This is more idiomatic and avoids returning a list on Python 2 and
an iterator on Python 3.
  • Loading branch information
aaugustin committed Aug 14, 2012
1 parent 5b27e6f commit 0c198b8
Show file tree
Hide file tree
Showing 5 changed files with 6 additions and 5 deletions.
2 changes: 1 addition & 1 deletion django/core/management/commands/syncdb.py
Expand Up @@ -75,7 +75,7 @@ def model_installed(model):
(opts.auto_created and converter(opts.auto_created._meta.db_table) in tables))

manifest = SortedDict(
(app_name, filter(model_installed, model_list))
(app_name, list(filter(model_installed, model_list)))
for app_name, model_list in all_models
)

Expand Down
2 changes: 1 addition & 1 deletion django/db/models/options.py
Expand Up @@ -387,7 +387,7 @@ def get_all_related_objects_with_model(self, local_only=False,
predicates.append(lambda k, v: not k.field.rel.is_hidden())
cache = (self._related_objects_proxy_cache if include_proxy_eq
else self._related_objects_cache)
return filter(lambda t: all([p(*t) for p in predicates]), cache.items())
return [t for t in cache.items() if all(p(*t) for p in predicates)]

def _fill_related_objects_cache(self):
cache = SortedDict()
Expand Down
2 changes: 1 addition & 1 deletion django/db/models/query.py
Expand Up @@ -1107,7 +1107,7 @@ def iterator(self):
# If a field list has been specified, use it. Otherwise, use the
# full list of fields, including extras and aggregates.
if self._fields:
fields = list(self._fields) + filter(lambda f: f not in self._fields, aggregate_names)
fields = list(self._fields) + [f for f in aggregate_names if f not in self._fields]
else:
fields = names

Expand Down
3 changes: 2 additions & 1 deletion django/utils/autoreload.py
Expand Up @@ -54,7 +54,8 @@

def code_changed():
global _mtimes, _win
for filename in filter(lambda v: v, map(lambda m: getattr(m, "__file__", None), sys.modules.values())):
filenames = [getattr(m, "__file__", None) for m in sys.modules.values()]
for filename in filter(None, filenames):
if filename.endswith(".pyc") or filename.endswith(".pyo"):
filename = filename[:-1]
if filename.endswith("$py.class"):
Expand Down
2 changes: 1 addition & 1 deletion django/utils/ipv6.py
Expand Up @@ -263,6 +263,6 @@ def _is_shorthand_ip(ip_str):
"""
if ip_str.count('::') == 1:
return True
if filter(lambda x: len(x) < 4, ip_str.split(':')):
if any(len(x) < 4 for x in ip_str.split(':')):
return True
return False

0 comments on commit 0c198b8

Please sign in to comment.