Unwrap for expressions in comprehensions, too.

This commit is contained in:
Ryan Stein 2017-11-02 22:52:16 -04:00
parent f2e800ddf1
commit 7d524ac328
25 changed files with 54 additions and 54 deletions

View file

@ -2058,7 +2058,7 @@ class CmdExamine(ObjManipCommand):
except (TypeError, AttributeError):
# an error means we are merging an object without a session
pass
all_cmdsets = [cmdset for cmdset in list(dict(all_cmdsets).values())]
all_cmdsets = [cmdset for cmdset in dict(all_cmdsets).values()]
all_cmdsets.sort(key=lambda x: x.priority, reverse=True)
string += "\n|wMerged Cmdset(s)|n:\n %s" % ("\n ".join("%s [%s] (%s, prio %s)" % (
cmdset.path, cmdset.key, cmdset.mergetype, cmdset.priority) for cmdset in all_cmdsets))

View file

@ -799,7 +799,7 @@ class CmdServerLoad(COMMAND_DEFAULT_CLASS):
# object cache count (note that sys.getsiseof is not called so this works for pypy too.
total_num, cachedict = _IDMAPPER.cache_size()
sorted_cache = sorted([(key, num) for key, num in list(cachedict.items()) if num > 0],
sorted_cache = sorted([(key, num) for key, num in cachedict.items() if num > 0],
key=lambda tup: tup[1], reverse=True)
memtable = EvTable("entity name", "number", "idmapper %", align="l")
for tup in sorted_cache:

View file

@ -398,7 +398,7 @@ class CmdExtendedDesc(default_cmds.CmdDesc):
# No args given. Return all details on location
string = "|wDetails on %s|n:" % location
details = "\n".join(" |w%s|n: %s"
% (key, utils.crop(text)) for key, text in list(location.db.details.items()))
% (key, utils.crop(text)) for key, text in location.db.details.items())
caller.msg("%s\n%s" % (string, details) if details else "%s None." % string)
return
if not self.rhs:

View file

@ -503,7 +503,7 @@ class CmdCallback(COMMAND_DEFAULT_CLASS):
obj = self.obj
callback_name = self.callback_name
handler = self.handler
tasks = [(k, v[0], v[1], v[2]) for k, v in list(handler.db.tasks.items())]
tasks = [(k, v[0], v[1], v[2]) for k, v in handler.db.tasks.items()]
if obj:
tasks = [task for task in tasks if task[2] is obj]
if callback_name:

View file

@ -436,7 +436,7 @@ class EventHandler(DefaultScript):
type(obj), variable, i))
return False
else:
locals = {key: value for key, value in list(locals.items())}
locals = {key: value for key, value in locals.items()}
callbacks = self.get_callbacks(obj).get(callback_name, [])
if event:

View file

@ -116,7 +116,7 @@ def get_next_wait(format):
units = ["min", "hour", "day", "month", "year"]
elif calendar == "custom":
rsu = custom_rsu
back = dict([(value, name) for name, value in list(UNITS.items())])
back = dict([(value, name) for name, value in UNITS.items()])
sorted_units = sorted(back.items())
del sorted_units[0]
units = [n for v, n in sorted_units]

View file

@ -254,7 +254,7 @@ class LanguageHandler(DefaultScript):
if manual_translations:
# update with manual translations
translation.update(dict((key.lower(), value.lower()) for key, value in list(manual_translations.items())))
translation.update(dict((key.lower(), value.lower()) for key, value in manual_translations.items()))
# store data
storage = {"translation": translation,

View file

@ -531,11 +531,11 @@ def send_emote(sender, receivers, emote, anonymous_add="first"):
try:
recog_get = receiver.recog.get
receiver_sdesc_mapping = dict((ref, process_recog(recog_get(obj), obj)) for ref, obj in list(obj_mapping.items()))
receiver_sdesc_mapping = dict((ref, process_recog(recog_get(obj), obj)) for ref, obj in obj_mapping.items())
except AttributeError:
receiver_sdesc_mapping = dict((ref, process_sdesc(obj.sdesc.get(), obj)
if hasattr(obj, "sdesc") else process_sdesc(obj.key, obj))
for ref, obj in list(obj_mapping.items()))
for ref, obj in obj_mapping.items())
# make sure receiver always sees their real name
rkey = "#%i" % receiver.id
if rkey in receiver_sdesc_mapping:
@ -684,9 +684,9 @@ class RecogHandler(object):
obj2regex = self.obj.attributes.get("_recog_obj2regex", default={})
obj2recog = self.obj.attributes.get("_recog_obj2recog", default={})
self.obj2regex = dict((obj, re.compile(regex, _RE_FLAGS))
for obj, regex in list(obj2regex.items()) if obj)
for obj, regex in obj2regex.items() if obj)
self.obj2recog = dict((obj, recog)
for obj, recog in list(obj2recog.items()) if obj)
for obj, recog in obj2recog.items() if obj)
def add(self, obj, recog, max_length=60):
"""

View file

@ -269,7 +269,7 @@ class LockHandler(object):
"""
Store locks to obj
"""
self.obj.lock_storage = ";".join([tup[2] for tup in list(self.locks.values())])
self.obj.lock_storage = ";".join([tup[2] for tup in self.locks.values()])
def cache_lock_bypass(self, obj):
"""

View file

@ -615,7 +615,7 @@ class DefaultObject(with_metaclass(TypeclassBase, ObjectDB)):
if mapping:
substitutions = {t: sub.get_display_name(obj)
if hasattr(sub, 'get_display_name')
else str(sub) for t, sub in list(mapping.items())}
else str(sub) for t, sub in mapping.items()}
outmessage = inmessage.format(**substitutions)
else:
outmessage = inmessage

View file

@ -386,10 +386,10 @@ class TickerHandler(object):
if self.ticker_storage:
# get the current times so the tickers can be restarted with a delay later
start_delays = dict((interval, ticker.task.next_call_time())
for interval, ticker in list(self.ticker_pool.tickers.items()))
for interval, ticker in self.ticker_pool.tickers.items())
# remove any subscriptions that lost its object in the interim
to_save = {store_key: (args, kwargs) for store_key, (args, kwargs) in list(self.ticker_storage.items())
to_save = {store_key: (args, kwargs) for store_key, (args, kwargs) in self.ticker_storage.items()
if ((store_key[1] and ("_obj" in kwargs and kwargs["_obj"].pk) and
hasattr(kwargs["_obj"], store_key[1])) or # a valid method with existing obj
store_key[2])} # a path given

View file

@ -993,7 +993,7 @@ def list_settings(keys):
# a specific key
table = evtable.EvTable(width=131)
keys = [key.upper() for key in keys]
confs = dict((key, var) for key, var in list(evsettings.__dict__.items())
confs = dict((key, var) for key, var in evsettings.__dict__.items()
if key in keys)
for key, val in confs.items():
table.add_row(key, str(val))

View file

@ -141,7 +141,7 @@ class PortalSessionHandler(SessionHandler):
if self.portal.amp_protocol:
# we only send sessdata that should not have changed
# at the server level at this point
sessdata = dict((key, val) for key, val in list(sessdata.items()) if key in ("protocol_key",
sessdata = dict((key, val) for key, val in sessdata.items() if key in ("protocol_key",
"address",
"sessid",
"csessid",

View file

@ -131,7 +131,7 @@ def _server_maintenance():
# handle idle timeouts
if _IDLE_TIMEOUT > 0:
reason = _("idle timeout exceeded")
for session in (sess for sess in list(SESSIONS.values())
for session in (sess for sess in SESSIONS.values()
if (now - sess.cmd_last) > _IDLE_TIMEOUT):
if not session.account or not \
session.account.access(session.account, "noidletimeout", default=False):

View file

@ -141,7 +141,7 @@ class NAttributeHandler(object):
"""
if return_tuples:
return [(key, value) for (key, value) in list(self._store.items()) if not key.startswith("_")]
return [(key, value) for (key, value) in self._store.items() if not key.startswith("_")]
return [key for key in self._store if not key.startswith("_")]

View file

@ -105,7 +105,7 @@ class Session(object):
the keys given by self._attrs_to_sync.
"""
return dict((key, value) for key, value in list(self.__dict__.items())
return dict((key, value) for key, value in self.__dict__.items()
if key in self._attrs_to_sync)
def load_sync_data(self, sessdata):

View file

@ -136,7 +136,7 @@ class SessionHandler(dict):
if include_unloggedin:
return listvalues(self)
else:
return [session for session in list(self.values()) if session.logged_in]
return [session for session in self.values() if session.logged_in]
def get_all_sync_data(self):
"""
@ -147,7 +147,7 @@ class SessionHandler(dict):
syncdata (dict): A dict of sync data.
"""
return dict((sessid, sess.get_sync_data()) for sessid, sess in list(self.items()))
return dict((sessid, sess.get_sync_data()) for sessid, sess in self.items())
def clean_senddata(self, session, kwargs):
"""
@ -562,7 +562,7 @@ class ServerSessionHandler(SessionHandler):
"""
uid = curr_session.uid
doublet_sessions = [sess for sess in list(self.values())
doublet_sessions = [sess for sess in self.values()
if sess.logged_in and
sess.uid == uid and
sess != curr_session]
@ -577,7 +577,7 @@ class ServerSessionHandler(SessionHandler):
"""
tcurr = time.time()
reason = _("Idle timeout exceeded, disconnecting.")
for session in (session for session in list(self.values())
for session in (session for session in self.values()
if session.logged_in and _IDLE_TIMEOUT > 0 and
(tcurr - session.cmd_last) > _IDLE_TIMEOUT):
self.disconnect(session, reason=reason)
@ -592,7 +592,7 @@ class ServerSessionHandler(SessionHandler):
naccount (int): Number of connected accounts
"""
return len(set(session.uid for session in list(self.values()) if session.logged_in))
return len(set(session.uid for session in self.values() if session.logged_in))
def all_connected_accounts(self):
"""
@ -603,7 +603,7 @@ class ServerSessionHandler(SessionHandler):
amount of Sessions due to multi-playing).
"""
return list(set(session.account for session in list(self.values()) if session.logged_in and session.account))
return list(set(session.account for session in self.values() if session.logged_in and session.account))
def session_from_sessid(self, sessid):
"""
@ -650,7 +650,7 @@ class ServerSessionHandler(SessionHandler):
"""
uid = account.uid
return [session for session in list(self.values()) if session.logged_in and session.uid == uid]
return [session for session in self.values() if session.logged_in and session.uid == uid]
def sessions_from_puppet(self, puppet):
"""
@ -677,7 +677,7 @@ class ServerSessionHandler(SessionHandler):
csessid (str): The session hash
"""
return [session for session in list(self.values())
return [session for session in self.values()
if session.csessid and session.csessid == csessid]
def announce_all(self, message):

View file

@ -299,7 +299,7 @@ class AttributeHandler(object):
# for this category before
catkey = "-%s" % category
if _TYPECLASS_AGGRESSIVE_CACHE and catkey in self._catcache:
return [attr for key, attr in list(self._cache.items()) if key.endswith(catkey) and attr]
return [attr for key, attr in self._cache.items() if key.endswith(catkey) and attr]
else:
# we have to query to make this category up-date in the cache
query = {"%s__id" % self._model: self._objid,
@ -655,10 +655,10 @@ class AttributeHandler(object):
if not self._cache_complete:
self._fullcache()
if accessing_obj:
[attr.delete() for attr in list(self._cache.values())
[attr.delete() for attr in self._cache.values()
if attr and attr.access(accessing_obj, self._attredit, default=default_access)]
else:
[attr.delete() for attr in list(self._cache.values()) if attr and attr.pk]
[attr.delete() for attr in self._cache.values() if attr and attr.pk]
self._cache = {}
self._catcache = {}
self._cache_complete = False
@ -682,7 +682,7 @@ class AttributeHandler(object):
"""
if not self._cache_complete:
self._fullcache()
attrs = sorted([attr for attr in list(self._cache.values()) if attr],
attrs = sorted([attr for attr in self._cache.values() if attr],
key=lambda o: o.id)
if accessing_obj:
return [attr for attr in attrs
@ -1003,5 +1003,5 @@ class NAttributeHandler(object):
"""
if return_tuples:
return [(key, value) for (key, value) in list(self._store.items()) if not key.startswith("_")]
return [(key, value) for (key, value) in self._store.items() if not key.startswith("_")]
return [key for key in self._store if not key.startswith("_")]

View file

@ -169,7 +169,7 @@ class TagHandler(object):
# for this category before
catkey = "-%s" % category
if _TYPECLASS_AGGRESSIVE_CACHE and catkey in self._catcache:
return [tag for key, tag in list(self._cache.items()) if key.endswith(catkey)]
return [tag for key, tag in self._cache.items() if key.endswith(catkey)]
else:
# we have to query to make this category up-date in the cache
query = {"%s__id" % self._model: self._objid,

View file

@ -191,7 +191,7 @@ class _SaverMutable(object):
return dat
elif dtype == dict:
dat = _SaverDict(_parent=parent)
dat._data.update((key, process_tree(val, dat)) for key, val in list(item.items()))
dat._data.update((key, process_tree(val, dat)) for key, val in item.items())
return dat
elif dtype == set:
dat = _SaverSet(_parent=parent)
@ -500,11 +500,11 @@ def to_pickle(data):
elif dtype in (list, _SaverList):
return [process_item(val) for val in item]
elif dtype in (dict, _SaverDict):
return dict((process_item(key), process_item(val)) for key, val in list(item.items()))
return dict((process_item(key), process_item(val)) for key, val in item.items())
elif dtype in (set, _SaverSet):
return set(process_item(val) for val in item)
elif dtype in (OrderedDict, _SaverOrderedDict):
return OrderedDict((process_item(key), process_item(val)) for key, val in list(item.items()))
return OrderedDict((process_item(key), process_item(val)) for key, val in item.items())
elif dtype in (deque, _SaverDeque):
return deque(process_item(val) for val in item)
@ -555,11 +555,11 @@ def from_pickle(data, db_obj=None):
elif dtype == tuple:
return tuple(process_item(val) for val in item)
elif dtype == dict:
return dict((process_item(key), process_item(val)) for key, val in list(item.items()))
return dict((process_item(key), process_item(val)) for key, val in item.items())
elif dtype == set:
return set(process_item(val) for val in item)
elif dtype == OrderedDict:
return OrderedDict((process_item(key), process_item(val)) for key, val in list(item.items()))
return OrderedDict((process_item(key), process_item(val)) for key, val in item.items())
elif dtype == deque:
return deque(process_item(val) for val in item)
elif hasattr(item, '__iter__'):
@ -588,7 +588,7 @@ def from_pickle(data, db_obj=None):
elif dtype == dict:
dat = _SaverDict(_parent=parent)
dat._data.update((process_item(key), process_tree(val, dat))
for key, val in list(item.items()))
for key, val in item.items())
return dat
elif dtype == set:
dat = _SaverSet(_parent=parent)
@ -597,7 +597,7 @@ def from_pickle(data, db_obj=None):
elif dtype == OrderedDict:
dat = _SaverOrderedDict(_parent=parent)
dat._data.update((process_item(key), process_tree(val, dat))
for key, val in list(item.items()))
for key, val in item.items())
return dat
elif dtype == deque:
dat = _SaverDeque(_parent=parent)
@ -625,7 +625,7 @@ def from_pickle(data, db_obj=None):
elif dtype == dict:
dat = _SaverDict(_db_obj=db_obj)
dat._data.update((process_item(key), process_tree(val, dat))
for key, val in list(data.items()))
for key, val in data.items())
return dat
elif dtype == set:
dat = _SaverSet(_db_obj=db_obj)
@ -634,7 +634,7 @@ def from_pickle(data, db_obj=None):
elif dtype == OrderedDict:
dat = _SaverOrderedDict(_db_obj=db_obj)
dat._data.update((process_item(key), process_tree(val, dat))
for key, val in list(data.items()))
for key, val in data.items())
return dat
elif dtype == deque:
dat = _SaverDeque(_db_obj=db_obj)

View file

@ -160,7 +160,7 @@ def _to_ansi(obj, regexable=False):
# escape the |-structure twice.
obj = _ANSI_ESCAPE.sub(r"||||", obj)
if isinstance(obj, dict):
return dict((key, _to_ansi(value, regexable=regexable)) for key, value in list(obj.items()))
return dict((key, _to_ansi(value, regexable=regexable)) for key, value in obj.items())
elif is_iter(obj):
return [_to_ansi(o) for o in obj]
else:
@ -196,8 +196,8 @@ class EvForm(object):
self.filename = filename
self.input_form_dict = form
self.cells_mapping = dict((to_str(key, force_string=True), value) for key, value in list(cells.items())) if cells else {}
self.tables_mapping = dict((to_str(key, force_string=True), value) for key, value in list(tables.items())) if tables else {}
self.cells_mapping = dict((to_str(key, force_string=True), value) for key, value in cells.items()) if cells else {}
self.tables_mapping = dict((to_str(key, force_string=True), value) for key, value in tables.items()) if tables else {}
self.cellchar = "x"
self.tablechar = "c"
@ -367,8 +367,8 @@ class EvForm(object):
kwargs.pop("width", None)
kwargs.pop("height", None)
new_cells = dict((to_str(key, force_string=True), value) for key, value in list(cells.items())) if cells else {}
new_tables = dict((to_str(key, force_string=True), value) for key, value in list(tables.items())) if tables else {}
new_cells = dict((to_str(key, force_string=True), value) for key, value in cells.items()) if cells else {}
new_tables = dict((to_str(key, force_string=True), value) for key, value in tables.items()) if tables else {}
self.cells_mapping.update(new_cells)
self.tables_mapping.update(new_tables)

View file

@ -511,7 +511,7 @@ class EvMenu(object):
else:
# a python path of a module
module = mod_import(menudata)
return dict((key, func) for key, func in list(module.__dict__.items())
return dict((key, func) for key, func in module.__dict__.items()
if isfunction(func) and not key.startswith("_"))
def _format_node(self, nodetext, optionlist):

View file

@ -328,7 +328,7 @@ class SharedMemoryModel(with_metaclass(SharedMemoryModelBase, Model)):
if force:
cls.__dbclass__.__instance_cache__ = {}
else:
cls.__dbclass__.__instance_cache__ = dict((key, obj) for key, obj in list(cls.__dbclass__.__instance_cache__.items())
cls.__dbclass__.__instance_cache__ = dict((key, obj) for key, obj in cls.__dbclass__.__instance_cache__.items()
if not obj.at_idmapper_flush())
#flush_instance_cache = classmethod(flush_instance_cache)

View file

@ -288,11 +288,11 @@ def spawn(*prototypes, **kwargs):
# extract ndb assignments
nattributes = dict((key.split("_", 1)[1], value() if callable(value) else value)
for key, value in list(prot.items()) if key.startswith("ndb_"))
for key, value in prot.items() if key.startswith("ndb_"))
# the rest are attributes
simple_attributes = [(key, value()) if callable(value) else (key, value)
for key, value in list(prot.items()) if not key.startswith("ndb_")]
for key, value in prot.items() if not key.startswith("ndb_")]
attributes = attributes + simple_attributes
attributes = [tup for tup in attributes if not tup[0] in _CREATE_OBJECT_KWARGS]

View file

@ -1242,7 +1242,7 @@ def variable_from_module(module, variable=None, default=None):
result.append(mod.__dict__.get(var, default))
else:
# get all
result = [val for key, val in list(mod.__dict__.items())
result = [val for key, val in mod.__dict__.items()
if not (key.startswith("_") or ismodule(val))]
if len(result) == 1:
@ -1612,7 +1612,7 @@ def deepsize(obj, max_depth=4):
_recurse(ref, dct, depth + 1)
sizedict = {}
_recurse(obj, sizedict, 0)
size = getsizeof(obj) + sum([p[1] for p in list(sizedict.values())])
size = getsizeof(obj) + sum([p[1] for p in sizedict.values()])
return size