electri / gmapcatcher

Automatically exported from code.google.com/p/gmapcatcher
0 stars 0 forks source link

Full Unicode support #223

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What new or enhanced feature are you proposing?
Many non-English characters are broken in the location bar. They are shown in 
Numerical reference, such as Σ etc..

What goal would this enhancement help you achieve?
It will make those characters easy to read.

Original issue reported on code.google.com by pirate.i...@gmail.com on 12 Oct 2010 at 10:12

GoogleCodeExporter commented 8 years ago
should be at least partially resolved in r1063; may need you to 'refresh' :-) 
the locations file though

Original comment by Mark111...@gmail.com on 19 Oct 2010 at 8:44

GoogleCodeExporter commented 8 years ago
Hello Mark,
     I'm also interested in writing of non-English characters, so I tried to test your change and it still doesn't work properly, although some progress is apparent.

When I search for a location with non-ASCII characters (I use Číhošť, which 
has very high ratio of non-ASCII/ASCII chars), the name gets somehow mangled 
(the letter š is mangled) in the GUI and of course also in the file 
'locations'.

I tried to edit the file 'locations' manually and repair the mangled name. When 
I run the maps.py and selected the location "Číhošť, Czech Republic", I got 
an error message on the stdout: 
Traceback (most recent call last):
  File "I:\Apps\gmapcatcher\maps.py", line 71, in changed_combo
    self.confirm_clicked(self)
  File "I:\Apps\gmapcatcher\maps.py", line 146, in confirm_clicked
    coord = locations[unicode(location)]
KeyError: u'\u010c\xedho\u0161\u0165, Czech Republic'
Traceback (most recent call last):
  File "I:\Apps\gmapcatcher\maps.py", line 751, in expose_cb
    self.draw_overlay()
  File "I:\Apps\gmapcatcher\maps.py", line 842, in draw_overlay
    self.showMarkers, self.gps, self.gps_direction()
  File "I:\Apps\gmapcatcher\gmapcatcher\widDrawingArea.py", line 262, in draw_ov
erlay
    screen_coord = self.coord_to_screen(coord[0], coord[1], zl)
TypeError: 'NoneType' object is unsubscriptable

I investigated it a bit and I found that it is very easy to get rid of the 
message, if you translate all lines from file 'locations' from UTF to unicode 
when reading them. I added a line 'line = line.decode("UTF-8")' into file 
fileUtils.py as the first command in the 'for' loop in function read_file.

If you need to know some locations with non-ASCII characters, you can use e.g. 
some list from wikipedia ( czech towns -- 
http://cs.wikipedia.org/wiki/Seznam_m%C4%9Bst_v_%C4%8Cesku_podle_po%C4%8Dtu_obyv
atel or http://cs.wikipedia.org/wiki/Seznam_m%C4%9Bst_v_%C4%8Cesku; slovak 
towns -- http://cs.wikipedia.org/wiki/Seznam_m%C4%9Bst_na_Slovensku )

Tomas

Original comment by peni...@gmail.com on 20 Oct 2010 at 1:12

GoogleCodeExporter commented 8 years ago
It sounds to me as though you could be introducing more obstacles – the UTF-8 
to python unicode, looking at the documentation it's unclear although it would 
seem python unicode *is* [should be!] UTF-8 – manually putting locations into 
the locations file; even so, you should commit your changes as they sound 
constructive

Original comment by Mark111...@gmail.com on 24 Oct 2010 at 4:39

GoogleCodeExporter commented 8 years ago
Hello Mark,
   the thing with unicode is as follows (as I understand it): Unicode is an universal multibyte encoding of characters. It doesn't matter, what the character is, it is just a (one) character. UTF-8 is a representation of unicode on harddisk--some characters are encoded using 1 byte, others by 2 bytes, so it is needed to decode/encode. Rule of thumb is: in memory use unicode, when you read/write a file (or anything like that), do conversion from/to UTF-8.

I will try to look at the issue in more detail, but it will take some time.

Original comment by peni...@gmail.com on 25 Oct 2010 at 11:09

GoogleCodeExporter commented 8 years ago
Hi Tomas,

well as I say it looks as though the python documentation is unclear, however 
normally "unicode" = UTF-8 [most people] / UTF-16 [windows world :-) – even 
there I've yet to double-check whether windows world wchar is in fact standard 
UTF-16 / is really a more limited set of 65536 codes ie no more than 2 bytes 
ever] today, while even internally in memory you need multibyte representations 
to allow encoding of all letters/etc in all alphabets;

One more question, for the 'normal' population of the locations file, when you 
send the czech placenames to the location search, what is the encoding of the 
returned page? Latin1? You should consider uncommenting some of the print 
commands that I kept in the revision, plus checking whether the charset re is 
working properly, then sending an appropriate 'encoding' string to python; As I 
was checking French placenames containing accents, hence the way I coded the 
revision so far

Original comment by Mark111...@gmail.com on 25 Oct 2010 at 11:45

GoogleCodeExporter commented 8 years ago
Helo Mark,
   answers to your questions are:
1) When I enter 'číhošť' to the location search and click Search, the 
returned page is in ISO-8859-1 and the encoding is detected correctly.
2) Now I look at the unicode table and I see that there are actually 2 letters 
š (s caron), which caused my problem described earlier. One is 0x009A and 
second is 0x0161. The letter š (s caron) sent in the HTML page is the one 
0x009A and in the resulting file locations it is encoded like 0xC2 0x9A. The 
other "s caron" is encoded like 0xC5 0xA1. When I tried to read a file with 
both letters in the Python IDE, both letters can be displayed, but the letter 
0x009A is displayed a bit lower, the vertical centre of the letter is more or 
less on the line, where other letters have its bottom. The letter 0x0161 is 
displayed normally (s +  caron).

For me it sounds that google sends bad character "s caron", 0x009A instead of 
0x0161. The same can probably happen for ž (z caron).

Original comment by peni...@gmail.com on 1 Nov 2010 at 8:57

GoogleCodeExporter commented 8 years ago
I tried to do some workaround and it seems that it works. I simply replace the 
"bad" characters with the "good" ones. The question is wether this is correct 
in all languages (for Czech and Slovak alphabet this is correct).

Second change is in fileUtils.py as I mentioned earlier. When a unicode string 
is written into a file handle (in function write_file in fileUtils.py), it is 
automatically translated to byte strings according to system settings (see 
http://docs.python.org/library/stdtypes.html and look for file.encoding). 
Probably all up to date systems translate unicode to UTF-8. When the file is 
read back, it is needed to translate UTF->unicode, because reading routine 
doesn't do it automatically.

Here is diff of my svn working copy.

Index: gmapcatcher/fileUtils.py
===================================================================
--- gmapcatcher/fileUtils.py    (revision 1066)
+++ gmapcatcher/fileUtils.py    (working copy)
@@ -13,6 +13,7 @@
         q = re.compile('.*zoom="([^"]+)".*')
         file = open(filePath, "r")
         for line in file:
+            line = line.decode("UTF-8")
             if (line[0] != '#'):
                 m = p.search(line)
                 if m:
Index: gmapcatcher/mapServers/googleMaps.py
===================================================================
--- gmapcatcher/mapServers/googleMaps.py    (revision 1066)
+++ gmapcatcher/mapServers/googleMaps.py    (working copy)
@@ -143,6 +143,10 @@
                 zoom = set_zoom(MAP_MAX_ZOOM_LEVEL - int(m2.group(1)))
 #        print "location from html", location
         location = unicode(location, encoding, errors='ignore')
+        location = location.replace(u"\u008A", u"\u0160") #Š = S caron
+        location = location.replace(u"\u008E", u"\u017D") #Ž = Z caron
+        location = location.replace(u"\u009A", u"\u0161") #š = s caron
+        location = location.replace(u"\u009E", u"\u017E") #ž = z caron
 #        print "unicode", location
         return location, (float(match.group('lat')), float(match.group('lng')), int(zoom))
     else:

I can commit the changes, but at first I'd like to know wether the translation 
of characters cannot cause some problems in other languages. This is question 
for anybody reading this comment. My email is penicka at gmail dot com.

Cheers,
   Tomas

Original comment by peni...@gmail.com on 3 Nov 2010 at 9:02

GoogleCodeExporter commented 8 years ago
Where can I download this revision?
I also hope the update will be released soon.

Original comment by pirate.i...@gmail.com on 5 Nov 2010 at 9:31

GoogleCodeExporter commented 8 years ago
Hello pirate,
  this workaround is not committed yet. If you are able to patch the files on your disc manually, just try it.  You need to start with revision at least r1063. If you have some very basic knowledge of Python (spaces at the beginning of the line), it should be no problem for you. If you have some troubles, contact me by email or leave some comment here. I need to know some information about your computer - operation system, how did you install the gmapcatcher (sources/installation package)  and which version or revision do you use. Also some information about you is welcomed, mainly which languages do you speak, i.e. in which languages can you test the workaround.

Tomas

Original comment by peni...@gmail.com on 7 Nov 2010 at 9:31

GoogleCodeExporter commented 8 years ago
Thank you for the reply.
I think I'd better wait for the release of the next version. :-)
I hope it would come soon.

Original comment by pirate.i...@gmail.com on 14 Nov 2010 at 7:30

GoogleCodeExporter commented 8 years ago
Hello,
     I did some googling and found, that the characters which cause my problems are non-standard and should not be used at all. See e.g. http://www.fileformat.info/info/unicode/char/9a/index.htm (notice mainly Character.isLetterOrDigit()   No). Google has probably a small bug. So I committed the changes in r1073.

-> pirate: if you are able to download the latest version using SVN, the change 
will be present (if not reverted).

Tomas

Original comment by peni...@gmail.com on 14 Nov 2010 at 7:54

GoogleCodeExporter commented 8 years ago
Bad news, this changes are causing a crash that was not occurring previously.
copy the attached file to your .googlemaps folder and you will see what happens 

Original comment by heldersepu on 24 Nov 2010 at 7:56

Attachments:

GoogleCodeExporter commented 8 years ago
Attached is an image of how it looked before the changes.

Original comment by heldersepu on 24 Nov 2010 at 8:03

Attachments:

GoogleCodeExporter commented 8 years ago
Hello Helder,
   hm, strange.
I home you ment the problem with the location M'Pumbes .... To investigate the 
problem, I'd like to ask several questions.

In which version did you create the file locations?
What did you type into the Query entry?

I did some quick investigation on some older version (revision 1063 with my 
changes from r1073) on Win XP and the application behaves strangely. I will try 
it later on the latest version and more systems (Mac OS X, Linux) and then I 
will do some summary.

Please answer my questions, it will really help. 
Please can you find out the unicode code of the apostrophe in M'pumbes? In your 
file locations it is coded by 3 bytes 47 A6 2B (in hex).

Tomas

Original comment by peni...@gmail.com on 25 Nov 2010 at 10:06

GoogleCodeExporter commented 8 years ago
Hey mate!

 The location file was created manually, I guess that answers your question; now I have a question:
what do you mean by "on some older version the application behaves strangely"? 

Original comment by heldersepu on 25 Nov 2010 at 12:35

GoogleCodeExporter commented 8 years ago
Hello,
  ad "strange behaviour": I used your file "location", and each time I wanted to enter anything into the query entry (just click mouse inside and enter some letter), the application crashed. It was in revision r1063, Windows XP (application installed from sources, because I do some development with pygtk anyway).

It seems that your text editor doesn't save file in UTF-8, or saves it in a bad 
way. A file created by the application would be in UTF-8 (if I understand 
correctly the python docs, see e.g. 
http://docs.python.org/release/2.6.6/library/stdtypes.html#file.encoding ). 
Please try to persuade your test editor to save the file in better UTF-8.

It will take some time to test the problem on the latest version, then I will 
write a (quite a long) summary.

Tomas

Original comment by peni...@gmail.com on 25 Nov 2010 at 1:50

GoogleCodeExporter commented 8 years ago
Hello everybody,
I'm very sorry, this comment is very long, you can skip to summary, if you are 
impatient.

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

Firstly about the crashes Helder reported above. I can confirm that the 
application crashes with my changes in file gmapcatcher/fileUtils.py.
However the problem is in the file. Even when my changes are disabled, some 
problems occur.

I tried to use, Helder's file "location" and run the application. It ended with 
a crash with a message " 'utf8' codec can't decode byte 0xa6)". It is logical, 
because the file contains invalid sequence (for UTF-8 encoding).

Then I commented out decoding from UTF-8 (which cause the crash), file 
gmapcatcher/fileUtils.py, line 17. The application started, but each time I 
wanted to enter anything into the query entry (just click mouse inside and 
enter some letter), the application crashed (Segmentation fault). It means that 
the Helder's file is badly formated and it makes the application crash anyway.

When I didn't try to enter a string into the Query entry and simple selected 
the location "MGƫpumbes-(Hill)-(HLL-code)" in the query drop down menu, I got 
an exception which slightly differed on the tested systems:

On Windows:
Logging to stdout is set.
Logging to stderror is set.
Starting GMapCatcher version 0.7.5.0.
. . . .

I:\Apps\gmapcatcher>maps.py
Logging to stdout is set.
Logging to stderror is set.
Starting GMapCatcher version 0.7.5.0.
Traceback (most recent call last):
  File "I:\Apps\gmapcatcher\maps.py", line 75, in changed_combo
    self.confirm_clicked(self)
  File "I:\Apps\gmapcatcher\maps.py", line 149, in confirm_clicked
    coord = locations[unicode(location)]
UnicodeDecodeError: 'utf8' codec can't decode byte 0xa6 in position 2: unexpecte
d code byte
Traceback (most recent call last):
  File "I:\Apps\gmapcatcher\maps.py", line 774, in expose_cb
    self.draw_overlay()
  File "I:\Apps\gmapcatcher\maps.py", line 865, in draw_overlay
    self.showMarkers, self.gps, self.gps_direction()
  File "I:\Apps\gmapcatcher\gmapcatcher\widDrawingArea.py", line 260, in draw_ov
erlay
    coord = locations.get(unicode(entry_name))
UnicodeDecodeError: 'utf8' codec can't decode byte 0xa6 in position 2: unexpecte
d code byte

On Linux:
Logging to stdout is set.
Logging to stderror is set.
Starting GMapCatcher version 0.7.5.0.
Traceback (most recent call last):
  File "./maps.py", line 75, in changed_combo
    self.confirm_clicked(self)
  File "./maps.py", line 149, in confirm_clicked
    coord = locations[unicode(location)]
KeyError: u'M\x92pumbes, Kruger Park, South Africa'
Traceback (most recent call last):
  File "./maps.py", line 774, in expose_cb
    self.draw_overlay()
  File "./maps.py", line 865, in draw_overlay
    self.showMarkers, self.gps, self.gps_direction()
  File "/home/nios/gmapcatcher/gmapcatcher/widDrawingArea.py", line 262, in draw_overlay
    screen_coord = self.coord_to_screen(coord[0], coord[1], zl)
TypeError: 'NoneType' object is unsubscriptable

On Mac OS X: 
The graphical window didn't appear at all, only the following text  was on 
output
Logging to stdout is set.
Logging to stderror is set.
Starting GMapCatcher version 0.7.5.0.
Bus error

But I use some unofficial built of GTK+ and pygtk, so don't bother with that

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

Secondly I tried to search for the location M'pumbes, and I had to do the 
following steps:

1) Enter into gmapcatcher query field a string like this: "pumbes Kruger Park" 
or "M’pumbes Kruger Park". The problem is with the apostrophe, if you enter 
normal apostrophe (Unicode Character 'APOSTROPHE' U+0027), it founds nothing. 
You must use either ASCII 0x92 there (Unicode Character 'PRIVATE USE TWO' 
U+0092), or Unicode Character 'RIGHT SINGLE QUOTATION MARK' (U+2019). Click on 
OK, the search returns some string.
2) The query field showed something like this: "M’pumbes, Kruger Park, South 
Africa" (with a strange sign instead of the apostrophe)
3) quit gmapcatcher. I've found that th eapostrophe is coded like C2 92, which 
is 'PRIVATE USE TWO' (U+0092). It doesn't mater which "apostrophe" did you use 
in 1.
4) Run gmapcatcher again - no problem except the fact that the location 
m'pumbes displays with some strange mark instead of the apostrophe (different 
that on your screenshot, but it can have a lot of reasons).

Then I did the third, probably most important experiment.

Then I wanted to verify wether the string returned from the search is correct. 
After searching "pumbes Kruger Park", a string "M’pumbes, Kruger Park, South 
Africa" appeared. So I deleted the ", South Africa" from the end and clicked on 
OK. It should find the same location, but no location was found. After 
replacing the strange character with apostrophe 0x92, it found the location as 
expected, but the character was replaced by the strange character again. 

When I replaced manualy the sequence C2 92 with E2 80 99 (these are hexa codes, 
not actual strings) and then run the application, the query drop down menu 
showed nice apostrophe and the searching also worked as expected. I've 
encoutered the same behaviour when doing a workaround for czech characters. 
When I queried "Číhošť", it returned "Číhošť, Czech Republic". When I 
deleted ", Czech Republic" and searched again, no location was found. After the 
correction in r1073 it works fine.

--------------------------------------------------------------------------------
---------------
Summary
For me it seems that the changes commited in r1073 do not cause a crash with 
properly created file "locations". 

It seems that some characters returned in the HTML page from Google are bad. I 
don't know wether this is a bug or an intended behaviour. A possibility that 
the location string is spoiled in the gmapcatcher application is not probable 
for me (but I didn't examine all the sources).
In addition to known czech characters it is also needed to translate the 
Unicode Character 'PRIVATE USE TWO' U+0092 to Unicode Character 'RIGHT SINGLE 
QUOTATION MARK' U+2019.

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

I was tested everything described here on Windows XP (application installed 
from sources, because I do some development with pygtk anyway), Debian 
GNU/Linux Lenny and Mac OS X 10.6.4.

Here are some sources, where some information about unicode can be found

http://www.fileformat.info/index.htm (main page of the portal)
http://www.fileformat.info/info/unicode/utf8.htm (specific page about UTF-8, 
very nice reading)
http://www.joelonsoftware.com/articles/Unicode.html (basics of UTF-8)

Original comment by peni...@gmail.com on 25 Nov 2010 at 9:11

GoogleCodeExporter commented 8 years ago
Hi

I spent some time with czech letters in Číhošť and also M'pumbes, Kruger 
Park, South Africa and r1082 (should be same as r1073).

IMO there are 2 seperate things - encoding of file locations and communication 
with google.

- locations file
================
- it should be simple. Just decide what encoding to use. I would vote for 
UTF-8. It should be quite ease to validate whether file is or is not properly 
encoded with chosen encoding. Helder's file is inocrrectly formatted. Text 
"MG...pumbe" is not properly formated UTF-8 (trying to make some conversions 
with iconv tool and also 'file' utility shows: 'locations: ISO-8859 text, with 
CRLF line terminators').

- communication with google:
============================
1. simple "solution". It's not really solution that's why I used "". 
Try use as agent: "Mozilla 5.0" instead "GMapCatcher/0.7.5.0 
+http://code.google.com/p/gmapcatcher/". 
openanything.py: 92: request.add_header('User-Agent', "Mozilla 5.0")
Now response is in UTF-8 and everything is properly formatted. WOW. Magic :)
Well - "Mozilla 5.0" is not really solution. Solution should be 
- don't change user agent
- add HTTP headers that google understands and responds in UTF-8 instead 
ISO-8859-1.
I was trying to find some working combination, but was unsuccessful.

2. not a solution - iso-8859-1:

- IMO encoding is not properly detected. Pattern is almost right in 
|googleMaps.py: 100: encpa = 'charset[ ]?= ?([^ ]+)'|
After |googleMaps.py: 104: encoding = match.group(1)| now encoding is 
'iso-8859-1"' instead 'iso-8859-1'. Line 100 shoud be:
|encpa = 'charset[ ]?= ?([^ ]+)"'| But this is minor issue as python correctly 
uses encoding regardless attachet '"'.

- location retrieved in |googleMaps.py: 117: location = match.group(1)| 
contains weird characters:
'Č<ED>ho<9A>ť
From iso-8859-1 (http://www.fileformat.info/info/charset/ISO-8859-1/list.htm)
í  LATIN SMALL LETTER I WITH ACUTE (U+00ED)    ed
š  SINGLE CHARACTER INTRODUCER (U+009A)    9a
<9A> is not 's-caron' but in iso-8859-1 looks like 's-caron' 
(http://www.fileformat.info/info/unicode/char/0161/index.htm)
For now we found in tests 5 chars that looks like desired characters but are 
not. 

When I look into iso-8859-1 table there is more characters that need our 
'manual translation':
- PARTIAL LINE BACKWARD (U+008C)
- STRING TERMINATOR (U+009C)
- SET TRANSMIT STATE (U+0093)
- CANCEL CHARACTER (U+0094)
...

That's not the way. Just try to find proper http request headers.

Original comment by standa31...@gmail.com on 27 Nov 2010 at 12:19

GoogleCodeExporter commented 8 years ago
- My apology to Tomas: I wrote few times "we" while all the work was done by 
you.

- I created (hopefully) complete table of incompatible characters. See r1083.
If somebody finds proper combination of http headers - would be great :)

Original comment by standa31...@gmail.com on 27 Nov 2010 at 8:58

GoogleCodeExporter commented 8 years ago
Hello,
  I agree with Standa. If it is possible to change the Google's page encoding to UTF-8, it will be much more simple for us.

An obvious try with "Accept-Charset: utf-8" doesn't work.

After some googling I found another hack: add to the URI the following 
parameter: "&oe=utf-8" (oe probably stands for output encoding. I tested it in 
Firefox and I was able to change the charset from UTF-8 to ISO8859-1, so I 
guess that Google's engine really listens to this parameter). But it would 
probably require some more changes in the openAnything.py file.

Pretending that we are Firefox or Mozilla also works. I think that this 
solution is slightly better that the "&oe=utf-8", because major web browsers 
will be always supported by Google and major browsers are expected to work in 
UTF-8. Both the solutions are not very clean hacks, but if Google does not 
support standard headers...

Cheers,
       Tomas

Original comment by peni...@gmail.com on 29 Nov 2010 at 3:30

GoogleCodeExporter commented 8 years ago
I have committed some changes in this issue:
1) added User-Agent: Mozilla/5.0 to the search request, now Google returns page 
in UTF-8. It is a half way solution until somebody finds a better solution, 
2) translation of problematic iso8859-1 moved to a separate function and used 
method translate instead of multiple replace (I understood the documentation 
eventually).

r1091 

Original comment by peni...@gmail.com on 29 Nov 2010 at 9:37

GoogleCodeExporter commented 8 years ago
I just added a try except that prevents bad lines from been loaded, see r1096 
for more details...

Original comment by heldersepu on 1 Dec 2010 at 3:06

GoogleCodeExporter commented 8 years ago
Problems while trying to run from svn repository.

CMD:  ./download.py --location="Paris, France"

Result: 
location = paris, france
downloading the following location: paris, france
Download Paris, France (48.856667, 2.350987), range (0.050000, 0.050000), zoom 
level: 17 to 2

Downloading zl 17       not all arguments converted during string formatting
=*
Downloading zl 16       not all arguments converted during string formatting
=*
Downloading zl 15       not all arguments converted during string formatting
=*
Downloading zl 14       not all arguments converted during string formatting
=*
Downloading zl 13       not all arguments converted during string formatting
=*
Downloading zl 12       not all arguments converted during string formatting
=*
Downloading zl 11       not all arguments converted during string formatting
=*
Downloading zl 10       not all arguments converted during string formatting
=*
Downloading zl 9        not all arguments converted during string formatting
=*
Downloading zl 8        not all arguments converted during string formatting
=*
Downloading zl 7        not all arguments converted during string formatting
=*
Downloading zl 6        not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*
Downloading zl 5        not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*
Downloading zl 4        not all arguments converted during string formatting
 not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
===*not all arguments converted during string formatting
 not all arguments converted during string formatting
==*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*
Downloading zl 3        not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
 not all arguments converted during string formatting
==*not all arguments converted during string formatting
=*not all arguments converted during string formatting
 not all arguments converted during string formatting
=*not all arguments converted during string formatting
==*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
 not all arguments converted during string formatting
=*not all arguments converted during string formatting
==*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
 not all arguments converted during string formatting
==*not all arguments converted during string formatting
=*not all arguments converted during string formatting
 not all arguments converted during string formatting
==*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
 not all arguments converted during string formatting
=*not all arguments converted during string formatting
==*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
 not all arguments converted during string formatting
==*
Downloading zl 2        not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
 not all arguments converted during string formatting
==*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
 not all arguments converted during string formatting
 not all arguments converted during string formatting
===*not all arguments converted during string formatting
 not all arguments converted during string formatting
==*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
 not all arguments converted during string formatting
==*not all arguments converted during string formatting
 not all arguments converted during string formatting
==*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
 not all arguments converted during string formatting
==*not all arguments converted during string formatting
 not all arguments converted during string formatting
==*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
 not all arguments converted during string formatting
==*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
 not all arguments converted during string formatting
==*not all arguments converted during string formatting
=*not all arguments converted during string formatting
 not all arguments converted during string formatting
=*not all arguments converted during string formatting
==*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*not all arguments converted during string formatting
 not all arguments converted during string formatting
==*not all arguments converted during string formatting
=*not all arguments converted during string formatting
=*
Download Complete!
. . . . .

What to do with this problem ? 
I'm on gentoo with dev-lang/python-2.6.6-r1 selected as default python 
interpreter.

Original comment by the.warl...@gmail.com on 20 Jan 2011 at 1:36

GoogleCodeExporter commented 8 years ago

Original comment by heldersepu on 29 Mar 2011 at 2:17