- adds over.misc.update_dict
- fixes #4 over.misc.console is too hard to use
This commit is contained in:
parent
8e0b27cb17
commit
d0bac63fb3
1 changed files with 27 additions and 7 deletions
32
over/misc.py
32
over/misc.py
|
@ -54,22 +54,42 @@ def batch_gen(data, batch_size):
|
||||||
|
|
||||||
# --------------------------------------------------
|
# --------------------------------------------------
|
||||||
|
|
||||||
def console(locals, globals=None, tab_completion=True):
|
def update_dict(A, B, overwrite=False):
|
||||||
|
"""
|
||||||
|
Shallow-copies items from B to A.
|
||||||
|
|
||||||
|
Iff `overwrite`, keys that already exist in A will be overwritten.
|
||||||
|
Otherwise, only keys that aren't in A will be set.
|
||||||
|
"""
|
||||||
|
|
||||||
|
for key, value in B.items():
|
||||||
|
if key not in A:
|
||||||
|
A[key] = value
|
||||||
|
|
||||||
|
# --------------------------------------------------
|
||||||
|
|
||||||
|
def console(override_environment=None, tab_completion=True):
|
||||||
"""
|
"""
|
||||||
Opens up a Python console.
|
Opens up a Python console.
|
||||||
|
|
||||||
|
If no `override_environment` is passed, the environment of the calling stack frame (and all parent stack frames) will be used.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import code
|
import code
|
||||||
import copy
|
import copy
|
||||||
|
import inspect
|
||||||
import readline
|
import readline
|
||||||
import rlcompleter
|
import rlcompleter
|
||||||
|
|
||||||
environment = copy.copy(locals)
|
if override_environment:
|
||||||
|
environment = override_environment
|
||||||
|
else:
|
||||||
|
environment = {}
|
||||||
|
frame = inspect.currentframe()
|
||||||
|
|
||||||
if globals:
|
while frame:
|
||||||
for key, value in globals.items():
|
update_dict(environment, frame.f_locals)
|
||||||
if key not in environment:
|
frame = frame.f_back
|
||||||
environment[key] = value
|
|
||||||
|
|
||||||
if tab_completion:
|
if tab_completion:
|
||||||
readline.parse_and_bind("tab: complete")
|
readline.parse_and_bind("tab: complete")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue