Re: How do I tell if I'm running in the PyWin interpreter?
Charles Krug wrote: Is there a way to detect that I'm running the the PyWin interpreter so that I can bypass its raw_input behavior? You could test if pywin_specific_module in sys.modules: # use workaraound Or maybe you can get away with always using sys.stdin.readline() instead of raw_input()? Look into cmd.py for an example. Peter -- http://mail.python.org/mailman/listinfo/python-list
Re: How do I tell if I'm running in the PyWin interpreter?
Charles Krug [EMAIL PROTECTED] schrieb im Newsbeitrag news:[EMAIL PROTECTED] | On 2006-01-28, Steven D'Aprano [EMAIL PROTECTED] wrote: | | As the comment says, when I run this under Python Win, I get an (pretty | sure) Tkinter interface, not a command line, and I don't get my | EOFError when I expect to. | | When do you expect to get an EOFError? The only way I get an EOFError is | if I explicitly hit Ctrl-D while raw_input is running. When do you expect | to get it? Have you tried Ctrl-Z under Windows? | | | That's exactly how I use it everywhere else. Type until you're done | then hit Ctrl-D | | The problem is only when running under the PyWin IDE . . I'd been using | this for months under Idle and every place else I needed it. | | The problem is that PyWin doesn't give you a raw command line with in | response to raw_input, but gives you a text entry box and a nice | OK-Cancel yada yada interface that silently eats my EOF. | | I'd like to have a single tool I can use everywhere. So far as I can | tell, that means I have to detect the PyWin IDE and handle it | separately on initialization so I get a real raw input and not the | redefined Tkinter version. | import sys import os if os.path.basename(sys.executable) == 'Pythonwin.exe': #Pythonwin specific initialization else: #Other HTH, Vincent Wehren -- http://mail.python.org/mailman/listinfo/python-list
Re: How do I tell if I'm running in the PyWin interpreter?
On 2006-01-28, Peter Otten [EMAIL PROTECTED] wrote: Charles Krug wrote: Is there a way to detect that I'm running the the PyWin interpreter so that I can bypass its raw_input behavior? You could test if pywin_specific_module in sys.modules: # use workaraound Or maybe you can get away with always using sys.stdin.readline() instead of raw_input()? Look into cmd.py for an example. Peter cmd.py is the battery included I was thinking of last night. Unfortunately it uses something that PyWin replaces. However I did note that PyWin's version raises KeyboardInterrupt out of its dialog box. That's not ideal, but at least it gives me an idea what I need to trap to exit. -- http://mail.python.org/mailman/listinfo/python-list
Re: How do I tell if I'm running in the PyWin interpreter?
On 2006-01-28, Charles Krug [EMAIL PROTECTED] wrote: On 2006-01-28, Peter Otten [EMAIL PROTECTED] wrote: Charles Krug wrote: Is there a way to detect that I'm running the the PyWin interpreter so that I can bypass its raw_input behavior? You could test if pywin_specific_module in sys.modules: # use workaraound Or maybe you can get away with always using sys.stdin.readline() instead of raw_input()? Look into cmd.py for an example. Peter cmd.py is the battery included I was thinking of last night. Unfortunately it uses something that PyWin replaces. However I did note that PyWin's version raises KeyboardInterrupt out of its dialog box. That's not ideal, but at least it gives me an idea what I need to trap to exit. Okay, I poked around a bit more and found the initialization code that does this: sys.modules['__builtin__'].raw_input=Win32RawInput Which is the substituted function. Is there a way to access the original function that I want to use, or do I need to come up with some other way to do console input? Thanks -- http://mail.python.org/mailman/listinfo/python-list
How do I tell if I'm running in the PyWin interpreter?
Here's the deal: I've a dead-simple command-line program I'm using to test things that I can't (for various reasons) test in the IDE. Here's a do-nothing subset that shows the idea: # insanely simply command interpreter import Commands import sys myPrompt = '$ ' # Raw Input doesn't QUITE do what I want in Python Win. while True: try: args = raw_input(myPrompt).strip().split() except EOFError: break cmd = args[0] print '%s' % cmd print args As the comment says, when I run this under Python Win, I get an (pretty sure) Tkinter interface, not a command line, and I don't get my EOFError when I expect to. This is something I occasionally need in my Swiss Army Knife. Not often, but when I need something like this, I need something like THIS pretty badly, and sometimes I need to run it under PyWin (and under Linux, Unix, Solaris, and anything else you might name and a few things I bet you couldn't). Is there a way to detect that I'm running the the PyWin interpreter so that I can bypass its raw_input behavior? Is there a simpler way to do this? I recall some sample code that did something very much like this (define a small set of callbacks and execute them from a command-like interface) but I can't seem to lay my hands on the example. Thanx Charles -- http://mail.python.org/mailman/listinfo/python-list
Re: How do I tell if I'm running in the PyWin interpreter?
On Fri, 27 Jan 2006 21:05:43 -0600, Charles Krug wrote: Here's the deal: I've a dead-simple command-line program I'm using to test things that I can't (for various reasons) test in the IDE. Here's a do-nothing subset that shows the idea: # insanely simply command interpreter import Commands import sys myPrompt = '$ ' # Raw Input doesn't QUITE do what I want in Python Win. while True: try: args = raw_input(myPrompt).strip().split() except EOFError: break cmd = args[0] print '%s' % cmd print args As the comment says, when I run this under Python Win, I get an (pretty sure) Tkinter interface, not a command line, and I don't get my EOFError when I expect to. When do you expect to get an EOFError? The only way I get an EOFError is if I explicitly hit Ctrl-D while raw_input is running. When do you expect to get it? Have you tried Ctrl-Z under Windows? -- Steven. -- http://mail.python.org/mailman/listinfo/python-list
Re: How do I tell if I'm running in the PyWin interpreter?
On 2006-01-28, Steven D'Aprano [EMAIL PROTECTED] wrote: As the comment says, when I run this under Python Win, I get an (pretty sure) Tkinter interface, not a command line, and I don't get my EOFError when I expect to. When do you expect to get an EOFError? The only way I get an EOFError is if I explicitly hit Ctrl-D while raw_input is running. When do you expect to get it? Have you tried Ctrl-Z under Windows? That's exactly how I use it everywhere else. Type until you're done then hit Ctrl-D The problem is only when running under the PyWin IDE . . I'd been using this for months under Idle and every place else I needed it. The problem is that PyWin doesn't give you a raw command line with in response to raw_input, but gives you a text entry box and a nice OK-Cancel yada yada interface that silently eats my EOF. I'd like to have a single tool I can use everywhere. So far as I can tell, that means I have to detect the PyWin IDE and handle it separately on initialization so I get a real raw input and not the redefined Tkinter version. -- http://mail.python.org/mailman/listinfo/python-list