This is longer term, but while I'm thinking about it...
Symbolic does all sorts of imports, currently just into the same namespace where PyTave commands such as
Predictably this can lead to trouble if someone is using both PyTave and Symbolic. Even something as simple as
pyexec("N = 10") will mess-up Symbolic b/c
N is SymPy function (converts things to numeric values).
We cannot easily change Symbolic, we pretty much have to do
import * from sympy (in fact more than that) so that recovering SymPy objects from their
sym.pickle string works.
Python namespaces are just dicts. In Python,
exec can accept dicts for the global and local namespaces. One solution is to expose some of that.
So Symbolic can request a private namespace, and muck it up, independent of other PyTave usage. Perhaps that namespace is itself a
pyexec(cmd, local_ns, global_ns)