Bugs item #1880264, was opened at 2008-01-26 07:55
Message generated for change (Comment added) made by andreasjs
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603138&aid=1880264&group_…
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Bernhard Mayr (falk_steinhauer)
Assigned to: Nobody/Anonymous (nobody)
Summary: Collision of commandline arguments
Initial Comment:
The "-regex" options of pagegenerators.py and replace.py are colliding.
replace.py -regex:.*AnyPostfix "search" "replace"
is a valid command, whereas
replace.py -regex "search" "replace"
isn't, because "-regex" is interpreted as a command for replace.py, but
add_text.py -regex "any text"
is a similar call that works properly and requests the desired regular expression interactively.
I recommend to change the new option of pagegenerators.py to "-regexp".
----------------------------------------------------------------------
>Comment By: AndreasJS (andreasjs)
Date: 2008-01-26 17:13
Message:
Logged In: YES
user_id=1738850
Originator: NO
-regex is used in many other bots that use the standard pagegenerator.
I would rather change the option for replace.py to -useregex.
A warning could be issued if the -regex option is used:
else:
generator = genFactory.handleArg(arg)
if arg == '-regex':
wikipedia.output(u'Warning: changed parameter name. To
make replacements using regular expressions use -useregex
----------------------------------------------------------------------
Comment By: AndreasJS (andreasjs)
Date: 2008-01-26 17:13
Message:
Logged In: YES
user_id=1738850
Originator: NO
-regex is used in many other bots that use the standard pagegenerator.
I would rather change the option for replace.py to -useregex.
A warning could be issued if the -regex option is used:
else:
generator = genFactory.handleArg(arg)
if arg == '-regex':
wikipedia.output(u'Warning: changed parameter name. To
make replacements using regular expressions use -useregex
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603138&aid=1880264&group_…
Bugs item #1880264, was opened at 2008-01-26 07:55
Message generated for change (Comment added) made by andreasjs
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603138&aid=1880264&group_…
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Bernhard Mayr (falk_steinhauer)
Assigned to: Nobody/Anonymous (nobody)
Summary: Collision of commandline arguments
Initial Comment:
The "-regex" options of pagegenerators.py and replace.py are colliding.
replace.py -regex:.*AnyPostfix "search" "replace"
is a valid command, whereas
replace.py -regex "search" "replace"
isn't, because "-regex" is interpreted as a command for replace.py, but
add_text.py -regex "any text"
is a similar call that works properly and requests the desired regular expression interactively.
I recommend to change the new option of pagegenerators.py to "-regexp".
----------------------------------------------------------------------
>Comment By: AndreasJS (andreasjs)
Date: 2008-01-26 17:13
Message:
Logged In: YES
user_id=1738850
Originator: NO
-regex is used in many other bots that use the standard pagegenerator.
I would rather change the option for replace.py to -useregex.
A warning could be issued if the -regex option is used:
else:
generator = genFactory.handleArg(arg)
if arg == '-regex':
wikipedia.output(u'Warning: changed parameter name. To
make replacements using regular expressions use -useregex
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603138&aid=1880264&group_…
Revision: 4941
Author: filnik
Date: 2008-01-26 20:38:46 +0000 (Sat, 26 Jan 2008)
Log Message:
-----------
Added a new feature. Now the bot won't only delete the templates. It will also put the right one according to what you have set and what it finds! Please update the tool!
Modified Paths:
--------------
trunk/pywikipedia/blockpageschecker.py
Modified: trunk/pywikipedia/blockpageschecker.py
===================================================================
--- trunk/pywikipedia/blockpageschecker.py 2008-01-26 12:57:10 UTC (rev 4940)
+++ trunk/pywikipedia/blockpageschecker.py 2008-01-26 20:38:46 UTC (rev 4941)
@@ -24,10 +24,6 @@
If you have problems, ask on botwiki ( http://botwiki.sno.cc )
or on IRC (#pywikipediabot)
---- FixME ---
-If the page was protected to sysop and now is protected to autoconfirmed users,
-the bot won't change the template. Should this be "fixed"?
-
--- Example of how to use the script ---
python blockpageschecker.py -always
@@ -69,6 +65,35 @@
'zh':[r'\{\{(?:[Tt]emplate:|)Protected(?:\|*)\}\}',r'\{\{(?:[Tt]emplate:|)Mini-protected(?:\|*)\}\}',
r'\{\{(?:[Tt]emplate:|)Protected logo(?:\|*)\}\}'],
}
+
+# Added a new feature! Please update and add the settings in order
+# to improve the intelligence of this script ;-)
+# Regex to get the semi-protection template
+templateSemiProtection = {
+ 'en': None,
+ 'it':[r'{\{(?:[Tt]emplate:|)[Aa]vvisobloccoparziale(?:|[ _]scad\|.*?|\|.*?)\}\}',
+ r'{\{(?:[Tt]emplate:|)[Aa]bp(?:|[ _]scad\|(?:.*?))\}\}'],
+ }
+# Regex to get the total-protection template
+templateTotalProtection = {
+ 'en': None,
+ 'it':[r'{\{(?:[Tt]emplate:|)[Aa]vvisoblocco(?:|[ _]scad\|(?:.*?))\}\}'],
+ }
+# Regex to get the semi-protection move template
+templateSemiMoveProtection = {
+ 'en': None,
+ 'it': None,
+ }
+# Regex to get the total-protection move template
+templateTotalMoveProtection = {
+ 'en': None,
+ 'it': None,
+ }
+# Array: 0 => Semi-block, 1 => Total Block, 2 => Semi-Move, 3 => Total-Move
+templateNoRegex = {
+ 'it':['{{Avvisobloccoparziale}}', '{{Avvisoblocco}}', None, None],
+ }
+
# Category where the bot will check
categoryToCheck = {
'en':[u'Category:Protected'],
@@ -86,7 +111,7 @@
'en':u'Bot: Deleting out-dated template',
'fr':u'Robot: Retrait du bandeau protection/semi-protection d\'une page qui ne l\'es plus',
'he':u'בוט: מסיר תבנית שעבר זמנה',
- 'it':u'Bot: Tolgo template di avviso blocco scaduto',
+ 'it':u'Bot: Tolgo o sistemo template di avviso blocco',
'ja':u'ロボットによる: 保護テンプレート除去',
'pt':u'Bot: Retirando predefinição de proteção',
'zh':u'機器人: 移除過期的保護模板',
@@ -98,6 +123,26 @@
#------------------ END PREFERENCES ------------------#
################## -- Edit above! -- ##################
+def understandBlock(text, TTP, TSP, TSMP, TTMP):
+ for catchRegex in TTP: # TTP = templateTotalProtection
+ resultCatch = re.findall(catchRegex, text)
+ if resultCatch != []:
+ return ('sysop-total', catchRegex)
+ for catchRegex in TSP:
+ resultCatch = re.findall(catchRegex, text)
+ if resultCatch != []:
+ return ('autoconfirmed-total', catchRegex)
+ if TSMP != None and TTMP != None and TTP != TTMP and TSP != TSMP:
+ for catchRegex in TSMP:
+ resultCatch = re.findall(catchRegex, text)
+ if resultCatch != []:
+ return ('sysop-move', catchRegex)
+ for catchRegex in TTMP:
+ resultCatch = re.findall(catchRegex, text)
+ if resultCatch != []:
+ return ('autoconfirmed-move', catchRegex)
+ return ('editable', r'\A\n')
+
def main():
# Loading the comments
global templateToRemove; global categoryToCheck; global comment; global project_inserted
@@ -128,6 +173,12 @@
site = wikipedia.getSite()
# Take the right templates to use, the category and the comment
TTR = wikipedia.translate(site, templateToRemove)
+ TSP = wikipedia.translate(site, templateSemiProtection)
+ TTP = wikipedia.translate(site, templateTotalProtection)
+ TSMP = wikipedia.translate(site, templateSemiMoveProtection)
+ TTMP = wikipedia.translate(site, templateTotalMoveProtection)
+ TNR = wikipedia.translate(site, templateNoRegex)
+
category = wikipedia.translate(site, categoryToCheck)
commentUsed = wikipedia.translate(site, comment)
if not generator:
@@ -155,87 +206,107 @@
except wikipedia.IsRedirectPage:
wikipedia.output("%s is a redirect! Skipping..." % pagename)
continue
- if editRestriction == 'sysop':
- wikipedia.output(u'The page is protected to the sysop, skipping...')
- continue
+ # Understand, according to the template in the page, what should be the protection
+ # and compare it with what there really is.
+ TemplateInThePage = understandBlock(text, TTP, TSP, TSMP, TTMP)
+ # Only to see if the text is the same or not...
+ oldtext = text
+
+ if editRestriction == 'sysop':
+ if TemplateInThePage[0] == 'sysop-total' or TTP == None:
+ wikipedia.output(u'The page is protected to the sysop, skipping...')
+ continue
+ else:
+ wikipedia.output(u'The page is protected to the sysop, but the template seems not correct. Fixing...')
+ text = re.sub(TemplateInThePage[1], TNR[1], text)
elif moveBlockCheck and moveRestriction == 'sysop':
- wikipedia.output(u'The page is protected from moving to the sysop, skipping...')
- continue
- elif editRestriction == 'autoconfirmed':
- wikipedia.output(u'The page is editable only for the autoconfirmed users, skipping...')
- continue
- elif moveBlockCheck and moveRestriction == 'autoconfirmed':
- wikipedia.output(u'The page is movable only for the autoconfirmed users, skipping...')
- continue
+ if TemplateInThePage[0] == 'sysop-move' or TTMP == None:
+ wikipedia.output(u'The page is protected from moving to the sysop, skipping...')
+ continue
+ else:
+ wikipedia.output(u'The page is protected from moving to the sysop, but the template seems not correct. Fixing...')
+ text = re.sub(TemplateInThePage[1], TNR[3], text)
+ elif editRestriction == 'autoconfirmed' or TSP == None:
+ if TemplateInThePage[0] == 'autoconfirmed-total':
+ wikipedia.output(u'The page is editable only for the autoconfirmed users, skipping...')
+ continue
+ else:
+ wikipedia.output(u'The page is editable only for the autoconfirmed users, but the template seems not correct. Fixing...')
+ text = re.sub(TemplateInThePage[1], TNR[0], text)
+ elif moveBlockCheck and moveRestriction == 'autoconfirmed' or TSMP == None:
+ if TemplateInThePage[0] == 'autoconfirmed-move':
+ wikipedia.output(u'The page is movable only for the autoconfirmed users, skipping...')
+ continue
+ else:
+ wikipedia.output(u'The page is movable only for the autoconfirmed users, but the template seems not correct. Fixing...')
+ text = re.sub(TemplateInThePage[1], TNR[2], text)
else:
wikipedia.output(u'The page is editable for all, deleting the template...')
- # Only to see if the text is the same or not...
- oldtext = text
# Deleting the template because the page doesn't need it.
for replaceToPerform in TTR:
text = re.sub('(?:<noinclude>|)%s(?:</noinclude>|)' % replaceToPerform, '', text)
- if oldtext != text:
- # Ok, asking if the change has to be performed and do it.
- wikipedia.output(u"\n\n>>> \03{lightpurple}%s\03{default} <<<" % page.title())
- wikipedia.showDiff(oldtext, text)
- choice = ''
+ if oldtext != text:
+ # Ok, asking if the change has to be performed and do it.
+ wikipedia.output(u"\n\n>>> \03{lightpurple}%s\03{default} <<<" % page.title())
+ wikipedia.showDiff(oldtext, text)
+ choice = ''
+ while 1:
+ if not always:
+ choice = wikipedia.inputChoice(u'Do you want to accept these changes?', ['Yes', 'No', 'All'], ['y', 'N', 'a'], 'N')
+ if choice.lower() in ['a', 'all']:
+ always = True
+ if choice.lower() in ['n', 'no']:
+ break
+ if choice.lower() in ['y', 'yes'] or always:
+ try:
+ page.put(text, commentUsed, force=True)
+ except wikipedia.EditConflict:
+ wikipedia.output(u'Edit conflict! skip!')
+ break
+ except wikipedia.ServerError:
+ # Sometimes there is this error that's quite annoying because
+ # can block the whole process for nothing.
+ errorCount += 1
+ if errorCount < 5:
+ wikipedia.output(u'Server Error! Wait..')
+ time.sleep(3)
+ continue
+ else:
+ # Prevent Infinite Loops
+ raise wikipedia.ServerError(u'Fifth Server Error!')
+ except wikipedia.SpamfilterError, e:
+ wikipedia.output(u'Cannot change %s because of blacklist entry %s' % (page.title(), e.url))
+ break
+ except wikipedia.PageNotSaved, error:
+ wikipedia.output(u'Error putting page: %s' % (error.args,))
+ break
+ except wikipedia.LockedPage:
+ wikipedia.output(u'The page is still protected. Skipping...')
+ break
+ else:
+ # Break only if the errors are one after the other
+ errorCount = 0
+ break
+ else:
+ wikipedia.output(u'No changes! Strange! Check the regex!')
+ if debug == True:
+ quest = wikipedia.input(u'Do you want to open the page on your [b]rowser, [g]ui or [n]othing?')
+ pathWiki = site.family.nicepath(site.lang)
+ url = 'http://%s%s%s' % (wikipedia.getSite().hostname(), pathWiki, page.urlname())
while 1:
- if not always:
- choice = wikipedia.inputChoice(u'Do you want to accept these changes?', ['Yes', 'No', 'All'], ['y', 'N', 'a'], 'N')
- if choice.lower() in ['a', 'all']:
- always = True
- if choice.lower() in ['n', 'no']:
+ if quest.lower() in ['b', 'B']:
+ webbrowser.open(url)
break
- if choice.lower() in ['y', 'yes'] or always:
- try:
- page.put(text, commentUsed)
- except wikipedia.EditConflict:
- wikipedia.output(u'Edit conflict! skip!')
- break
- except wikipedia.ServerError:
- # Sometimes there is this error that's quite annoying because
- # can block the whole process for nothing.
- errorCount += 1
- if errorCount < 5:
- wikipedia.output(u'Server Error! Wait..')
- time.sleep(3)
- continue
- else:
- # Prevent Infinite Loops
- raise wikipedia.ServerError(u'Fifth Server Error!')
- except wikipedia.SpamfilterError, e:
- wikipedia.output(u'Cannot change %s because of blacklist entry %s' % (page.title(), e.url))
- break
- except wikipedia.PageNotSaved, error:
- wikipedia.output(u'Error putting page: %s' % (error.args,))
- break
- except wikipedia.LockedPage:
- wikipedia.output(u'The page is still protected. Skipping...')
- break
- else:
- # Break only if the errors are one after the other
- errorCount = 0
- break
- else:
- wikipedia.output(u'No changes! Strange! Check the regex!')
- if debug == True:
- quest = wikipedia.input(u'Do you want to open the page on your [b]rowser, [g]ui or [n]othing?')
- pathWiki = site.family.nicepath(site.lang)
- url = 'http://%s%s%s' % (wikipedia.getSite().hostname(), pathWiki, page.urlname())
- while 1:
- if quest.lower() in ['b', 'B']:
- webbrowser.open(url)
- break
- elif quest.lower() in ['g', 'G']:
- import editarticle
- editor = editarticle.TextEditor()
- text = editor.edit(page.get())
- break
- elif quest.lower() in ['n', 'N']:
- break
- else:
- wikipedia.output(u'wrong entry, type "b", "g" or "n"')
- continue
+ elif quest.lower() in ['g', 'G']:
+ import editarticle
+ editor = editarticle.TextEditor()
+ text = editor.edit(page.get())
+ break
+ elif quest.lower() in ['n', 'N']:
+ break
+ else:
+ wikipedia.output(u'wrong entry, type "b", "g" or "n"')
+ continue
if __name__ == "__main__":
try:
Patches item #1880140, was opened at 2008-01-26 02:48
Message generated for change (Comment added) made by malafaya
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603140&aid=1880140&group_…
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: AndreasJS (andreasjs)
Assigned to: Nobody/Anonymous (nobody)
Summary: Decode Esperanto titles
Initial Comment:
Titles have to be decoded from x convention for liks to work properly.
Here is the patch:
Index: wikipedia.py
===================================================================
--- wikipedia.py (revision 4939)
+++ wikipedia.py (working copy)
@@ -454,6 +454,8 @@
pass
if underscore:
title = title.replace(' ', '_')
+ if self.site().lang == 'eo':
+ title = decodeEsperantoX(title)
return title
def titleWithoutNamespace(self, underscore=False):
----------------------------------------------------------------------
>Comment By: André Malafaya Baptista (malafaya)
Date: 2008-01-26 14:50
Message:
Logged In: YES
user_id=1037345
Originator: NO
This seems to be working fine using "redirect.py -lang:eo double".
----------------------------------------------------------------------
Comment By: AndreasJS (andreasjs)
Date: 2008-01-26 14:37
Message:
Logged In: YES
user_id=1738850
Originator: YES
File Added: wikipedia.diff
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603140&aid=1880140&group_…
Patches item #1880140, was opened at 2008-01-25 21:48
Message generated for change (Comment added) made by andreasjs
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603140&aid=1880140&group_…
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: AndreasJS (andreasjs)
Assigned to: Nobody/Anonymous (nobody)
Summary: Decode Esperanto titles
Initial Comment:
Titles have to be decoded from x convention for liks to work properly.
Here is the patch:
Index: wikipedia.py
===================================================================
--- wikipedia.py (revision 4939)
+++ wikipedia.py (working copy)
@@ -454,6 +454,8 @@
pass
if underscore:
title = title.replace(' ', '_')
+ if self.site().lang == 'eo':
+ title = decodeEsperantoX(title)
return title
def titleWithoutNamespace(self, underscore=False):
----------------------------------------------------------------------
>Comment By: AndreasJS (andreasjs)
Date: 2008-01-26 09:37
Message:
Logged In: YES
user_id=1738850
Originator: YES
File Added: wikipedia.diff
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603140&aid=1880140&group_…
Revision: 4940
Author: filnik
Date: 2008-01-26 12:57:10 +0000 (Sat, 26 Jan 2008)
Log Message:
-----------
ValueError -> IndexError. Only a typo.
Modified Paths:
--------------
trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/wikipedia.py
===================================================================
--- trunk/pywikipedia/wikipedia.py 2008-01-25 16:20:29 UTC (rev 4939)
+++ trunk/pywikipedia/wikipedia.py 2008-01-26 12:57:10 UTC (rev 4940)
@@ -2771,7 +2771,7 @@
line = line.split(' ')
pid = int(line[0])
ptime = int(line[1].split('.')[0])
- except ValueError:
+ except IndexError:
# I go a lot of crontab errors because line is not a number.
# Better to prevent that. If you find out the error, feel free
# to fix it better.
Bugs item #1880264, was opened at 2008-01-26 12:55
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603138&aid=1880264&group_…
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Bernhard Mayr (falk_steinhauer)
Assigned to: Nobody/Anonymous (nobody)
Summary: Collision of commandline arguments
Initial Comment:
The "-regex" options of pagegenerators.py and replace.py are colliding.
replace.py -regex:.*AnyPostfix "search" "replace"
is a valid command, whereas
replace.py -regex "search" "replace"
isn't, because "-regex" is interpreted as a command for replace.py, but
add_text.py -regex "any text"
is a similar call that works properly and requests the desired regular expression interactively.
I recommend to change the new option of pagegenerators.py to "-regexp".
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603138&aid=1880264&group_…
Bugs item #1879122, was opened at 2008-01-24 14:26
Message generated for change (Comment added) made by andreasjs
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603138&aid=1879122&group_…
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: other
Group: None
Status: Open
Resolution: None
Priority: 6
Private: No
Submitted By: André Malafaya Baptista (malafaya)
Assigned to: Nobody/Anonymous (nobody)
Summary: Double redirect fixes not coding special characters in EO.WP
Initial Comment:
A user of the Esperanto Wikipedia alerted me to this problem.
The command:
redirect.py -lang:eo double
messes up redirects to articles containing the special character convention in Esperanto sx, cx, ux, etc.. Check this edit made by my bot:
http://eo.wikipedia.org/w/index.php?title=Steindorf&action=edit&oldid=14450…
Instead of using the special character 'Ŝ', it mangles it as 'Sxx' (not even 'Sx'), causing it to be broken (I believe it's even not well interpreted by the Wiki, because 'Sxx' is being rendered as 'Sx').
----------------------------------------------------------------------
>Comment By: AndreasJS (andreasjs)
Date: 2008-01-25 21:49
Message:
Logged In: YES
user_id=1738850
Originator: NO
Titles have to be x-decoded to work as links.
See patch 1880140
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603138&aid=1879122&group_…
Patches item #1880140, was opened at 2008-01-25 21:48
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603140&aid=1880140&group_…
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: AndreasJS (andreasjs)
Assigned to: Nobody/Anonymous (nobody)
Summary: Decode Esperanto titles
Initial Comment:
Titles have to be decoded from x convention for liks to work properly.
Here is the patch:
Index: wikipedia.py
===================================================================
--- wikipedia.py (revision 4939)
+++ wikipedia.py (working copy)
@@ -454,6 +454,8 @@
pass
if underscore:
title = title.replace(' ', '_')
+ if self.site().lang == 'eo':
+ title = decodeEsperantoX(title)
return title
def titleWithoutNamespace(self, underscore=False):
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603140&aid=1880140&group_…
Bugs item #1804008, was opened at 2007-09-28 00:35
Message generated for change (Comment added) made by nobody
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603138&aid=1804008&group_…
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: General
Group: None
Status: Open
Resolution: None
Priority: 6
Private: No
Submitted By: Francesco Cosoleto (cosoleto)
Assigned to: Nobody/Anonymous (nobody)
Summary: showDiff() highlighting limitation due to difflib design
Initial Comment:
showDiff() can fail to highlight a char-by-char difference because Python difflib seems don't support fully char-by-char comparison.
Please see in Python tracker:
* issue #1528074: "difflib.SequenceMatcher.find_longest_match() wrong result" (http://bugs.python.org/issue1528074)
* issue #1678345: "A fix for the bug #1528074 [warning: quite slow]" (http://bugs.python.org/issue1678345)
----------------------------------------------------------------------
Comment By: Nobody/Anonymous (nobody)
Date: 2008-01-25 13:38
Message:
Logged In: NO
Guess this is an example
http://bildr.no/view/146822
----------------------------------------------------------------------
Comment By: Francesco Cosoleto (cosoleto)
Date: 2007-09-28 00:38
Message:
Logged In: YES
user_id=181280
Originator: YES
File Added: difflib_test.py
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=603138&aid=1804008&group_…