From 9867086943d60e347695930dd7f442f9e95e4577 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 24 Jul 2011 15:49:04 -0400 Subject: [PATCH] - recall that groupby() expects a sorted collection, ditch it --- lib/sqlalchemy/orm/mapper.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/lib/sqlalchemy/orm/mapper.py b/lib/sqlalchemy/orm/mapper.py index 8a33ee3767..035b728283 100644 --- a/lib/sqlalchemy/orm/mapper.py +++ b/lib/sqlalchemy/orm/mapper.py @@ -2819,13 +2819,11 @@ def _event_on_resurrect(state): def _sort_states(states): - ret = [] - for haskey, g in groupby(states, key=lambda s:s.key is not None): - if haskey: - ret.extend(sorted(g, key=lambda st: st.key[1])) - else: - ret = sorted(g, key=operator.attrgetter("insert_order")) + ret - return ret + pending = set(states) + persistent = set(s for s in pending if s.key is not None) + pending.difference_update(persistent) + return sorted(pending, key=operator.attrgetter("insert_order")) + \ + sorted(persistent, key=lambda q:q.key[1]) class _ColumnMapping(util.py25_dict): """Error reporting helper for mapper._columntoproperty.""" -- 2.39.5