From 686c8fae49eda891852957b5f1ebbe57c3334834 Mon Sep 17 00:00:00 2001 From: "A. Jesse Jiryu Davis" Date: Wed, 18 Jun 2014 17:49:57 -0400 Subject: [PATCH] PYTHON-710, SON.to_dict shouldn't change original data. --- bson/son.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bson/son.py b/bson/son.py index 9e9defb20..c233f7843 100644 --- a/bson/son.py +++ b/bson/son.py @@ -226,12 +226,12 @@ class SON(dict): def transform_value(value): if isinstance(value, list): return [transform_value(v) for v in value] - if isinstance(value, SON): - value = dict(value) - if isinstance(value, dict): - for k, v in value.iteritems(): - value[k] = transform_value(v) - return value + elif isinstance(value, dict): + return dict([ + (k, transform_value(v)) + for k, v in value.iteritems()]) + else: + return value return transform_value(dict(self))