From: Steve C. <St...@ig...> - 2002-01-05 14:53:14
|
There is a stack trace and it's the same whether or not showJavaExceptions is true: [scohen@sleepingbear scohen]$ jython -Dpython.options.showJavaExceptions=3Dtrue Jython 2.1 on java1.3.0 (JIT: null) Type "copyright", "credits" or "license" for more information. >>> import dbexts, isql >>> d=3Ddbexts.dbexts("prod_sport") >>> D=3Disql.IsqlCmd(d) >>> D.use_rawinput=3D0 >>> D.cmdloop() Traceback (innermost last): File "<console>", line 1, in ? File "/usr/local/jython/jython-2.1/Lib/cmd.py", line 79, in cmdloop TypeError: write(): 1st arg can't be coerced to String The 1st arg is None, which is arguably a bug in isql.IsqlCmd. The code in cmdloop can't handle it (can't coerce it to String). I can work around the bug by explicitly setting D.prompt (which is the first argument passed in) before executing D.cmdloop() but then you are quite right, there still isn't support for any form of readline, either the java_readline that is in the interactive mode or even the Ctrl-N, Ctrl-P stuff that the documentation speaks of. I suppose I could take a look at fixing this, although I'm not extremely familiar with it. If you could point me to where the java_readline stuff is integrated into the interactive mode, I could have a go at it. Or, if you'd rather have someone more familiar with the internals do it, I certainly understand. -----Original Message----- From: Finn Bock Sent: Sat 1/5/2002 7:44 AM To: jyt...@li... Cc: Steve Cohen Subject: Re: [Jython-users] More fun with Readline [Steve Cohen] >Now that I have readline working with jython, I come quickly to the next >hurdle. Is it possible to integrate readline capabilities into >jython-coded command interpreters based on cmd.Cmd? I cannot get this >to work at all. The docs on cmd.Cmd gave me some hope, but I can't get >any of it to work, not even the Ctrl-P, Ctrl-N stuff. I also tried >setting use_rawinput to 0 to force readline, that produced an error when >I executed cmdloop():=3D20 > >TypeError: write(): 1st arg can't be coerced to String Was there a stacktrace with that exception? It is not uncommon that TypeErrors are caused by a too restrictive method signature in the jython core, but more information is needed. Also try to start jython with the command: jython -Dpython.options.showJavaExceptions=3Dtrue to get additional stacktrace information. >Does anyone have any ideas how readline can be made to work in cmd.Cmd >interpreters? I doubt that it works at the moment. raw_input() just call the .readline() method on sys.stdin. Someone have to add support for readline in __builtin__.raw_input(). Anyone? regards, finn |
From: Steve C. <St...@ig...> - 2002-01-06 00:28:22
|
OK. On one level getting cmd.Cmd to use the readline is easy. Just import org.gnu.readline.Readline and I'm on my way. It works exactly as I want it to work. But of course, that won't do, since org.gnu.readline is optional. What I'd like to do is somehow grab the "interp" InteractiveConsole that is created in jython.main() and call IT'S raw_input method. But I don't see a way to do this. interp is a local variable to the main method. Is there some behind the scenes way I can hook this, to take advantage of its readline capabilities? That seems like the "right" way to do this, but is there a way to do it short of modifying jython.java? Seems kind of an extreme step for my first attempt to fix something in jython. -----Original Message----- From: Finn Bock Sent: Sat 1/5/2002 4:11 PM To: jyt...@li... Cc: Steve Cohen Subject: Re: [Jython-users] More fun with Readline [Steve Cohen] >There is a stack trace and it's the same whether or not >showJavaExceptions is true: That is OK. Thanks. >[scohen@sleepingbear scohen]$ jython >-Dpython.options.showJavaExceptions=3D3Dtrue >Jython 2.1 on java1.3.0 (JIT: null) >Type "copyright", "credits" or "license" for more information. >>>> import dbexts, isql >>>> d=3D3Ddbexts.dbexts("prod_sport") >>>> D=3D3Disql.IsqlCmd(d) >>>> D.use_rawinput=3D3D0 >>>> D.cmdloop() >Traceback (innermost last): > File "<console>", line 1, in ? > File "/usr/local/jython/jython-2.1/Lib/cmd.py", line 79, in cmdloop >TypeError: write(): 1st arg can't be coerced to String Not quite the error situation that I expected, but that just goes to show how important the context is. I have added a bug report about the situation. >The 1st arg is None, which is arguably a bug in isql.IsqlCmd.=20 Are you absolutely sure that self.prompt is None. AFAICT D.prompt should be an instance of the Prompt class and that will cause the stacktrace above. A None value will cause a NPE which is a different bug. Please recheck the value of D.prompt. >The code >in cmdloop can't handle it (can't coerce it to String). I can work >around the bug by explicitly setting D.prompt (which is the first >argument passed in) before executing D.cmdloop() but then you are quite >right, there still isn't support for any form of readline, either the >java_readline that is in the interactive mode or even the Ctrl-N, Ctrl-P >stuff that the documentation speaks of. > >I suppose I could take a look at fixing this, although I'm not extremely >familiar with it. If you could point me to where the java_readline >stuff is integrated into the interactive mode, I could have a go at it. That code is located in org\python\util\ReadlineConsole.java.=20 >Or, if you'd rather have someone more familiar with the internals do it, >I certainly understand. Well, I prefer that it is implemented by someone who really want it to work. If you decide to try, feel free to ask questions and seek advice on jython-dev. regards, finn |
From: Steve C. <St...@ig...> - 2002-01-07 03:57:48
|
Well, I developed what I thought was a nice integration of readline into cmd.py. It worked perfectly and it made no assumptions about the presence or absence of readline. =20 I started preparing a patch file. It involved a few of the java classes and cmd.py. All was going well and then I noticed that cmd.py was NOT in CVS. Where did it come from then? It must have come from the installation. From the docs I see that it may have come originally from CPython. OK, so what does this mean? Does it mean that my changes also have to work in CPython? I'm confused.=20 -----Original Message----- From: Steve Cohen on behalf of Steve Cohen Sent: Sat 1/5/2002 6:28 PM To: Finn Bock; jyt...@li... Cc:=09 Subject: RE: [Jython-users] More fun with Readline OK. On one level getting cmd.Cmd to use the readline is easy. Just import org.gnu.readline.Readline and I'm on my way. It works exactly as I want it to work. But of course, that won't do, since org.gnu.readline is optional. What I'd like to do is somehow grab the "interp" InteractiveConsole that is created in jython.main() and call IT'S raw_input method. But I don't see a way to do this. interp is a local variable to the main method. Is there some behind the scenes way I can hook this, to take advantage of its readline capabilities? That seems like the "right" way to do this, but is there a way to do it short of modifying jython.java? Seems kind of an extreme step for my first attempt to fix something in jython. -----Original Message----- From: Finn Bock Sent: Sat 1/5/2002 4:11 PM To: jyt...@li... Cc: Steve Cohen Subject: Re: [Jython-users] More fun with Readline [Steve Cohen] >There is a stack trace and it's the same whether or not >showJavaExceptions is true: That is OK. Thanks. >[scohen@sleepingbear scohen]$ jython >-Dpython.options.showJavaExceptions=3D3Dtrue >Jython 2.1 on java1.3.0 (JIT: null) >Type "copyright", "credits" or "license" for more information. >>>> import dbexts, isql >>>> d=3D3Ddbexts.dbexts("prod_sport") >>>> D=3D3Disql.IsqlCmd(d) >>>> D.use_rawinput=3D3D0 >>>> D.cmdloop() >Traceback (innermost last): > File "<console>", line 1, in ? > File "/usr/local/jython/jython-2.1/Lib/cmd.py", line 79, in cmdloop >TypeError: write(): 1st arg can't be coerced to String Not quite the error situation that I expected, but that just goes to show how important the context is. I have added a bug report about the situation. >The 1st arg is None, which is arguably a bug in isql.IsqlCmd.=20 Are you absolutely sure that self.prompt is None. AFAICT D.prompt should be an instance of the Prompt class and that will cause the stacktrace above. A None value will cause a NPE which is a different bug. Please recheck the value of D.prompt. >The code >in cmdloop can't handle it (can't coerce it to String). I can work >around the bug by explicitly setting D.prompt (which is the first >argument passed in) before executing D.cmdloop() but then you are quite >right, there still isn't support for any form of readline, either the >java_readline that is in the interactive mode or even the Ctrl-N, Ctrl-P >stuff that the documentation speaks of. > >I suppose I could take a look at fixing this, although I'm not extremely >familiar with it. If you could point me to where the java_readline >stuff is integrated into the interactive mode, I could have a go at it. That code is located in org\python\util\ReadlineConsole.java.=20 >Or, if you'd rather have someone more familiar with the internals do it, >I certainly understand. Well, I prefer that it is implemented by someone who really want it to work. If you decide to try, feel free to ask questions and seek advice on jython-dev. regards, finn |
From: brian z. <bz...@zi...> - 2002-01-07 04:37:18
|
Steve, The majority of the python modules in Lib are copied from the same version of the CPython distribution. Only when the module is new and jython-centric (jreload, dbexts) or drastically differs (string, socket) does it get checked into Jython's CVS. For both development and production, I point at the current Jython Lib and then the same version of CPython's Lib. This makes sure I pick any Jython specific modules first before trying to load the standard Python distribution's modules. For something like cmd.py, it's probably best to work with the CPython version and submit your patch there along with the explanation for why it is needed. Some CPython modules check for os.name == 'java' (unittest) and do something accordingly. Along this note, there was a change to string.py in CPython 2.2 that includes three attributes not found in the Jython version currently in CVS: # not set to 'lowercase' or 'uppercase' because they can change ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz' ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' ascii_letters = ascii_lowercase + ascii_uppercase Without them, the 2.2 version of cmd.py from (CPython) will not work when imported from Jython 2.1+. I'm going to raise a bug and provide the patch but you can paste these in your local Jython version of string.py in the interim. Hope this helps. brian > -----Original Message----- > From: Steve Cohen > [mailto:jyt...@li...] On Behalf > Of Steve Cohen > Sent: Sunday, January 06, 2002 9:58 PM > To: Steve Cohen; Finn Bock; jyt...@li... > Subject: RE: [Jython-users] More fun with Readline > > > Well, I developed what I thought was a nice integration of > readline into cmd.py. It worked perfectly and it made no > assumptions about the presence or absence of readline. > > I started preparing a patch file. It involved a few of the > java classes and cmd.py. All was going well and then I > noticed that cmd.py was NOT in CVS. Where did it come from > then? It must have come from the installation. From the > docs I see that it may have come originally from CPython. > OK, so what does this mean? Does it mean that my changes > also have to work in CPython? > > I'm confused. > > > -----Original Message----- > From: Steve Cohen on behalf of Steve Cohen > Sent: Sat 1/5/2002 6:28 PM > To: Finn Bock; jyt...@li... > Cc: > Subject: RE: [Jython-users] More fun with Readline > OK. On one level getting cmd.Cmd to use the readline is > easy. Just import org.gnu.readline.Readline and I'm on my > way. It works exactly as I want it to work. > > But of course, that won't do, since org.gnu.readline is > optional. What I'd like to do is somehow grab the "interp" > InteractiveConsole that is created in jython.main() and call > IT'S raw_input method. But I don't see a way to do this. > interp is a local variable to the main method. Is there some > behind the scenes way I can hook this, to take advantage of > its readline capabilities? That seems like the "right" way > to do this, but is there a way to do it short of modifying > jython.java? Seems kind of an extreme step for my first > attempt to fix something in jython. > > > -----Original Message----- > From: Finn Bock > Sent: Sat 1/5/2002 4:11 PM > To: jyt...@li... > Cc: Steve Cohen > Subject: Re: [Jython-users] More fun with Readline > [Steve Cohen] > > >There is a stack trace and it's the same whether or not > >showJavaExceptions is true: > > That is OK. Thanks. > > >[scohen@sleepingbear scohen]$ jython > >-Dpython.options.showJavaExceptions=3Dtrue > >Jython 2.1 on java1.3.0 (JIT: null) > >Type "copyright", "credits" or "license" for more information. > >>>> import dbexts, isql > >>>> d=3Ddbexts.dbexts("prod_sport") > >>>> D=3Disql.IsqlCmd(d) > >>>> D.use_rawinput=3D0 > >>>> D.cmdloop() > >Traceback (innermost last): > > File "<console>", line 1, in ? > > File "/usr/local/jython/jython-2.1/Lib/cmd.py", line 79, in cmdloop > >TypeError: write(): 1st arg can't be coerced to String > > Not quite the error situation that I expected, but that just > goes to show how important the context is. I have added a bug > report about the situation. > > >The 1st arg is None, which is arguably a bug in isql.IsqlCmd. > > Are you absolutely sure that self.prompt is None. AFAICT > D.prompt should be an instance of the Prompt class and that > will cause the stacktrace above. A None value will cause a > NPE which is a different bug. Please recheck the value of D.prompt. > > >The code > >in cmdloop can't handle it (can't coerce it to String). I can work > >around the bug by explicitly setting D.prompt (which is the first > >argument passed in) before executing D.cmdloop() but then > you are quite > >right, there still isn't support for any form of readline, > either the > >java_readline that is in the interactive mode or even the Ctrl-N, > >Ctrl-P stuff that the documentation speaks of. > > > >I suppose I could take a look at fixing this, although I'm not > >extremely familiar with it. If you could point me to where the > >java_readline stuff is integrated into the interactive mode, I could > >have a go at it. > > That code is located in org\python\util\ReadlineConsole.java. > > >Or, if you'd rather have someone more familiar with the internals do > >it, I certainly understand. > > Well, I prefer that it is implemented by someone who really > want it to work. If you decide to try, feel free to ask > questions and seek advice on jython-dev. > > regards, > finn > > > > |
From: Steve C. <St...@ig...> - 2002-01-07 05:18:41
|
Hmm, that won't work with my current implementation. My current implementation is importing java classes. In two places. In one I am importing PySystemState to read the registry. Is there an all-python way to read the registry or its properties without referencing jython? If so, I can avoid that import. The other is where I'm importing org.gnu.readline.Readline. This seems to be essential. I can probably put the import into a conditional code block that would never be met by CPython users but would that be "clean" enough? What is standard practice around issues of this type? Steve -----Original Message----- From: brian zimmer Sent: Sun 1/6/2002 10:36 PM To: Steve Cohen; 'Finn Bock'; jyt...@li... Cc:=09 Subject: RE: [Jython-users] More fun with Readline Steve, The majority of the python modules in Lib are copied from the same version of the CPython distribution. Only when the module is new and jython-centric (jreload, dbexts) or drastically differs (string, socket) does it get checked into Jython's CVS. For both development and production, I point at the current Jython Lib and then the same version of CPython's Lib. This makes sure I pick any Jython specific modules first before trying to load the standard Python distribution's modules. For something like cmd.py, it's probably best to work with the CPython version and submit your patch there along with the explanation for why it is needed. Some CPython modules check for os.name =3D=3D 'java' (unittest) and do something accordingly. Along this note, there was a change to string.py in CPython 2.2 that includes three attributes not found in the Jython version currently in CVS: # not set to 'lowercase' or 'uppercase' because they can change ascii_lowercase =3D 'abcdefghijklmnopqrstuvwxyz' ascii_uppercase =3D 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' ascii_letters =3D ascii_lowercase + ascii_uppercase Without them, the 2.2 version of cmd.py from (CPython) will not work when imported from Jython 2.1+. I'm going to raise a bug and provide the patch but you can paste these in your local Jython version of string.py in the interim. Hope this helps. brian > -----Original Message----- > From: Steve Cohen=20 > [mailto:jyt...@li...] On Behalf=20 > Of Steve Cohen > Sent: Sunday, January 06, 2002 9:58 PM > To: Steve Cohen; Finn Bock; jyt...@li... > Subject: RE: [Jython-users] More fun with Readline >=20 >=20 > Well, I developed what I thought was a nice integration of=20 > readline into cmd.py. It worked perfectly and it made no=20 > assumptions about the presence or absence of readline. =20 >=20 > I started preparing a patch file. It involved a few of the=20 > java classes and cmd.py. All was going well and then I=20 > noticed that cmd.py was NOT in CVS. Where did it come from=20 > then? It must have come from the installation. From the=20 > docs I see that it may have come originally from CPython. =20 > OK, so what does this mean? Does it mean that my changes=20 > also have to work in CPython? >=20 > I'm confused.=20 >=20 >=20 > -----Original Message----- > From: Steve Cohen on behalf of Steve Cohen > Sent: Sat 1/5/2002 6:28 PM > To: Finn Bock; jyt...@li... > Cc:=09 > Subject: RE: [Jython-users] More fun with Readline > OK. On one level getting cmd.Cmd to use the readline is=20 > easy. Just import org.gnu.readline.Readline and I'm on my=20 > way. It works exactly as I want it to work. >=20 > But of course, that won't do, since org.gnu.readline is=20 > optional. What I'd like to do is somehow grab the "interp"=20 > InteractiveConsole that is created in jython.main() and call=20 > IT'S raw_input method. But I don't see a way to do this. =20 > interp is a local variable to the main method. Is there some=20 > behind the scenes way I can hook this, to take advantage of=20 > its readline capabilities? That seems like the "right" way=20 > to do this, but is there a way to do it short of modifying=20 > jython.java? Seems kind of an extreme step for my first=20 > attempt to fix something in jython. >=20 >=20 > -----Original Message----- > From: Finn Bock > Sent: Sat 1/5/2002 4:11 PM > To: jyt...@li... > Cc: Steve Cohen > Subject: Re: [Jython-users] More fun with Readline > [Steve Cohen] >=20 > >There is a stack trace and it's the same whether or not=20 > >showJavaExceptions is true: >=20 > That is OK. Thanks. >=20 > >[scohen@sleepingbear scohen]$ jython=20 > >-Dpython.options.showJavaExceptions=3D3Dtrue > >Jython 2.1 on java1.3.0 (JIT: null) > >Type "copyright", "credits" or "license" for more information. > >>>> import dbexts, isql > >>>> d=3D3Ddbexts.dbexts("prod_sport") > >>>> D=3D3Disql.IsqlCmd(d) > >>>> D.use_rawinput=3D3D0 > >>>> D.cmdloop() > >Traceback (innermost last): > > File "<console>", line 1, in ? > > File "/usr/local/jython/jython-2.1/Lib/cmd.py", line 79, in cmdloop > >TypeError: write(): 1st arg can't be coerced to String >=20 > Not quite the error situation that I expected, but that just=20 > goes to show how important the context is. I have added a bug=20 > report about the situation. >=20 > >The 1st arg is None, which is arguably a bug in isql.IsqlCmd. >=20 > Are you absolutely sure that self.prompt is None. AFAICT=20 > D.prompt should be an instance of the Prompt class and that=20 > will cause the stacktrace above. A None value will cause a=20 > NPE which is a different bug. Please recheck the value of D.prompt. >=20 > >The code > >in cmdloop can't handle it (can't coerce it to String). I can work=20 > >around the bug by explicitly setting D.prompt (which is the first=20 > >argument passed in) before executing D.cmdloop() but then=20 > you are quite=20 > >right, there still isn't support for any form of readline,=20 > either the=20 > >java_readline that is in the interactive mode or even the Ctrl-N,=20 > >Ctrl-P stuff that the documentation speaks of. > > > >I suppose I could take a look at fixing this, although I'm not=20 > >extremely familiar with it. If you could point me to where the=20 > >java_readline stuff is integrated into the interactive mode, I could=20 > >have a go at it. >=20 > That code is located in org\python\util\ReadlineConsole.java.=20 >=20 > >Or, if you'd rather have someone more familiar with the internals do=20 > >it, I certainly understand. >=20 > Well, I prefer that it is implemented by someone who really=20 > want it to work. If you decide to try, feel free to ask=20 > questions and seek advice on jython-dev. >=20 > regards, > finn >=20 >=20 >=20 >=20 |
From: brian z. <bz...@zi...> - 2002-01-07 05:32:06
|
I would ask on comp.lang.python about the preferred method of patching. Conditionals are used in a number of places to determine the correct behaviour on a particular os. A quick grep of the Python 2.2 Lib shows at a minimum 29 occurences of 'if os.name == X' so it appears to be a viable solution. brian > -----Original Message----- > From: Steve Cohen > [mailto:jyt...@li...] On Behalf > Of Steve Cohen > Sent: Sunday, January 06, 2002 11:19 PM > To: brian zimmer; Finn Bock; jyt...@li... > Subject: RE: [Jython-users] More fun with Readline > > > Hmm, that won't work with my current implementation. My > current implementation is importing java classes. > > In two places. In one I am importing PySystemState to read > the registry. Is there an all-python way to read the > registry or its properties without referencing jython? If > so, I can avoid that import. > > The other is where I'm importing org.gnu.readline.Readline. > This seems to be essential. I can probably put the import > into a conditional code block that would never be met by > CPython users but would that be "clean" enough? > > What is standard practice around issues of this type? > > Steve > > > > > > -----Original Message----- > From: brian zimmer > Sent: Sun 1/6/2002 10:36 PM > To: Steve Cohen; 'Finn Bock'; jyt...@li... > Cc: > Subject: RE: [Jython-users] More fun with Readline > Steve, > > The majority of the python modules in Lib are copied from the > same version of the CPython distribution. Only when the > module is new and jython-centric (jreload, dbexts) or > drastically differs (string, socket) does it get checked into > Jython's CVS. > > For both development and production, I point at the current > Jython Lib and then the same version of CPython's Lib. This > makes sure I pick any Jython specific modules first before > trying to load the standard Python distribution's modules. > > For something like cmd.py, it's probably best to work with > the CPython version and submit your patch there along with > the explanation for why it is needed. Some CPython modules > check for os.name == 'java' > (unittest) and do something accordingly. > > Along this note, there was a change to string.py in CPython > 2.2 that includes three attributes not found in the Jython > version currently in > CVS: > > # not set to 'lowercase' or 'uppercase' because they can > change ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz' > ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' ascii_letters > = ascii_lowercase + ascii_uppercase > > Without them, the 2.2 version of cmd.py from (CPython) will > not work when imported from Jython 2.1+. I'm going to raise > a bug and provide the patch but you can paste these in your > local Jython version of string.py in the interim. > > Hope this helps. > > brian > > > > -----Original Message----- > > From: Steve Cohen > > [mailto:jyt...@li...] On Behalf > > Of Steve Cohen > > Sent: Sunday, January 06, 2002 9:58 PM > > To: Steve Cohen; Finn Bock; jyt...@li... > > Subject: RE: [Jython-users] More fun with Readline > > > > > > Well, I developed what I thought was a nice integration of > > readline into cmd.py. It worked perfectly and it made no > > assumptions about the presence or absence of readline. > > > > I started preparing a patch file. It involved a few of the > > java classes and cmd.py. All was going well and then I > > noticed that cmd.py was NOT in CVS. Where did it come from > > then? It must have come from the installation. From the > > docs I see that it may have come originally from CPython. > > OK, so what does this mean? Does it mean that my changes > > also have to work in CPython? > > > > I'm confused. > > > > > > -----Original Message----- > > From: Steve Cohen on behalf of Steve Cohen > > Sent: Sat 1/5/2002 6:28 PM > > To: Finn Bock; jyt...@li... > > Cc: > > Subject: RE: [Jython-users] More fun with Readline > > OK. On one level getting cmd.Cmd to use the readline is > > easy. Just import org.gnu.readline.Readline and I'm on my > > way. It works exactly as I want it to work. > > > > But of course, that won't do, since org.gnu.readline is > > optional. What I'd like to do is somehow grab the "interp" > > InteractiveConsole that is created in jython.main() and call > > IT'S raw_input method. But I don't see a way to do this. > > interp is a local variable to the main method. Is there some > > behind the scenes way I can hook this, to take advantage of > > its readline capabilities? That seems like the "right" way > > to do this, but is there a way to do it short of modifying > > jython.java? Seems kind of an extreme step for my first > > attempt to fix something in jython. > > > > > > -----Original Message----- > > From: Finn Bock > > Sent: Sat 1/5/2002 4:11 PM > > To: jyt...@li... > > Cc: Steve Cohen > > Subject: Re: [Jython-users] More fun with Readline > > [Steve Cohen] > > > > >There is a stack trace and it's the same whether or not > > >showJavaExceptions is true: > > > > That is OK. Thanks. > > > > >[scohen@sleepingbear scohen]$ jython > > >-Dpython.options.showJavaExceptions=3Dtrue > > >Jython 2.1 on java1.3.0 (JIT: null) > > >Type "copyright", "credits" or "license" for more information. > > >>>> import dbexts, isql > > >>>> d=3Ddbexts.dbexts("prod_sport") > > >>>> D=3Disql.IsqlCmd(d) > > >>>> D.use_rawinput=3D0 > > >>>> D.cmdloop() > > >Traceback (innermost last): > > > File "<console>", line 1, in ? > > > File "/usr/local/jython/jython-2.1/Lib/cmd.py", line 79, > in cmdloop > > >TypeError: write(): 1st arg can't be coerced to String > > > > Not quite the error situation that I expected, but that just > > goes to show how important the context is. I have added a bug > > report about the situation. > > > > >The 1st arg is None, which is arguably a bug in isql.IsqlCmd. > > > > Are you absolutely sure that self.prompt is None. AFAICT > > D.prompt should be an instance of the Prompt class and that > > will cause the stacktrace above. A None value will cause a > > NPE which is a different bug. Please recheck the value of D.prompt. > > > > >The code > > >in cmdloop can't handle it (can't coerce it to String). I can work > > >around the bug by explicitly setting D.prompt (which is the first > > >argument passed in) before executing D.cmdloop() but then > > you are quite > > >right, there still isn't support for any form of readline, > > either the > > >java_readline that is in the interactive mode or even the Ctrl-N, > > >Ctrl-P stuff that the documentation speaks of. > > > > > >I suppose I could take a look at fixing this, although I'm not > > >extremely familiar with it. If you could point me to where the > > >java_readline stuff is integrated into the interactive > mode, I could > > >have a go at it. > > > > That code is located in org\python\util\ReadlineConsole.java. > > > > >Or, if you'd rather have someone more familiar with the > internals do > > >it, I certainly understand. > > > > Well, I prefer that it is implemented by someone who really > > want it to work. If you decide to try, feel free to ask > > questions and seek advice on jython-dev. > > > > regards, > > finn > > > > > > > > > > > > |
From: Steve C. <St...@ig...> - 2002-01-09 18:01:09
|
Without the fix that Finn mentions in his bug report, it doesn't work for me either. -----Original Message----- From: Finn Bock [mailto:bc...@wo...] Sent: Wednesday, January 09, 2002 11:32 AM To: jyt...@li... Cc: brian zimmer Subject: Re: [Jython-users] More fun with Readline [brian on jy-user] >Steve, > >I tested isql on my Linux box with the Readline binary from the url you >pointed out earlier and was unable to reproduce the exception.=20 Even when use_rawinput is 0? > http://sourceforge.net/tracker/index.php?func=3Ddetail&aid=3D499973&group= _id =3D12867&atid=3D112867 I had to change the setup slightly because I don't have a database installed, but I think the exception is real. regards, finn _______________________________________________ Jython-users mailing list Jyt...@li... https://lists.sourceforge.net/lists/listinfo/jython-users |
From: brian z. <bz...@zi...> - 2002-01-09 18:22:58
|
I just checked in the fix. brian > -----Original Message----- > From: jyt...@li... > [mailto:jyt...@li...] On Behalf > Of Steve Cohen > Sent: Wednesday, January 09, 2002 12:01 PM > To: Finn Bock; jyt...@li... > Cc: brian zimmer > Subject: RE: [Jython-users] More fun with Readline > > > Without the fix that Finn mentions in his bug report, it > doesn't work for me either. > > -----Original Message----- > From: Finn Bock [mailto:bc...@wo...] > Sent: Wednesday, January 09, 2002 11:32 AM > To: jyt...@li... > Cc: brian zimmer > Subject: Re: [Jython-users] More fun with Readline > > > [brian on jy-user] > > >Steve, > > > >I tested isql on my Linux box with the Readline binary from > the url you > >pointed out earlier and was unable to reproduce the exception. > > Even when use_rawinput is 0? > > > > http://sourceforge.net/tracker/index.php?func=detail&aid=49997 3&group_id =12867&atid=112867 I had to change the setup slightly because I don't have a database installed, but I think the exception is real. regards, finn _______________________________________________ Jython-users mailing list Jyt...@li... https://lists.sourceforge.net/lists/listinfo/jython-users _______________________________________________ Jython-users mailing list Jyt...@li... https://lists.sourceforge.net/lists/listinfo/jython-users |
From: <bc...@wo...> - 2002-01-05 22:07:40
|
[Steve Cohen] >There is a stack trace and it's the same whether or not >showJavaExceptions is true: That is OK. Thanks. >[scohen@sleepingbear scohen]$ jython >-Dpython.options.showJavaExceptions=3Dtrue >Jython 2.1 on java1.3.0 (JIT: null) >Type "copyright", "credits" or "license" for more information. >>>> import dbexts, isql >>>> d=3Ddbexts.dbexts("prod_sport") >>>> D=3Disql.IsqlCmd(d) >>>> D.use_rawinput=3D0 >>>> D.cmdloop() >Traceback (innermost last): > File "<console>", line 1, in ? > File "/usr/local/jython/jython-2.1/Lib/cmd.py", line 79, in cmdloop >TypeError: write(): 1st arg can't be coerced to String Not quite the error situation that I expected, but that just goes to show how important the context is. I have added a bug report about the situation. >The 1st arg is None, which is arguably a bug in isql.IsqlCmd. Are you absolutely sure that self.prompt is None. AFAICT D.prompt should be an instance of the Prompt class and that will cause the stacktrace above. A None value will cause a NPE which is a different bug. Please recheck the value of D.prompt. >The code >in cmdloop can't handle it (can't coerce it to String). I can work >around the bug by explicitly setting D.prompt (which is the first >argument passed in) before executing D.cmdloop() but then you are quite >right, there still isn't support for any form of readline, either the >java_readline that is in the interactive mode or even the Ctrl-N, Ctrl-P >stuff that the documentation speaks of. > >I suppose I could take a look at fixing this, although I'm not extremely >familiar with it. If you could point me to where the java_readline >stuff is integrated into the interactive mode, I could have a go at it. That code is located in org\python\util\ReadlineConsole.java. >Or, if you'd rather have someone more familiar with the internals do it, >I certainly understand. Well, I prefer that it is implemented by someone who really want it to work. If you decide to try, feel free to ask questions and seek advice on jython-dev. regards, finn |
From: brian z. <bz...@zi...> - 2002-01-07 05:28:01
|
Steve, I tested isql on my Linux box with the Readline binary from the url you pointed out earlier and was unable to reproduce the exception. I see that cmd.py doesn't work with the Readline console, but I don't get any exceptions. I tested this with the latest CVS (2.1+) and Python 2.2 Lib. In addition, I checked in a new version of isql but I doubt that would have fixed this. brian > -----Original Message----- > From: Steve Cohen > [mailto:jyt...@li...] On Behalf > Of Steve Cohen > Sent: Saturday, January 05, 2002 8:53 AM > To: Finn Bock; jyt...@li... > Subject: RE: [Jython-users] More fun with Readline > > > There is a stack trace and it's the same whether or not > showJavaExceptions is true: > > [scohen@sleepingbear scohen]$ jython > -Dpython.options.showJavaExceptions=true > Jython 2.1 on java1.3.0 (JIT: null) > Type "copyright", "credits" or "license" for more information. > >>> import dbexts, isql > >>> d=dbexts.dbexts("prod_sport") > >>> D=isql.IsqlCmd(d) > >>> D.use_rawinput=0 > >>> D.cmdloop() > Traceback (innermost last): > File "<console>", line 1, in ? > File "/usr/local/jython/jython-2.1/Lib/cmd.py", line 79, in cmdloop > TypeError: write(): 1st arg can't be coerced to String > > The 1st arg is None, which is arguably a bug in isql.IsqlCmd. > The code in cmdloop can't handle it (can't coerce it to > String). I can work around the bug by explicitly setting > D.prompt (which is the first argument passed in) before > executing D.cmdloop() but then you are quite right, there > still isn't support for any form of readline, either the > java_readline that is in the interactive mode or even the > Ctrl-N, Ctrl-P stuff that the documentation speaks of. > > I suppose I could take a look at fixing this, although I'm > not extremely familiar with it. If you could point me to > where the java_readline stuff is integrated into the > interactive mode, I could have a go at it. Or, if you'd > rather have someone more familiar with the internals do it, I > certainly understand. > > > -----Original Message----- > From: Finn Bock > Sent: Sat 1/5/2002 7:44 AM > To: jyt...@li... > Cc: Steve Cohen > Subject: Re: [Jython-users] More fun with Readline > [Steve Cohen] > > >Now that I have readline working with jython, I come quickly to the > >next hurdle. Is it possible to integrate readline capabilities into > >jython-coded command interpreters based on cmd.Cmd? I > cannot get this > >to work at all. The docs on cmd.Cmd gave me some hope, but > I can't get > >any of it to work, not even the Ctrl-P, Ctrl-N stuff. I also tried > >setting use_rawinput to 0 to force readline, that produced an error > >when I executed cmdloop():=20 > > > >TypeError: write(): 1st arg can't be coerced to String > > Was there a stacktrace with that exception? > > It is not uncommon that TypeErrors are caused by a too > restrictive method signature in the jython core, but more > information is needed. Also try to start jython with the command: > > jython -Dpython.options.showJavaExceptions=true > > to get additional stacktrace information. > > >Does anyone have any ideas how readline can be made to work > in cmd.Cmd > >interpreters? > > I doubt that it works at the moment. raw_input() just call the > .readline() method on sys.stdin. > > Someone have to add support for readline in __builtin__.raw_input(). > > Anyone? > > regards, > finn > > > |
From: <bc...@wo...> - 2002-01-09 17:27:50
|
[brian on jy-user] >Steve, > >I tested isql on my Linux box with the Readline binary from the url you >pointed out earlier and was unable to reproduce the exception. Even when use_rawinput is 0? > http://sourceforge.net/tracker/index.php?func=detail&aid=499973&group_id=12867&atid=112867 I had to change the setup slightly because I don't have a database installed, but I think the exception is real. regards, finn |