Hi Milindu, Good work on researching Python CLI frameworks. It would be great if you could provide a list of available options and reasons for your selection.
Regarding the word separator issue, I agree with Martin. We might need to support "-". Thanks On Tue, Feb 24, 2015 at 2:30 AM, Martin Eppel (meppel) <mep...@cisco.com> wrote: > Hi Milindu, > > > > IMHO, not supporting “-“ could be an issue or at least very inconvenient > (not sure what the cli will cover), for example currently alias validation > (e.g. application alias) is set to exclude “_” but to allow “-“ (although I > am not entirely clear why we ?) > > > > I would argue for patterns consistency across all stratos (java and > python), WDYT ? > > > > Thanks > > > > Martin > > > > See ApplicationUtils.java: > > …. > > Pattern ALIAS_PATTERN = Pattern.compile("([a-z0-9]+([-][a-z0-9])*)+"); > > > > *From:* Milindu Sanoj Kumarage [mailto:agentmili...@gmail.com] > *Sent:* Monday, February 23, 2015 12:28 PM > *To:* dev@stratos.apache.org > *Subject:* Re: GSoC 2015 > > > > Hi, > > > > Thanks for the quick and detailed reply, I'm confident that I can work on > this. I'll start creating the project proposal. > > > > I have some questions, > > I considered several Python CLI frameworks and packages ( Click, Plac, > Cement, etc ) and found cmd2 package is more suitable for the need. > > It supports both Interactive mode and Single command line mode. Have lot > of features like auto-complete, history, executing shell commands while in > Interactive Mode, etc. Their coding styles are also very clean and easy to > understand. > > > > do_greet(self, arg): > > print("Hello ", arg) > > > > this would be, > > stratos>greet Milindu > > Hello Milindu > > > > And it supports Unix-style flags also. > > > > > > Only thing that is `-` can not be used. but `_` is possible. > > > > def do_create_tenant(self, arg): > > print("Created ") > > > > this could be invoked as either, > > > > stratos>create_tenant > > > > or > > > > stratos>create tenant > > > > Would this be a problem? ( have to accommodate workarounds to get `-` > into action if you really need them ) I think I can provide a basic > implementation if you are interested. > > > > Thank you > > > > > > On Mon, Feb 23, 2015 at 9:58 AM, Imesh Gunaratne <im...@apache.org> wrote: > > Hi Milindu, > > > > It's nice to hear from you! Thanks for introducing yourself, it seems like > you have a good background for this project. > > > > On Mon, Feb 23, 2015 at 1:15 AM, Milindu Sanoj Kumarage < > agentmili...@gmail.com> wrote: > > > > 1. I'm thinking of using a Python CLI framework instead of writing > from the scratch, in order to increase the reliability and > maintainability. What's your idea on that? > > > > Yes definitely! Better to use a Python CLI framework rather than writing > it from scratch. > > > > 2. The final product would be a python script that we run like `$ > python stratos.py login` ( or with a wrapper for Linux and Windows > environments like `stratos-cli.sh` ) or python package submitted to Pip > that can be installed to a system as `$pip install stratos-cli` and run > as `$stratos-cli login`? > > > > Yes the final deliverable would be a Python based CLI for Stratos which > may include following: > > > > - Need to be implemented for Stratos 4.1.0 > > - Communicate with Stratos REST API via HTTPS > > - Authenticate users using Basic Auth/OAuth > > - Implement CLI commands for API methods > > - Each command should have standard CLI features (help, auto-complete, etc) > > - CLI commands which receives data from the server needs to be properly > printed > > - There are two CLI commands which needs to print Tree structures > (Application definition and Application runtime) > > - Documentation for CLI in Stratos Wiki > > > > It would be great if you could go through the Stratos 4.1.0 API and > existing Java based CLI and prepare a project proposal. Once it is ready we > can review the plan and move forward. > > > > Thanks > > > > -- > > Imesh Gunaratne > > > > Technical Lead, WSO2 > > Committer & PMC Member, Apache Stratos > > > -- Imesh Gunaratne Technical Lead, WSO2 Committer & PMC Member, Apache Stratos