[Idle-dev] [ idlefork-Patches-682347 ] Another locale encoding patch

SourceForge.net noreply@sourceforge.net
Wed, 09 Jul 2003 21:13:21 -0700


Patches item #682347, was opened at 2003-02-07 09:47
Message generated for change (Comment added) made by kbk
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=309579&aid=682347&group_id=9579

Category: None
Group: None
>Status: Closed
>Resolution: Accepted
Priority: 5
Submitted By: Kirill Simonov (kirill_simonov)
>Assigned to: Kurt B. Kaiser (kbk)
Summary: Another locale encoding patch

Initial Comment:
This patch is for use with the patch #615312.

With this patch, stdin.readline() returns an ordinary
string in the locale's encoding, not an Unicode string.

----------------------------------------------------------------------

>Comment By: Kurt B. Kaiser (kbk)
Date: 2003-07-09 23:13

Message:
Logged In: YES 
user_id=149084

Also applied to IDLEfork.  Note that the patch
also changes run.py, Rev 1.23
PyShell.py Rev 1.76 in IDLEfork.

----------------------------------------------------------------------

Comment By: Martin v. Löwis (loewis)
Date: 2003-06-22 02:53

Message:
Logged In: YES 
user_id=21627

Thanks for the patch. Applied (with amendments) as
PyShell.py 1.78.

----------------------------------------------------------------------

Comment By: Martin v. Löwis (loewis)
Date: 2003-03-24 04:02

Message:
Logged In: YES 
user_id=21627

Reason #2 is obsolete now; raw_input *can* result in Unicode 
strings in Python 2.3.

I can sympathise with the patch. However, I would like to see 
it combined with a patch to let applications determine the 
encoding used, e.g. by querying sys.stdin.encoding. 
Otherwise, getting raw bytes will complicate matters. See 
also Python patch #612627, which adds the encoding 
attribute to a terminal stdout.

----------------------------------------------------------------------

Comment By: Kirill Simonov (kirill_simonov)
Date: 2003-02-17 18:25

Message:
Logged In: YES 
user_id=36553

There are no such a problem with Idlefork.
The author of the post was using the original IDLE from the
2.2 distribution.

Note the line in the traceback:

File "[...]\Tools\idle\ColorDelegator.py", line 196, in
recolorize_main
    if value in ("def", "class"):

The line 196 of ColorDelegator.py from Idlefork 0.9a2 is
different.

----------------------------------------------------------------------

Comment By: Kurt B. Kaiser (kbk)
Date: 2003-02-17 17:14

Message:
Logged In: YES 
user_id=149084

Does this solve the problem mentioned in
http://mail.python.org/pipermail/idle-dev/2003-February/001628.html


----------------------------------------------------------------------

Comment By: Kirill Simonov (kirill_simonov)
Date: 2003-02-07 10:35

Message:
Logged In: YES 
user_id=36553

Two reasons.

1. The following script does not work correctly in IDLE:

# -*- encoding: koi8-r -*-
name = raw_input("What's your name?")
print "Hi %s!" % name

I use russian phrases here, of course.

And if I enter my name using cyrillic letters,
I get UnicodeError. This is because I mixed
a Unicode string with with an 8-bit string.

I know that I can use unicode literals,
but I don't think that my students should know
anything about Unicode, 6 cyrrilic encodings,
etc, especially when they are writing their first
program.

Note that this program is absolutely correct and
run perfectly from console. So I think that it
should work in IDLE too.

2. I believe that raw_input() and stdin.readline()
must always return either Unicode strings or
8-bit strings, but do not mix them.

P.S. I think that -*- encoding -*- comments are
very unfriendly for newbies too, but that's another
story.

----------------------------------------------------------------------

Comment By: Guido van Rossum (gvanrossum)
Date: 2003-02-07 09:55

Message:
Logged In: YES 
user_id=6380

Why would you want that?

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=309579&aid=682347&group_id=9579