Hi, thank your for your reply. I will try iPython. I did try sage for a while, but I found it quite heavy, and I'm not sure whether it's easy to expand like python or not. New libraries can be easily imported in python, and those libraries could be build in almost any popular computer language. Can sage do that?
The reason why I want to work on this is the same with you. I'm an automotive engineer. What I need is a powerful yet light-weight computation software, which can help me in analyzing datas on the engine test bench. Matlab is powerful, but it contains so much stuff that I actually don't need but have to buy, and you know that it's quite expansive. So my idea is to build a GUI with python first, and then intergrate as many exsiting computation libraries as possible. There also has to be a plotting app, which is quite important and need to think about. I did try Gnuplot-python combination and matplotlib, but found both terrible inferior to Matlab plotting functionality. Do you know any plotting programs written in python? -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Friday, May 30, 2008 9:55 PM To: python-list@python.org Subject: Re: How to get all the variables in a python shell Your project interests me. Actually I was thinking about doing the same. I hadn't worked on it at all, but I though about it and had the idea about reading the session namespace directly, which I though would be stored in the __dict__ attribute of something. After reading your post, I have been trying a little bit, and I have found a way to do it with ipython. If you open an ipython console, press _ then hit TAB, you'll see it stores some useful information, including all input, all output, and after some searching, a dictionary matching all variables to its values. __IPYTHON__.user_ns There is a little extra stuff in there that you don't want, but that can be easily filtered (the extra stuff is either 'In', 'Out', 'help' or starts with '_'). I've tried it, and you can change the value in that dict to alter the value of the real variable. Say you have a variable 'test': test=5 __IPYTHON__.user_ns['test']=4 print test #prints 5 If I get it right, python is a dynamic language, and you won't break things by messing around with its inner stuff like this, but you better check it. Is this what you had in mind? -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list