-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

http://www.mediawiki.org/wiki/Special:Code/pywikipedia/9914

Thank you and greetings!

On 14.02.2012 00:46, Bináris wrote:
> Was: Parameters of handleArgs
> 
> I went back to this conversation with Russell, and tried to use it
> in an other way. I have console encoding problems with this command
> with Cyrillic letters: replace.py -catr:Венгрия . @ -lang:ru
> -excepttext:"[[hu:" -save:magyarok.txt -always One way is to
> urlencode the Russian category. Other way is to insert it into a
> script. (DOS batch files won't work, I already tried.) So what I
> did: import replace replace.main(u'-catr:Венгрия', '.', '@',
> '-lang:ru', '-excepttext:"[[hu:"', '-save:magyarok.txt') This
> results in an error message: File "C:\Pywikipedia\replace.py", line
> 582, in main for arg in pywikibot.handleArgs(*args): File
> "C:\Pywikipedia\wikipedia.py", line 7795, in handleArgs arg =
> _decodeArg(arg) File "C:\Pywikipedia\wikipedia.py", line 7767, in
> _decodeArg return unicode(arg, config.console_encoding) TypeError:
> decoding Unicode is not supported If I omit u from before -catr, no
> error is thrown, but the name is erroneously decoded. Now comes the
> tick! I went to line 7795 of current wikipedia.py (r9894) as shown
> above, and commented it out. Now my script runs perfectly! I love
> it!
> 
> I don't want to spoil handleArgs() and I know this is an unusual
> use of it. But is it possible in some way to pass a parameter to it
> that tells _decodeArg to shut up? Or is there another correct way
> of passing Unicode parameters from within a script?
> 
> 2011/5/18 Russell Blau <[email protected] 
> <mailto:[email protected]>>
> 
> Bináris said:
> 
>> I see in a couple of bots this construction:
>> 
>> def main(*args): for arg in pywikibot.handleArgs(*args): etc.
>> 
>> Now, if I write instead of this def main(): for arg in
>> pywikibot.handleArgs(): etc. the result seems to be just the
>> same. I tried with valid global
> and with
>> unique parameters as well. So, what is the difference? I know the
>> theory that * means a variable width argument list, but
> if I
>> omit it, the behaviour does > not change.
> 
> The behavior is the same if you run the script from the command
> line.
> 
> However, using (*args) also allows you the option of running the 
> script from inside the Python interactive interpreter; for example,
> if you were running "replace.py Foo Bar -start:!", then you could
> "import replace" in the interpreter and run
> <code>replace.main("Foo", "Bar", "-start:!")</code>. This can be
> useful for debugging, among other things.
> 
> -- Bináris
> 
> 
> _______________________________________________ Pywikipedia-l
> mailing list [email protected] 
> https://lists.wikimedia.org/mailman/listinfo/pywikipedia-l

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk9CXKoACgkQAXWvBxzBrDAbRwCfReujNQVDr//+X01MWgtnvmMc
o0MAn2pjMV7uFhpM1T+bhofhosk8bW4M
=j9PE
-----END PGP SIGNATURE-----

_______________________________________________
Pywikipedia-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-l

Reply via email to