Skip to content

Commit 52f2c9d

Browse files
author
James William Pye
committed
Get the __builtins__ module dictionary for pythoncommand.
1 parent 6777768 commit 52f2c9d

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

postgresql/driver/pythoncommand.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,16 @@ def command(args = sys.argv):
7979
'proc' : connection.proc,
8080
'xact' : connection.xact,
8181
}
82-
restore = {k : __builtins__.get(k) for k in builtin_overload}
82+
if not isinstance(__builtins__, dict):
83+
builtins_d = __builtins__.__dict__
84+
else:
85+
builtins_d = __builtins__
86+
restore = {k : builtins_d.get(k) for k in builtin_overload}
8387

8488
trace_file = None
8589
if co.pq_trace is not None:
8690
trace_file = open(co.pq_trace, 'a')
87-
__builtins__.update(builtin_overload)
91+
builtins_d.update(builtin_overload)
8892
try:
8993
if trace_file is not None:
9094
connection.tracer = trace_file.write
@@ -97,10 +101,10 @@ def command(args = sys.argv):
97101
)
98102
finally:
99103
# restore __builtins__
100-
__builtins__.update(restore)
104+
builtins_d.update(restore)
101105
for k, v in builtin_overload.items():
102106
if v is None:
103-
del __builtins__[x]
107+
del builtins_d[x]
104108
if trace_file is not None:
105109
trace_file.close()
106110
return rv

0 commit comments

Comments
 (0)