Hello Tisza,

On 16 December 2011 13:14, Tisza Gergo <[email protected]> wrote:

> did anyone try creating command line autocompletion [1] for bot scripts?

Not that I know of.

I'm interested both in quick and dirty hacks (my current plan is to grep
> out the
> arg.startswith parameters from the bot code and use them as a more or less
> correct argument list)

This sounds like something that will work, although 'arg' might not be used
every time. Should be a good first approach.


> and a long-term solution for making pywikipediabot
> parameter handling and help generation easy both for the bot programmer
> and the
> bot user.

I'm not against this, but there are already some frameworks that do this,
and they are IMO not much clearer than the current system. See, for
instance, the getopt, argparse and optparse modules. (
http://docs.python.org/library/getopt.html,
http://docs.python.org/library/optparse.html,
http://docs.python.org/library/argparse.html<http://docs.python.org/library/argparse.html#module-argparse>).
(although argparse is python 2.7+, and therefore not usable. optparse
should be OK).

So: the module you'd want to write is already there. I'm just not sure if
it's much better.


> advantages:
> - easier parameter handling and help text autogeneration
>
- automatic generation of bash completion files

I agree on these,


> - it could pave the way for moving towards a more linux-like command
> syntax with
> double dashes before long arguments and the other usual features
>
I´m not sure if this is an advantage, as is completely breaks
compatibility. I agree it´s usual in unix, but it´s not necessarily a good
reason to change. Besides, pwb is also used on windows a lot (and under
powershell, single-dash parameters are 'usual').


> - it would make it possible to create GUI controls for the bots, with
> auto-generated option fields
>
GUI controls should work on a higher level, instantiating bot objects
instead of running the bot using the shell, IMO.


> What do you think about it? Am I overcomplicating, or reinventing the
> wheel, or
> is this worth doing?
>
In general, I think the bash completion would be very useful. I'm not sure
if rewriting the entire mechanism is useful, nor necessary to achieve bash
completion. I would be inclined to to just use the arg.startswith
mechanism, and to adapt any script that does not conform to that 'standard'.

However, if you actually need the parameter description for some nicer
autocompletion, we would need something nicer - parsing the module.__doc__
wouldn't be a good plan ;-)

In any case: good luck with building the auto-completion. If you need to
change the way the argument parser is implemented in code, I'd suggest
adapting optparse to use 'pwb-style' single dashes. I would suggest not to
change the current parameters unless there is a very strong reason (i.e.
stronger than 'the rest of the *nix world uses double-dashes') to do that.

Best regards,
Merlijn van Deen
_______________________________________________
Pywikipedia-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-l

Reply via email to