Greetings Alessandro, : We are currently investigating different languages and technologies to : develop an command line administration utility. : Python is one of the options we are looking at for the job but currently we : have no relevant skill set so I thought I'd post some question to get an idea : if using python is something worth pursuing or not. : : The utility should have the following characteristics: : : 1. support for sub commands and parameters (e.g. svn or git) : 2. integration with bash_completion : 3. Modular. The idea would be that by installing different packages : (or RPMs), new sub-commands and parameters will be made available to : the utility. E.g., : 1. "Base" package is installed: subcommand available is "view-config " : 2. "Base" and "database" package are installed, subcommands : available are "view-config" and "backup-db" : 4. Support for executing remote commands via ssh
: I have no doubt that with enough effort, a Python application could be : developed to implement the above. : However, I'm not too sure if Python is the right tools for the job : particularly about point 3: : : 1. Is there a built-in discovery mechanism like Java SPI : (http://docs.oracle.com/javase/tutorial/sound/SPI-intro.html)? I don't know SPI, and this link didn't help me understand quite what you meant by discovery. <opinion>Flexible discovery is very difficult.</opinion> : 2. Are there any libraries/framework we could build upon or would we need : to start from scratch? Yes. In elements 1. and 3. above, it sounds almost like you are describing the features of argparse (available for Python 2.x and 3.x). See documentation here: https://docs.python.org/2/library/argparse.html https://docs.python.org/3/library/argparse.html I think item 2. about bash_completion bit is outside the scope of Python, specifically, though, and more of an operating environment thing. : 3. Should we consider 2.x or 3.x in order to ensure cross system : compatibility (linux, windows)? Others may chime in on this. I, personally, will choose what my platform chooses (still Python-2.x), so I'm a "behind the adoption curve" kind of guy. You also mentioned, in item 4. above about ssh. It's hard to have completion oriented tools and (reliable) remote execution support without a uniformly administered set of systems. Of course, you can call ssh from Python, but in this case, it seems like you'd have a simpler system by leaving the ssh out of the mix. If you want to use ssh from Python, there's paramiko. https://pypi.python.org/pypi/paramiko/ : Any feedback on any of the points above would be greatly appreciated. I don't know if this is the sort of feedback that you were looking for, so I'll just stop there. Good luck, -Martin _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor