From fe9877f4717f56a70ba0b3f745305516fad003bb Mon Sep 17 00:00:00 2001 From: nyuszika7h Date: Fri, 5 Aug 2016 22:06:15 +0200 Subject: [PATCH] Restore OrderedDict hack, still needed in 3.3 --- src/wolfgame.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/wolfgame.py b/src/wolfgame.py index 4edda78..da79b3f 100644 --- a/src/wolfgame.py +++ b/src/wolfgame.py @@ -2828,7 +2828,10 @@ def chk_win_conditions(lpl, lwolves, lcubs, lrealwolves, lmonsters, ldemoniacs, for plr in list_players(var.WOLFTEAM_ROLES): players.append("{0} ({1})".format(plr, get_role(plr))) elif winner == "villagers": - vroles = (role for role in var.ROLES.keys() if var.ROLES[role] and role not in (var.WOLFTEAM_ROLES | var.TRUE_NEUTRAL_ROLES | var.TEMPLATE_RESTRICTIONS.keys())) + # There is a regression issue in the 3.3 collections module where OrderedDict.keys is not set-like + # this was fixed in later releases, and since development and main instance are on 3.4 or 3.5, this was not noticed + # collections.OrderedDict being a dict subclass, dict methods all work. Thus, we can pass the instance to dict.keys and be done with it (since it's set-like) + vroles = (role for role in var.ROLES.keys() if var.ROLES[role] and role not in (var.WOLFTEAM_ROLES | var.TRUE_NEUTRAL_ROLES | dict.keys(var.TEMPLATE_RESTRICTIONS))) for plr in list_players(vroles): players.append("{0} ({1})".format(plr, get_role(plr))) elif winner == "pipers":