It works! Thank you.
----- Original Nachricht ----
Von: Bináris <wikiposta@gmail.com>
An: Pywikipedia discussion list <pywikipedia-l@lists.wikimedia.org>
Datum: 21.07.2013 18:14
Betreff: [Pywikipedia-l] Additional parameter in a replace function
Just an idea, I haven't investigated in it but you could try it out:
> Hi,
>
> I use functions in my fixes.py as written in
> https://hu.wikipedia.org/wiki/Szerkeszt%C5%91:Bin%C3%A1ris/Fixes_and_functio
> ns_HOWTO
> .
>
> Now, my idea is to use an additional parameter. (In case nobody breaks the
> framework. :-))
> So my fix has something like this in replacements:
>
> (ur'someregex', MyFunc),
> Then MyFunc takes the match object as a parameter and is executed. I have
> to write
> def MyFunc(match):
> etc.
>
> Now I want to write def MyFunc(match, mode), but I can't pass mode to
> MyFunc anyway.
> I guessed the line in question is #195 in textlib.py:
> replacement = new(match)
>
> Here I stopped. How could I pass additional optional parameters?
you may use a class instance inside fixes.py and pass the option through the constructor. Your MyFunc should be an instance method.
e.g.
class myClass(object):
def __init__(self, option):
self.option = option
def myFunc(self, match):
result = u''
# change the result depending of match and self.option
# ...
return result
thisClass = myClass(option='submit anything as option')
and play with replacements using thisClass.myFunc
Best
xqt