From: Peter L. <pet...@te...> - 2009-04-18 14:30:12
|
Hi, Need some hint to understand sorting i python. Example see: http://www.gramps-project.org/bugs/view.php?id=2933 As can be seen surnames beginning with V and W are sorted "together!", not as separate. If I change the sort method from xxx.sort(locale.strcoll) to just xxx.sort() I get V and W sorted separate, but of course names beginning with non ascii letters fail. Why is V and W treated differently in the two sort methods? I have seen this problem not only in Narr Web Rep, but also in the place view. Note I'm using Swedish locale. How does it work with other locales? /Peter |
From: Peter L. <pet...@te...> - 2009-04-18 14:47:13
|
Den Saturday 18 April 2009 16.30.00 skrev Peter Landgren: > Hi, > > Need some hint to understand sorting i python. > Example see: > http://www.gramps-project.org/bugs/view.php?id=2933 > > As can be seen surnames beginning with V and W are sorted "together!", not > as separate. If I change the sort method from xxx.sort(locale.strcoll) to > just xxx.sort() I get V and W sorted separate, but of course names > beginning with non ascii letters fail. > > Why is V and W treated differently in the two sort methods? > > I have seen this problem not only in Narr Web Rep, but also in the place > view. > > Note I'm using Swedish locale. How does it work with other locales? > > /Peter I tested with my system set to English locale and then V and W are sorted as separate letters. So, V and W are treated as the same letter when non English locale? /Peter |
From: Serge N. <Ser...@fr...> - 2009-04-18 15:32:31
|
Peter Landgren a écrit : > Hi, > > Need some hint to understand sorting i python. > > Example see: > > http://www.gramps-project.org/bugs/view.php?id=2933 > > As can be seen surnames beginning with V and W are sorted "together!", > not as separate. > > If I change the sort method from xxx.sort(locale.strcoll) to just > xxx.sort() I get V and W sorted separate, but of course names beginning > with non ascii letters fail. I think the difference is the following : The sort function without argument use the C locale for sorting. In this case, the C collating sequence is the ASCII sequence, so the "V" and "W" characters are differents. When you use the argument, you use your locale ( LC_* and LANG environment variables ) At the prompt, the locale command gives you your environment for that. In this case, depending on that, you can have "V" and "W" the same for sorting. This is not python the problem, but the collating sequence depending on your locale. In your case, the "V" and "W" are similar for your locale. > > Why is V and W treated differently in the two sort methods? > > I have seen this problem not only in Narr Web Rep, but also in the place > view. > > Note I'm using Swedish locale. How does it work with other locales? > > /Peter |
From: Peter L. <pet...@te...> - 2009-04-18 16:29:40
|
Yes, You are probably right. In Swedish W (and Q) is only used in names too make them look better than with a V (or K). The pronunciation is the same for V and W. There are no "normal" words in Swedish beginning with W (or Q). Except maybe some foreign "borrowed" word. However the result of this in the Narrated Web Report does not look very appealing! Any idea how to collect V and W separately just for this purpose? /Peter Den Saturday 18 April 2009 17.32.33 skrev Serge Noiraud: > Peter Landgren a écrit : > > Hi, > > > > Need some hint to understand sorting i python. > > > > Example see: > > > > http://www.gramps-project.org/bugs/view.php?id=2933 > > > > As can be seen surnames beginning with V and W are sorted "together!", > > not as separate. > > > > If I change the sort method from xxx.sort(locale.strcoll) to just > > xxx.sort() I get V and W sorted separate, but of course names beginning > > with non ascii letters fail. > > I think the difference is the following : > > The sort function without argument use the C locale for sorting. > In this case, the C collating sequence is the ASCII sequence, so > the "V" and "W" characters are differents. > > When you use the argument, you use your locale ( LC_* and LANG > environment variables ) > > At the prompt, the locale command gives you your environment for that. > In this case, depending on that, you can have "V" and "W" the same for > sorting. > > This is not python the problem, but the collating sequence depending on > your locale. In your case, the "V" and "W" are similar for your locale. > > > Why is V and W treated differently in the two sort methods? > > > > I have seen this problem not only in Narr Web Rep, but also in the place > > view. > > > > Note I'm using Swedish locale. How does it work with other locales? > > > > /Peter |
From: Serge N. <Ser...@fr...> - 2009-04-18 18:12:44
|
Peter Landgren a écrit : > Yes, > > You are probably right. In Swedish W (and Q) is only used in names too > make them look better than with a V (or K). The pronunciation is the > same for V and W. > > There are no "normal" words in Swedish beginning with W (or Q). Except > maybe some foreign "borrowed" word. However the result of this in the > Narrated Web Report does not look very appealing! > > Any idea how to collect V and W separately just for this purpose? I don't know if it is possible to select a locale for a report. I think it's a feature which is not implemented. The only way to create a report should be to launch gramps in command line specifying the locale. The page below explains this : http://gramps-project.org/wiki/index.php?title=Gramps_3.0_Wiki_Manual_-_Command_Line If you select the example at the end of this page to create a report : gramps -O file.grdb -a report -p name=timeline,off=pdf,of=my_timeline.pdf If you want to create the same report with a specific locale, do : LC_COLLATE=C gramps -O file.grdb -a report -p name=timeline,off=pdf,of=my_timeline.pdf LC_COLLATE is the environment variable for sorting. In this case I selected C which means ASCII. Be carefull, you could have unpredictable result with utf-8 databases. Hope it helps Serge > /Peter > > Den Saturday 18 April 2009 17.32.33 skrev Serge Noiraud: > > > Peter Landgren a écrit : > > > > Hi, > > > > > > Need some hint to understand sorting i python. > > > > > > Example see: > > > > > > http://www.gramps-project.org/bugs/view.php?id=2933 > > > > > > As can be seen surnames beginning with V and W are sorted "together!", > > > not as separate. > > > > > > If I change the sort method from xxx.sort(locale.strcoll) to just > > > xxx.sort() I get V and W sorted separate, but of course names beginning > > > with non ascii letters fail. > > > > I think the difference is the following : > > > > The sort function without argument use the C locale for sorting. > > In this case, the C collating sequence is the ASCII sequence, so > > the "V" and "W" characters are differents. > > > > When you use the argument, you use your locale ( LC_* and LANG > > environment variables ) > > > > At the prompt, the locale command gives you your environment for that. > > In this case, depending on that, you can have "V" and "W" the same for > > sorting. > > > > This is not python the problem, but the collating sequence depending on > > your locale. In your case, the "V" and "W" are similar for your locale. > > > > > Why is V and W treated differently in the two sort methods? > > > > > > I have seen this problem not only in Narr Web Rep, but also in the place > > > view. > > > > > > Note I'm using Swedish locale. How does it work with other locales? > > > > > > /Peter |
From: Peter L. <pet...@te...> - 2009-04-19 09:10:20
|
Serge, Thanks for all info. However, there are no problems with other reports than Narr. Web Report, where the alphabetic order using the first letter in the surnames or places is used. This does not look nice; ṫhere should be one entry for V and one for W. W Wacker 1 Wagner 1 Wahlén 2 V Vahlström 1 W Wahlström 17 Waling 2 V Vallenius 1 W Wallenstrand 3 V Vallgren 8 W Wallgren 15 V Vallin 5 W Wallin 2 The previous mail was too big for the list. /Peter Den Saturday 18 April 2009 20.13.00 skrev Serge Noiraud: > Peter Landgren a écrit : > > Yes, > > > > You are probably right. In Swedish W (and Q) is only used in names too > > make them look better than with a V (or K). The pronunciation is the > > same for V and W. > > > > There are no "normal" words in Swedish beginning with W (or Q). Except > > maybe some foreign "borrowed" word. However the result of this in the > > Narrated Web Report does not look very appealing! > > > > Any idea how to collect V and W separately just for this purpose? > > I don't know if it is possible to select a locale for a report. > I think it's a feature which is not implemented. > > The only way to create a report should be to launch gramps in command > line specifying the locale. The page below explains this : > > http://gramps-project.org/wiki/index.php?title=Gramps_3.0_Wiki_Manual_-_Com >mand_Line > > If you select the example at the end of this page to create a report : > gramps -O file.grdb -a report -p name=timeline,off=pdf,of=my_timeline.pdf > > If you want to create the same report with a specific locale, do : > LC_COLLATE=C gramps -O file.grdb -a report -p > name=timeline,off=pdf,of=my_timeline.pdf > > LC_COLLATE is the environment variable for sorting. > In this case I selected C which means ASCII. > Be carefull, you could have unpredictable result with utf-8 databases. > > Hope it helps > > Serge > > > /Peter > > > > Den Saturday 18 April 2009 17.32.33 skrev Serge Noiraud: > > > Peter Landgren a écrit : > > > > Hi, > > > > > > > > Need some hint to understand sorting i python. > > > > > > > > Example see: > > > > > > > > http://www.gramps-project.org/bugs/view.php?id=2933 > > > > > > > > As can be seen surnames beginning with V and W are sorted > > > > "together!", not as separate. > > > > > > > > If I change the sort method from xxx.sort(locale.strcoll) to just > > > > xxx.sort() I get V and W sorted separate, but of course names > > > > beginning with non ascii letters fail. > > > > > > I think the difference is the following : > > > > > > The sort function without argument use the C locale for sorting. > > > In this case, the C collating sequence is the ASCII sequence, so > > > the "V" and "W" characters are differents. > > > > > > When you use the argument, you use your locale ( LC_* and LANG > > > environment variables ) > > > > > > At the prompt, the locale command gives you your environment for that. > > > In this case, depending on that, you can have "V" and "W" the same for > > > sorting. > > > > > > This is not python the problem, but the collating sequence depending on > > > your locale. In your case, the "V" and "W" are similar for your locale. > > > > > > > Why is V and W treated differently in the two sort methods? > > > > > > > > I have seen this problem not only in Narr Web Rep, but also in the > > > > place view. > > > > > > > > Note I'm using Swedish locale. How does it work with other locales? > > > > > > > > /Peter -- Peter Landgren Talken Hagen 671 94 BRUNSKOG 0570-530 21 070-635 4719 pet...@te... Skype: pgl4820.2 |
From: Peter L. <pet...@te...> - 2009-04-18 19:26:35
|
Serge, Thanks for all info. However, there are no problems with other reports than Narr. Web Report, where the alphabetic order using the first letter in the surnames or places is used. This does not look nice; ṫhere should be one entry for V and one for W. W Wacker 1 Wagner 1 Wahlén 2 V Vahlström 1 W Wahlström 17 Waling 2 V Vallenius 1 W Wallenstrand 3 V Vallgren 8 W Wallgren 15 V Vallin 5 W Wallin 2 Wallon 2 Watz 1 Wentzell 1 Westberg 1 Westerberg 1 Westerdahl 13 Westerlund 2 Westin 1 Westman 13 Westmark 1 Wettersten 1 Whippa-Danielsson 1 Wickberg 1 Widegren 1 Widén 3 V Viderstedt 14 W Widgren 4 Wiggman 1 V Vigsten 3 Vikberg 1 Viklund 5 Viksten 1 Vikström 2 Vilhelmsson Burén 2 Viman 1 Vinberg 7 Vinkvist 3 W Winqvist 2 Wirström 5 Wistrand 2 Witt 1 V von Schinkel 3 V von Vicken 1 W Woolford 1 V Vätz 1 (Copied from the web page, when no style was used.) /Peter > Peter Landgren a écrit : > > Yes, > > > > You are probably right. In Swedish W (and Q) is only used in names too > > make them look better than with a V (or K). The pronunciation is the > > same for V and W. > > > > There are no "normal" words in Swedish beginning with W (or Q). Except > > maybe some foreign "borrowed" word. However the result of this in the > > Narrated Web Report does not look very appealing! > > > > Any idea how to collect V and W separately just for this purpose? > > I don't know if it is possible to select a locale for a report. > I think it's a feature which is not implemented. > > The only way to create a report should be to launch gramps in command > line specifying the locale. The page below explains this : > > http://gramps-project.org/wiki/index.php?title=Gramps_3.0_Wiki_Manual_-_Com >mand_Line > > If you select the example at the end of this page to create a report : > gramps -O file.grdb -a report -p name=timeline,off=pdf,of=my_timeline.pdf > > If you want to create the same report with a specific locale, do : > LC_COLLATE=C gramps -O file.grdb -a report -p > name=timeline,off=pdf,of=my_timeline.pdf > > LC_COLLATE is the environment variable for sorting. > In this case I selected C which means ASCII. > Be carefull, you could have unpredictable result with utf-8 databases. > > Hope it helps > > Serge > > > /Peter > > > > Den Saturday 18 April 2009 17.32.33 skrev Serge Noiraud: > > > Peter Landgren a écrit : > > > > Hi, > > > > > > > > Need some hint to understand sorting i python. > > > > > > > > Example see: > > > > > > > > http://www.gramps-project.org/bugs/view.php?id=2933 > > > > > > > > As can be seen surnames beginning with V and W are sorted > > > > "together!", not as separate. > > > > > > > > If I change the sort method from xxx.sort(locale.strcoll) to just > > > > xxx.sort() I get V and W sorted separate, but of course names > > > > beginning with non ascii letters fail. > > > > > > I think the difference is the following : > > > > > > The sort function without argument use the C locale for sorting. > > > In this case, the C collating sequence is the ASCII sequence, so > > > the "V" and "W" characters are differents. > > > > > > When you use the argument, you use your locale ( LC_* and LANG > > > environment variables ) > > > > > > At the prompt, the locale command gives you your environment for that. > > > In this case, depending on that, you can have "V" and "W" the same for > > > sorting. > > > > > > This is not python the problem, but the collating sequence depending on > > > your locale. In your case, the "V" and "W" are similar for your locale. > > > > > > > Why is V and W treated differently in the two sort methods? > > > > > > > > I have seen this problem not only in Narr Web Rep, but also in the > > > > place view. > > > > > > > > Note I'm using Swedish locale. How does it work with other locales? > > > > > > > > /Peter -- Peter Landgren Talken Hagen 671 94 BRUNSKOG 0570-530 21 070-635 4719 pet...@te... Skype: pgl4820.2 |
From: Serge N. <Ser...@fr...> - 2009-04-19 11:56:54
|
Hi, Peter, perhaps I found the problem. Here is how I found it and it works for me : Peter Landgren a écrit : > Serge, > > Thanks for all info. However, there are no problems with other reports > than Narr. Web Report, where the alphabetic order using the first letter > in the surnames or places is used. > > This does not look nice; ṫhere should be one entry for V and one for W. ... OK I create a file with your names and installed the swedish locale on my machine. I sort it with the french language : #locale LANG=fr_FR.UTF-8 LC_CTYPE="fr_FR.UTF-8" LC_NUMERIC="fr_FR.UTF-8" LC_TIME="fr_FR.UTF-8" LC_COLLATE="fr_FR.UTF-8" LC_MONETARY="fr_FR.UTF-8" LC_MESSAGES="fr_FR.UTF-8" LC_PAPER="fr_FR.UTF-8" LC_NAME="fr_FR.UTF-8" LC_ADDRESS="fr_FR.UTF-8" LC_TELEPHONE="fr_FR.UTF-8" LC_MEASUREMENT="fr_FR.UTF-8" LC_IDENTIFICATION="fr_FR.UTF-8" LC_ALL= #sort sort.test Vahlström Vallenius Vallgren Vallin Vätz Viderstedt Vigsten Vikberg Viklund Viksten Vikström Vilhelmsson Burén Viman Vinberg Vinkvist von Schinkel von Vicken Wacker Wagner Wahlén Wahlström Waling Wallenstrand Wallgren Wallin Wallon Watz Wentzell Westberg Westerberg Westerdahl Westerlund Westin Westman Westmark Wettersten Whippa-Danielsson Wickberg Widegren Widén Widgren Wiggman Winqvist Wirström Wistrand Witt Woolford # It seems correct for me. Now with the swedish language : #export LANG=sv_SE.utf8 #locale LANG=sv_SE.utf8 LC_CTYPE="sv_SE.utf8" LC_NUMERIC="sv_SE.utf8" LC_TIME="sv_SE.utf8" LC_COLLATE="sv_SE.utf8" LC_MONETARY="sv_SE.utf8" LC_MESSAGES="sv_SE.utf8" LC_PAPER="sv_SE.utf8" LC_NAME="sv_SE.utf8" LC_ADDRESS="sv_SE.utf8" LC_TELEPHONE="sv_SE.utf8" LC_MEASUREMENT="sv_SE.utf8" LC_IDENTIFICATION="sv_SE.utf8" LC_ALL= #sort sort.test Wacker Wagner Wahlén Vahlström Wahlström Waling Vallenius Wallenstrand Vallgren Wallgren Vallin Wallin Wallon Watz Wentzell Westberg Westerberg Westerdahl Westerlund Westin Westman Westmark Wettersten Whippa-Danielsson Wickberg Widegren Widén Viderstedt Widgren Wiggman Vigsten Vikberg Viklund Viksten Vikström Vilhelmsson Burén Viman Vinberg Vinkvist Winqvist Wirström Wistrand Witt von Schinkel von Vicken Woolford Vätz # I effectively found the same result than the python sort. Now with the LC_COLLATE=C and the swedish language : #LC_COLLATE=C sort sort.test Vahlström Vallenius Vallgren Vallin Viderstedt Vigsten Vikberg Viklund Viksten Vikström Vilhelmsson Burén Viman Vinberg Vinkvist Vätz Wacker Wagner Wahlström Wahlén Waling Wallenstrand Wallgren Wallin Wallon Watz Wentzell Westberg Westerberg Westerdahl Westerlund Westin Westman Westmark Wettersten Whippa-Danielsson Wickberg Widegren Widgren Widén Wiggman Winqvist Wirström Wistrand Witt Woolford von Schinkel von Vicken # It seems correct to me. You should get this result. If we want the "v" and "V" are together, we should sort the first letter with uppercase. I have the same problem in french if I have Noiraud and noiraud, I have two letters "N" So the ASCII sort is not the solution. It should be useful to know how it works for other countries : Chinese, cyrillic Indian alphabet and others ? There is three bugs in NarrativeWeb.py 1 : The normalize function use NFC in one place and NFKC in all others. either we use NFC or we use NFKC, but don't mix these two modes. 2 : One sort function does not use the locale.strcoll 3 : There is a problem with the following statement: if letter is not last_letter: So I have a patch you can test. This works for me : --- NarrativeWeb.py (révision 12473) +++ NarrativeWeb.py (copie de travail) @@ -1509,7 +1509,7 @@ index_val = "%90d_%s" % (999999999-len(data_list), surname) temp_list[index_val] = (surname, data_list) temp_keys = temp_list.keys() - temp_keys.sort() + temp_keys.sort(locale.strcoll) person_handle_list = [] for key in temp_keys: person_handle_list.append(temp_list[key]) @@ -1525,7 +1525,7 @@ # the surname letter = normalize('NFKC', surname)[0].upper() - if letter is not last_letter: + if letter != last_letter: last_letter = letter of.write('\t\t<tr class="BeginLetter">\n') of.write('\t\t\t<td class="ColumnLetter"><a name="%s">%s</a></td>\n' @@ -3602,7 +3602,7 @@ keyname = get_place_keyname(db, handle) if keyname: - c = normalize('NFC', keyname)[0].upper() + c = normalize('NFKC', keyname)[0].upper() first_letters.append(c) return first_letters If it works and everybody agree, I'll commit this patch. > (Copied from the web page, when no style was used.) > > /Peter > > > Peter Landgren a écrit : > > > > Yes, > > > > > > > > You are probably right. In Swedish W (and Q) is only used in names too > > > > make them look better than with a V (or K). The pronunciation is the > > > > same for V and W. > > > > > > > > There are no "normal" words in Swedish beginning with W (or Q). Except > > > > maybe some foreign "borrowed" word. However the result of this in the > > > > Narrated Web Report does not look very appealing! > > > > > > > > Any idea how to collect V and W separately just for this purpose? > > > > > > I don't know if it is possible to select a locale for a report. > > > I think it's a feature which is not implemented. > > > > > > The only way to create a report should be to launch gramps in command > > > line specifying the locale. The page below explains this : > > > > > > > http://gramps-project.org/wiki/index.php?title=Gramps_3.0_Wiki_Manual_-_Com > > >mand_Line > > > > > > If you select the example at the end of this page to create a report : > > > gramps -O file.grdb -a report -p name=timeline,off=pdf,of=my_timeline.pdf > > > > > > If you want to create the same report with a specific locale, do : > > > LC_COLLATE=C gramps -O file.grdb -a report -p > > > name=timeline,off=pdf,of=my_timeline.pdf > > > > > > LC_COLLATE is the environment variable for sorting. > > > In this case I selected C which means ASCII. > > > Be carefull, you could have unpredictable result with utf-8 databases. > > > > > > Hope it helps > > > > > > Serge > > > > > > > /Peter > > > > > > > > Den Saturday 18 April 2009 17.32.33 skrev Serge Noiraud: > > > > > Peter Landgren a écrit : > > > > > > Hi, > > > > > > > > > > > > Need some hint to understand sorting i python. > > > > > > > > > > > > Example see: > > > > > > > > > > > > http://www.gramps-project.org/bugs/view.php?id=2933 > > > > > > > > > > > > As can be seen surnames beginning with V and W are sorted > > > > > > "together!", not as separate. > > > > > > > > > > > > If I change the sort method from xxx.sort(locale.strcoll) to just > > > > > > xxx.sort() I get V and W sorted separate, but of course names > > > > > > beginning with non ascii letters fail. > > > > > > > > > > I think the difference is the following : > > > > > > > > > > The sort function without argument use the C locale for sorting. > > > > > In this case, the C collating sequence is the ASCII sequence, so > > > > > the "V" and "W" characters are differents. > > > > > > > > > > When you use the argument, you use your locale ( LC_* and LANG > > > > > environment variables ) > > > > > > > > > > At the prompt, the locale command gives you your environment for > that. > > > > > In this case, depending on that, you can have "V" and "W" the > same for > > > > > sorting. > > > > > > > > > > This is not python the problem, but the collating sequence > depending on > > > > > your locale. In your case, the "V" and "W" are similar for your > locale. > > > > > > > > > > > Why is V and W treated differently in the two sort methods? > > > > > > > > > > > > I have seen this problem not only in Narr Web Rep, but also in the > > > > > > place view. > > > > > > > > > > > > Note I'm using Swedish locale. How does it work with other locales? > > > > > > > > > > > > /Peter > > -- > > Peter Landgren > > Talken Hagen > > 671 94 BRUNSKOG > > 0570-530 21 > > 070-635 4719 > > pet...@te... > > Skype: pgl4820.2 > |
From: Serge N. <Ser...@fr...> - 2009-04-19 14:41:04
|
Peter Landgren a écrit : > Serge, > > I tested your patch and all was OK. What problem did the patch solve? > > I found another bug yesterday: > > "The alphabetical navigation bar does not work if there are more than 27 > letters in the alphabet. The second line is never stored in the web page." > > Fixed in r 12469 for branch. > Fixed in r 12471 for trunk. > > /Peter > > > There is three bugs in NarrativeWeb.py > > > > > > 1 : The normalize function use NFC in one place and NFKC in all others. > > > either we use NFC or we use NFKC, but don't mix these two modes. > > > 2 : One sort function does not use the locale.strcoll > > > 3 : There is a problem with the following statement: > > > if letter is not last_letter: I think the "if" was the problem at line 1528. Why ? I don't know. My problem was between the firt letter of Noiraud and noiraud. Theorically, with the upper method applied to the first character, "N".upper() and "n".upper() are the same. but "if letter is not last_letter:" doesn't work in this case. I replace "is not" by "!=" and it works ! If someone can explain that ! Serge |
From: Kees B. <kee...@xs...> - 2009-04-20 07:41:42
|
On Sunday 19 April 2009, Serge Noiraud wrote: > > > 3 : There is a problem with the following statement: > > > > > if letter is not last_letter: > > I think the "if" was the problem at line 1528. > Why ? I don't know. > My problem was between the firt letter of Noiraud and noiraud. > Theorically, with the upper method applied to the first character, > "N".upper() and "n".upper() are the same. > but "if letter is not last_letter:" doesn't work in this case. > I replace "is not" by "!=" and it works ! > > If someone can explain that ! This is basic Python. I'll have to lookup the section in the manual. In general you have to understand that "is not" is really very different from "!=". There has been a tendency to replace "!=" by "is not" to improve the speed of Gramps. But that optimization has to be done with great care. Not only is it sometimes wrong (as shown above), but many times it has no influence on the speed of Gramps. -- Kees |
From: Peter L. <pet...@te...> - 2009-04-20 08:00:32
|
Den Monday 20 April 2009 09.41.34 skrev Kees Bakker: > On Sunday 19 April 2009, Serge Noiraud wrote: > > > > 3 : There is a problem with the following statement: > > > > > > > > if letter is not last_letter: > > > > I think the "if" was the problem at line 1528. > > Why ? I don't know. > > My problem was between the firt letter of Noiraud and noiraud. > > Theorically, with the upper method applied to the first character, > > "N".upper() and "n".upper() are the same. > > but "if letter is not last_letter:" doesn't work in this case. > > I replace "is not" by "!=" and it works ! > > > > If someone can explain that ! > > This is basic Python. I'll have to lookup the section in the manual. In > general you have to understand that "is not" is really very different from > "!=". > > There has been a tendency to replace "!=" by "is not" to improve the speed > of Gramps. But that optimization has to be done with great care. Not only > is it sometimes wrong (as shown above), but many times it has no influence > on the speed of Gramps. Yes, The "!= " tests if the values are unequal while "is not" tests if the involved objects are the same, i. e. refer to the same memory address. /Peter |
From: Benny M. <ben...@gm...> - 2009-04-24 14:41:43
|
2009/4/24 Peter Landgren <pet...@te...> > Benny, > > Do you have any idea if it's possible to fix the problem, that started this > thread? > > /Peter > If your locale wants V and W to be together, we need to respect that. So the issue is only that the first letter is shown every time again, no? In other words, the error is in the sort on narrative web and the way the first letter is used for quick jump into the list of names. That indicates that the procedure that adds these first letters must be made more clever: 1/ If symbols are different but equal in the sort of the locale, consider them as one group. I guess doing sort of va and wb then vb and wa would indicate that v and w are one group, so the logic for a small function is not difficult. 2/ sorting of caps and small caps eg v and V. Is this not locale related too? If not, we should capitalize before sorting. I would assume the locale sort takes this into account however, would have to check Benny |
From: Peter L. <pet...@te...> - 2009-04-24 16:09:33
|
> 2009/4/24 Peter Landgren <pet...@te...> > > > Benny, > > > > Do you have any idea if it's possible to fix the problem, that started > > this thread? > > > > /Peter > > If your locale wants V and W to be together, we need to respect that. Yes, that's OK, as it's the way it's done in the phone book. > So the issue is only that the first letter is shown every time again, no? > In other words, the error is in the sort on narrative web and the way the > first letter is used for quick jump into the list of names. Yes. I would like to treat V and W as equal, as it's done in the sort. > That indicates that the procedure that adds these first letters must be > made more clever: So the first letter should be V,W for all surnames/places beginning with V or W. Both V and W in the alphabet, at top of the page, should point to V,W. And this would only be so for Swedish locale? For example, in English and many other languages, V and W are regarded as different letters. "W" is not used in Swedish, except in Swedish names to make them look nicer. : ) > 1/ If symbols are different but equal in the sort of the locale, consider > them as one group. I guess doing sort of va and wb then vb and wa would > indicate that v and w are one group, so the logic for a small function is > not difficult. I don't follow you here. > 2/ sorting of caps and small caps eg v and V. Is this not locale related > too? If not, we should capitalize before sorting. I would assume the locale > sort takes this into account however, would have to check This is OK now. Names with prefix "von" come in the correct order. Isn't his as problem with others letters in other locales? /Peter |
From: Serge N. <Ser...@fr...> - 2009-04-24 18:08:42
|
Hi, everybody I commited the patch in the svn. See : http://www.gramps-project.org/bugs/view.php?id=2933 I had the same problem in french and now it works correctly. I can reverse the patch if you want to find another solution but I continue to say : the problem is "is not" I replaced by != with "is not", we have several groups of the same letter. Peter Landgren a écrit : > > 2009/4/24 Peter Landgren <pet...@te...> > > > > > > > Benny, > > > > > > > > Do you have any idea if it's possible to fix the problem, that started > > > > this thread? > > > > > > > > /Peter > > > > > > If your locale wants V and W to be together, we need to respect that. > > Yes, that's OK, as it's the way it's done in the phone book. > > > So the issue is only that the first letter is shown every time again, no? > > > In other words, the error is in the sort on narrative web and the way the > > > first letter is used for quick jump into the list of names. > > Yes. I would like to treat V and W as equal, as it's done in the sort. > > > That indicates that the procedure that adds these first letters must be > > > made more clever: > > So the first letter should be V,W for all surnames/places beginning with > V or W. > > Both V and W in the alphabet, at top of the page, should point to V,W. > > And this would only be so for Swedish locale? > > For example, in English and many other languages, V and W are regarded > as different letters. > > "W" is not used in Swedish, except in Swedish names to make them look > nicer. : ) > > > 1/ If symbols are different but equal in the sort of the locale, consider > > > them as one group. I guess doing sort of va and wb then vb and wa would > > > indicate that v and w are one group, so the logic for a small function is > > > not difficult. > > I don't follow you here. > > > 2/ sorting of caps and small caps eg v and V. Is this not locale related > > > too? If not, we should capitalize before sorting. I would assume the > locale > > > sort takes this into account however, would have to check > > This is OK now. Names with prefix "von" come in the correct order. > > Isn't his as problem with others letters in other locales? > > /Peter > |
From: Tim L. <guy...@gm...> - 2013-02-01 11:07:21
|
A challenge for searching for an answer!! Benny Malengier wrote > 2009/4/24 Peter Landgren < > peter.talken@ > > > That indicates that the procedure that adds these first letters must be > made > more clever: > > 1/ If symbols are different but equal in the sort of the locale, consider > them as one group. I guess doing sort of va and wb then vb and wa would > indicate that v and w are one group, so the logic for a small function is > not difficult. You expand on this algorithm in http://www.gramps-project.org/bugs/view.php?id=2933#c9317. See http://www.unicode.org/charts/uca/ for the main collation chart with primary differences marked. I entirely agree, and plan to implement this in NarWeb. However, I have one problem. I can't find out how to determine the letter that has a primary difference from the current letter (sorry, that's not quite the right wording, but I am not sure how to express it). For example, I do a sort, and the first few names are "Ándre, Arnot", The algorithm shows that these should be grouped together. But which letter should be used for the index header. In this case, it should be "a" (or "A" if I upper case everything) as this is the letter from which "Á" and "A" have secondary or teriary differences. In another language, "Á" might have a primary difference from "Z", and then the sort order would be "Andrew, Arnot, Zulu, Ándre". In this case the index header should be "Á". So I can't just normalise the character to remove accents etc. I have studied Unicode, CLDR and ICU and Googled extensively, but I can't find out how to determine the preceding primary character! Can anyone help? -- View this message in context: http://gramps.1791082.n4.nabble.com/Sort-mystery-tp1804087p4658441.html Sent from the GRAMPS - Dev mailing list archive at Nabble.com. |
From: Peter L. <pet...@te...> - 2013-02-01 14:48:01
|
Den Friday 01 February 2013 12.07.14 skrev Tim Lyons: > A challenge for searching for an answer!! > > > > Benny Malengier wrote > > > 2009/4/24 Peter Landgren < > > > > peter.talken@ > > > > > > > That indicates that the procedure that adds these first letters must be > > made > > more clever: > > > > 1/ If symbols are different but equal in the sort of the locale, consider > > them as one group. I guess doing sort of va and wb then vb and wa would > > indicate that v and w are one group, so the logic for a small function is > > not difficult. > > You expand on this algorithm in > http://www.gramps-project.org/bugs/view.php?id=2933#c9317. See > http://www.unicode.org/charts/uca/ for the main collation chart with > primary differences marked. > > I entirely agree, and plan to implement this in NarWeb. > > However, I have one problem. > > I can't find out how to determine the letter that has a primary difference > from the current letter (sorry, that's not quite the right wording, but I > am not sure how to express it). > > For example, I do a sort, and the first few names are "Ándre, Arnot", The > algorithm shows that these should be grouped together. But which letter > should be used for the index header. In this case, it should be "a" (or "A" > if I upper case everything) as this is the letter from which "Á" and "A" > have secondary or teriary differences. > > In another language, "Á" might have a primary difference from "Z", and then > the sort order would be "Andrew, Arnot, Zulu, Ándre". In this case the > index header should be "Á". So I can't just normalise the character to > remove accents etc. > > I have studied Unicode, CLDR and ICU and Googled extensively, but I can't > find out how to determine the preceding primary character! > > Can anyone help? Tim, The examle you give does use A with an accent and I think that should be sorted as A. The letter after Z, should be Å. Which from the beginning (in the middelage) was written as AA. It later became A with a small "o" above it. Similiar with Ä and Ö. The two dots was originally "e". So sort order ÅÄÖ in Swedish. Å in UNICODE is U+00C5 and å is U+00E5 Å is used in Swedish, Danish and Norwegian with very similar pronounciation. I'm not sure this helps, but note the difference between Á and Å, which can be hard to to see with some fonts. /Peter |
From: Tim L. <guy...@gm...> - 2013-02-01 17:05:48
|
On 1 Feb 2013, at 14:47, Peter Landgren wrote: > The examle you give does use A with an accent and I think that > should be sorted as A. > The letter after Z, should be Å. Which from the beginning (in the > middelage) was written as AA. > It later became A with a small "o" above it. > Similiar with Ä and Ö. The two dots was originally "e". > So sort order ÅÄÖ in Swedish. > Å in UNICODE is U+00C5 and å is U+00E5 > Å is used in Swedish, Danish and Norwegian with very similar > pronounciation. > I'm not sure this helps, but note the difference between Á and Å, > which can be hard to > to see with some fonts. The example given was not supposed to be a real example, just to illustrate the problem. If you want to relate my example to your Swedish sort order, then replace Á in my example with Å, and replace the first language sort ("Åndre, Arnot") with English sort order and the second sort ("Andrew, Arnot, Zulu, Åndre") with Swedish sort order. Now, how do I determine the index heading entries? > |
From: Benny M. <ben...@gm...> - 2013-02-01 15:50:45
|
Tim, I suppose if you seed a dictionary with our alphabet, with value the letters to group there, you can maintain a list with the order at the same time. When a first letter is encountered that is not in the dict, the sorted list can be used to see where it should be added. Then insert in the list, and seed the dict further. Like this, the first encountered symbol will be used for the grouping (as it is the key in the dict), which might not be how a user of a culture would expect it, but I cannot think of a way to avoid that. One could count the letter that is found most though, and use that letter as the indication of the group. Benny 2013/2/1 Peter Landgren <pet...@te...> > ** > > Den Friday 01 February 2013 12.07.14 skrev Tim Lyons: > > > A challenge for searching for an answer!! > > > > > > > > > > > > Benny Malengier wrote > > > > > > > 2009/4/24 Peter Landgren < > > > > > > > > peter.talken@ > > > > > > > > > > > > > That indicates that the procedure that adds these first letters must be > > > > made > > > > more clever: > > > > > > > > 1/ If symbols are different but equal in the sort of the locale, > consider > > > > them as one group. I guess doing sort of va and wb then vb and wa would > > > > indicate that v and w are one group, so the logic for a small function > is > > > > not difficult. > > > > > > You expand on this algorithm in > > > http://www.gramps-project.org/bugs/view.php?id=2933#c9317. See > > > http://www.unicode.org/charts/uca/ for the main collation chart with > > > primary differences marked. > > > > > > I entirely agree, and plan to implement this in NarWeb. > > > > > > However, I have one problem. > > > > > > I can't find out how to determine the letter that has a primary > difference > > > from the current letter (sorry, that's not quite the right wording, but I > > > am not sure how to express it). > > > > > > For example, I do a sort, and the first few names are "Ándre, Arnot", The > > > algorithm shows that these should be grouped together. But which letter > > > should be used for the index header. In this case, it should be "a" (or > "A" > > > if I upper case everything) as this is the letter from which "Á" and "A" > > > have secondary or teriary differences. > > > > > > In another language, "Á" might have a primary difference from "Z", and > then > > > the sort order would be "Andrew, Arnot, Zulu, Ándre". In this case the > > > index header should be "Á". So I can't just normalise the character to > > > remove accents etc. > > > > > > I have studied Unicode, CLDR and ICU and Googled extensively, but I can't > > > find out how to determine the preceding primary character! > > > > > > Can anyone help? > > Tim, > > The examle you give does use A with an accent and I think that should be > sorted as A. > > The letter after Z, should be Å. Which from the beginning (in the > middelage) was written as AA. > > It later became A with a small "o" above it. > > Similiar with Ä and Ö. The two dots was originally "e". > > So sort order ÅÄÖ in Swedish. > > Å in UNICODE is U+00C5 and å is U+00E5 > > Å is used in Swedish, Danish and Norwegian with very similar > pronounciation. > > I'm not sure this helps, but note the difference between Á and Å, which > can be hard to > > to see with some fonts. > > /Peter > > > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://p.sf.net/sfu/appdyn_d2d_jan > _______________________________________________ > Gramps-devel mailing list > Gra...@li... > https://lists.sourceforge.net/lists/listinfo/gramps-devel > > |
From: Tim L. <guy...@gm...> - 2013-02-01 17:13:16
|
On 1 Feb 2013, at 15:50, Benny Malengier wrote: > I suppose if you seed a dictionary with our alphabet, with value the > letters to group there, you can maintain a list with the order at > the same time. I am not sure what is the point of pre-seeding the dict with any particular alphabet. (The NarWeb does not show groupings if there is nothing in them). > When a first letter is encountered that is not in the dict, the > sorted list can be used to see where it should be added. Then insert > in the list, and seed the dict further. > Like this, the first encountered symbol will be used for the > grouping (as it is the key in the dict), which might not be how a > user of a culture would expect it, but I cannot think of a way to > avoid that. I was simply going to use the first encountered symbol as the heading for the grouping, just as you suggest here. > One could count the letter that is found most though, and use that > letter as the indication of the group. I don't think it is worth the added complexity of doing this for the possible marginal gain in some edge cases (and the possible loss in some other edge cases). I was hoping someone would know an algorithm or interface in the ICU/ Unicode/CLDR for doing what is needed - after all, this is not a unique requirement - it must occur whenever a dictionary etc is automatically constructed! |
From: Benny M. <ben...@gm...> - 2013-02-01 18:59:59
|
2013/2/1 Tim Lyons <guy...@gm...> > > On 1 Feb 2013, at 15:50, Benny Malengier wrote: > >> I suppose if you seed a dictionary with our alphabet, with value the >> letters to group there, you can maintain a list with the order at the same >> time. >> > > I am not sure what is the point of pre-seeding the dict with any > particular alphabet. (The NarWeb does not show groupings if there is > nothing in them). > > > When a first letter is encountered that is not in the dict, the sorted >> list can be used to see where it should be added. Then insert in the list, >> and seed the dict further. >> Like this, the first encountered symbol will be used for the grouping (as >> it is the key in the dict), which might not be how a user of a culture >> would expect it, but I cannot think of a way to avoid that. >> > > I was simply going to use the first encountered symbol as the heading for > the grouping, just as you suggest here. > > > One could count the letter that is found most though, and use that letter >> as the indication of the group. >> > > I don't think it is worth the added complexity of doing this for the > possible marginal gain in some edge cases (and the possible loss in some > other edge cases). > > > > I was hoping someone would know an algorithm or interface in the > ICU/Unicode/CLDR for doing what is needed - after all, this is not a unique > requirement - it must occur whenever a dictionary etc is automatically > constructed! > My guess is things are or grouped with the ascii characters, or are not grouped. Which I why I suggested the preseeding with our ascii characters. If above is true, there is not need for a difficult algorithm. Benny |
From: Tim L. <guy...@gm...> - 2013-02-03 00:28:57
|
On 1 Feb 2013, at 18:59, Benny Malengier wrote: > > > > 2013/2/1 Tim Lyons <guy...@gm...> > > On 1 Feb 2013, at 15:50, Benny Malengier wrote: > I suppose if you seed a dictionary with our alphabet, with value the > letters to group there, you can maintain a list with the order at > the same time. > > I am not sure what is the point of pre-seeding the dict with any > particular alphabet. (The NarWeb does not show groupings if there is > nothing in them). > > > When a first letter is encountered that is not in the dict, the > sorted list can be used to see where it should be added. Then insert > in the list, and seed the dict further. > Like this, the first encountered symbol will be used for the > grouping (as it is the key in the dict), which might not be how a > user of a culture would expect it, but I cannot think of a way to > avoid that. > > I was simply going to use the first encountered symbol as the > heading for the grouping, just as you suggest here. > > > One could count the letter that is found most though, and use that > letter as the indication of the group. > > I don't think it is worth the added complexity of doing this for the > possible marginal gain in some edge cases (and the possible loss in > some other edge cases). > > > > I was hoping someone would know an algorithm or interface in the ICU/ > Unicode/CLDR for doing what is needed - after all, this is not a > unique requirement - it must occur whenever a dictionary etc is > automatically constructed! > > My guess is things are or grouped with the ascii characters, or are > not grouped. > Which I why I suggested the preseeding with our ascii characters. > > If above is true, there is not need for a difficult algorithm. Well, no, I don't see how that works. I have one person in my tree called Ångström. When I look this word up in my Collins English Dictionary with the thumb index, it is under the thumb index letter A. When the program encounters it, it is not in the dict, so I add it. I now have A and Å in my dict. But actually in English, both should come under the same letter. Perhaps Peter can tell us what happens in a Swedish dictionary. Do dictionaries really have a separate heading at the end for Å? As I understand it, Å comes as a separate index entry after Z. So again, when the program encounters Å, it will be added to the dict, but in this case that would be correct. I have attached the Unicode Common Locale Data Repository data for Swedish which should include all the extra letters after Z. regards, Tim. |
From: Benny M. <ben...@gm...> - 2013-02-03 01:18:30
|
2013/2/3 Tim Lyons <guy...@gm...> > > On 1 Feb 2013, at 18:59, Benny Malengier wrote: > > > > > 2013/2/1 Tim Lyons <guy...@gm...> > >> >> On 1 Feb 2013, at 15:50, Benny Malengier wrote: >> >>> I suppose if you seed a dictionary with our alphabet, with value the >>> letters to group there, you can maintain a list with the order at the same >>> time. >>> >> >> I am not sure what is the point of pre-seeding the dict with any >> particular alphabet. (The NarWeb does not show groupings if there is >> nothing in them). >> >> >> When a first letter is encountered that is not in the dict, the sorted >>> list can be used to see where it should be added. Then insert in the list, >>> and seed the dict further. >>> Like this, the first encountered symbol will be used for the grouping >>> (as it is the key in the dict), which might not be how a user of a culture >>> would expect it, but I cannot think of a way to avoid that. >>> >> >> I was simply going to use the first encountered symbol as the heading for >> the grouping, just as you suggest here. >> >> >> One could count the letter that is found most though, and use that >>> letter as the indication of the group. >>> >> >> I don't think it is worth the added complexity of doing this for the >> possible marginal gain in some edge cases (and the possible loss in some >> other edge cases). >> >> >> >> I was hoping someone would know an algorithm or interface in the >> ICU/Unicode/CLDR for doing what is needed - after all, this is not a unique >> requirement - it must occur whenever a dictionary etc is automatically >> constructed! >> > > My guess is things are or grouped with the ascii characters, or are not > grouped. > Which I why I suggested the preseeding with our ascii characters. > > If above is true, there is not need for a difficult algorithm. > > > Well, no, I don't see how that works. > > > I have one person in my tree called Ångström. When I look this word up in > my Collins English Dictionary with the thumb index, it is under the thumb > index letter A. When the program encounters it, it is not in the dict, so I > add it. I now have A and Å in my dict. But actually in English, both should > come under the same letter. > I was in the impression you had an algorithm to determine if they needed to be grouped. So, as I assumed that, it would be known and Ånever added to the dict. My comments where for other new letters which are encountered for the first time. Benny > Perhaps Peter can tell us what happens in a Swedish dictionary. Do > dictionaries really have a separate heading at the end for Å? As I > understand it, Å comes as a separate index entry after Z. So again, when > the program encounters Å, it will be added to the dict, but in this case > that would be correct. > > I have attached the Unicode Common Locale Data Repository data for Swedish > which should include all the extra letters after Z. > > regards, > Tim. > > > > |
From: Peter L. <pet...@te...> - 2013-02-03 10:57:12
|
Den Sunday 03 February 2013 01.28.43 skrev Tim Lyons: > On 1 Feb 2013, at 18:59, Benny Malengier wrote: > > 2013/2/1 Tim Lyons <guy...@gm...> > > > > On 1 Feb 2013, at 15:50, Benny Malengier wrote: > > I suppose if you seed a dictionary with our alphabet, with value the > > letters to group there, you can maintain a list with the order at > > the same time. > > > > I am not sure what is the point of pre-seeding the dict with any > > particular alphabet. (The NarWeb does not show groupings if there is > > nothing in them). > > > > > > When a first letter is encountered that is not in the dict, the > > sorted list can be used to see where it should be added. Then insert > > in the list, and seed the dict further. > > Like this, the first encountered symbol will be used for the > > grouping (as it is the key in the dict), which might not be how a > > user of a culture would expect it, but I cannot think of a way to > > avoid that. > > > > I was simply going to use the first encountered symbol as the > > heading for the grouping, just as you suggest here. > > > > > > One could count the letter that is found most though, and use that > > letter as the indication of the group. > > > > I don't think it is worth the added complexity of doing this for the > > possible marginal gain in some edge cases (and the possible loss in > > some other edge cases). > > > > > > > > I was hoping someone would know an algorithm or interface in the ICU/ > > Unicode/CLDR for doing what is needed - after all, this is not a > > unique requirement - it must occur whenever a dictionary etc is > > automatically constructed! > > > > My guess is things are or grouped with the ascii characters, or are > > not grouped. > > Which I why I suggested the preseeding with our ascii characters. > > > > If above is true, there is not need for a difficult algorithm. > > Well, no, I don't see how that works. > > > I have one person in my tree called Ångström. When I look this word up > in my Collins English Dictionary with the thumb index, it is under the > thumb index letter A. When the program encounters it, it is not in the > dict, so I add it. I now have A and Å in my dict. But actually in > English, both should come under the same letter. > > Perhaps Peter can tell us what happens in a Swedish dictionary. Do > dictionaries really have a separate heading at the end for Å? As I > understand it, Å comes as a separate index entry after Z. So again, > when the program encounters Å, it will be added to the dict, but in > this case that would be correct. Hope this helps. A Swedish dictionary will have entries for these letters in this order: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Å Ä Ö The sv.txt seems to follow this even if some more letters are inluded. Dealing with sorting names: V and W should not be separately sorted. Just to make it clear; the pronounciation of A and Å are very different. A is pronounced like A in America. Å is pronounced like A in RAW. And Ä is pronounced like A in Apple. Ö is pronounced like first e in service /Peter > I have attached the Unicode Common Locale Data Repository data for > Swedish which should include all the extra letters after Z. > > regards, > Tim. -- Peter Landgren Talken Hagen 671 94 BRUNSKOG 0570-530 21 070-345 0964 pet...@te... Skype: pgl4820.2 |
From: Serge N. <Ser...@fr...> - 2009-04-20 12:10:33
|
Hi, everybody. Thanks for the info on "is not" and "!=". If you think the problem is solved, I can commit the changes in 3.1 and trunk There is no bug report for that and we could forget. Peter Landgren a écrit : > Den Monday 20 April 2009 09.41.34 skrev Kees Bakker: > > > On Sunday 19 April 2009, Serge Noiraud wrote: > > > > > > 3 : There is a problem with the following statement: > > > > > > > > > > > > if letter is not last_letter: > > > > > > > I think the "if" was the problem at line 1528. > > > Why ? I don't know. > > > My problem was between the firt letter of Noiraud and noiraud. > > > Theorically, with the upper method applied to the first character, > > > "N".upper() and "n".upper() are the same. > > > but "if letter is not last_letter:" doesn't work in this case. > > > I replace "is not" by "!=" and it works ! > > > > > > If someone can explain that ! > > > > This is basic Python. I'll have to lookup the section in the manual. In > > general you have to understand that "is not" is really very different from > > "!=". > > > > There has been a tendency to replace "!=" by "is not" to improve the speed > > of Gramps. But that optimization has to be done with great care. Not only > > is it sometimes wrong (as shown above), but many times it has no influence > > on the speed of Gramps. > Yes, > The "!= " tests if the values are unequal while > "is not" tests if the involved objects are the same, i. e. refer to the > same memory address. > > /Peter |
From: Benny M. <ben...@gm...> - 2009-04-24 09:15:35
|
2009/4/20 Serge Noiraud <Ser...@fr...> > Hi, everybody. > > Thanks for the info on "is not" and "!=". > > If you think the problem is solved, I can commit the changes in 3.1 and > trunk > There is no bug report for that and we could forget. > Please do. Add a comment above the != that != must be used and not is not, or some other developer might mistakenly change it back to is not. It would be good to add a bug item, and add it to 3.1.2, then fix it, so we have a good overview on the roadmap of 3.1.2 of when to do a new release. Benny. > > Peter Landgren a écrit : > > Den Monday 20 April 2009 09.41.34 skrev Kees Bakker: > > > > > On Sunday 19 April 2009, Serge Noiraud wrote: > > > > > > > > 3 : There is a problem with the following statement: > > > > > > > > > > > > > > > > if letter is not last_letter: > > > > > > > > > > I think the "if" was the problem at line 1528. > > > > Why ? I don't know. > > > > My problem was between the firt letter of Noiraud and noiraud. > > > > Theorically, with the upper method applied to the first character, > > > > "N".upper() and "n".upper() are the same. > > > > but "if letter is not last_letter:" doesn't work in this case. > > > > I replace "is not" by "!=" and it works ! > > > > > > > > If someone can explain that ! > > > > > > This is basic Python. I'll have to lookup the section in the manual. In > > > general you have to understand that "is not" is really very different > from > > > "!=". > > > > > > There has been a tendency to replace "!=" by "is not" to improve the > speed > > > of Gramps. But that optimization has to be done with great care. Not > only > > > is it sometimes wrong (as shown above), but many times it has no > influence > > > on the speed of Gramps. > > Yes, > > The "!= " tests if the values are unequal while > > "is not" tests if the involved objects are the same, i. e. refer to the > > same memory address. > > > > /Peter > > > ------------------------------------------------------------------------------ > Stay on top of everything new and different, both inside and > around Java (TM) technology - register by April 22, and save > $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. > 300 plus technical and hands-on sessions. Register today. > Use priority code J9JMT32. http://p.sf.net/sfu/p > _______________________________________________ > Gramps-devel mailing list > Gra...@li... > https://lists.sourceforge.net/lists/listinfo/gramps-devel > |