Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create the frontend to the scaffolder project #40

Merged
merged 35 commits into from
Nov 21, 2018

Conversation

kiddinn
Copy link
Member

@kiddinn kiddinn commented Oct 20, 2018

Adding the front-end and tools to the scaffolder project.

@kiddinn kiddinn added this to In Review in scaffolder v2 Oct 23, 2018
plasoscaffolder/frontend/cli.py Outdated Show resolved Hide resolved
plasoscaffolder/frontend/cli_output_handler.py Outdated Show resolved Hide resolved
plasoscaffolder/frontend/cli_output_handler.py Outdated Show resolved Hide resolved
plasoscaffolder/frontend/cli_output_handler.py Outdated Show resolved Hide resolved
plasoscaffolder/frontend/cli_output_handler.py Outdated Show resolved Hide resolved
plasoscaffolder/frontend/frontend.py Outdated Show resolved Hide resolved
plasoscaffolder/frontend/frontend.py Outdated Show resolved Hide resolved
plasoscaffolder/frontend/frontend.py Outdated Show resolved Hide resolved
plasoscaffolder/frontend/frontend.py Outdated Show resolved Hide resolved
plasoscaffolder/frontend/output_handler.py Show resolved Hide resolved
Copy link
Member Author

@kiddinn kiddinn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this round is done

plasoscaffolder/frontend/cli_output_handler.py Outdated Show resolved Hide resolved
click.secho(text, fg='cyan')

def PrintNewLine(self):
"""A new line added to output."""
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

again, hopefully at least somewhat better


@classmethod
def _AskDictQuestion(
cls, question: scaffolder_interface.BaseQuestion) -> Dict[str, Type]:
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@classmethod
def _AskDictQuestion(
cls, question: scaffolder_interface.BaseQuestion) -> Dict[str, Type]:
"""Ask the user a question and return a dict answer back.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

question (scaffolder_interface.BaseQuestion): the question to ask.

Returns:
dict: the answer as supplied by the user.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ack

plasoscaffolder/frontend/frontend.py Outdated Show resolved Hide resolved
plasoscaffolder/frontend/frontend.py Outdated Show resolved Hide resolved
plasoscaffolder/frontend/frontend.py Outdated Show resolved Hide resolved
plasoscaffolder/frontend/frontend.py Outdated Show resolved Hide resolved
plasoscaffolder/frontend/frontend.py Outdated Show resolved Hide resolved
@kiddinn kiddinn requested a review from Onager November 13, 2018 12:18
@kiddinn
Copy link
Member Author

kiddinn commented Nov 13, 2018

ready for another round of review

…e#41)

* Adding a TS analyzer scaffolders.

* Adding templates.

* Adding test files.

* minor linter errors.

* responding to comments.

* Update plasoscaffolder/templates/ts_sketch_analyzer.jinja2

Co-Authored-By: kiddinn <kristinn@log2timeline.net>

* Update plasoscaffolder/templates/ts_sketch_analyzer.jinja2

Co-Authored-By: kiddinn <kristinn@log2timeline.net>

* Update plasoscaffolder/templates/ts_sketch_analyzer.jinja2

Co-Authored-By: kiddinn <kristinn@log2timeline.net>
Copy link
Contributor

@Onager Onager left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few more nits, and I've made some small fixups, so please remember to git pull.

Looking at this more closely, I'm not thrilled about having all the frontend logic implemented as class methods vs normal methods. I'm also confused as to why the cli is implemented as an option callback instead of a normal click command.

Can you explain these choices, or refactor?

plasoscaffolder/frontend/output_handler.py Outdated Show resolved Hide resolved
plasoscaffolder/helpers/git.py Outdated Show resolved Hide resolved
plasoscaffolder/helpers/git.py Outdated Show resolved Hide resolved
tools/l2t_scaffolder.py Outdated Show resolved Hide resolved
plasoscaffolder/frontend/frontend.py Outdated Show resolved Hide resolved
plasoscaffolder/frontend/frontend.py Outdated Show resolved Hide resolved
tools/l2t_scaffolder.py Outdated Show resolved Hide resolved
Copy link
Member Author

@kiddinn kiddinn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so to explain choice of option callback vs. normal click command -> legacy, that's how it was done in the original tool.

That design choice necessitated that all functions in the frontend to be a classmethod. I just changed this to not be that way, that is use the regular click command instead, and then I Could refactor all classmethods to be just instance methods.

plasoscaffolder/frontend/output_handler.py Outdated Show resolved Hide resolved
plasoscaffolder/helpers/git.py Outdated Show resolved Hide resolved
plasoscaffolder/helpers/git.py Outdated Show resolved Hide resolved
tools/l2t_scaffolder.py Outdated Show resolved Hide resolved
@kiddinn kiddinn requested a review from Onager November 20, 2018 17:00
@kiddinn
Copy link
Member Author

kiddinn commented Nov 20, 2018

ready for another round

plasoscaffolder/helpers/git.py Outdated Show resolved Hide resolved
plasoscaffolder/scaffolders/__init__.py Show resolved Hide resolved
plasoscaffolder/frontend/frontend.py Outdated Show resolved Hide resolved
question (scaffolder_interface.BaseQuestion): the question to ask.

Returns:
dict: the answer as supplied by the user.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that'll be overkill. Added something here.

@kiddinn kiddinn requested a review from Onager November 21, 2018 11:24
@kiddinn
Copy link
Member Author

kiddinn commented Nov 21, 2018

done

requirements.txt Outdated Show resolved Hide resolved
@kiddinn kiddinn requested a review from Onager November 21, 2018 15:07
@kiddinn
Copy link
Member Author

kiddinn commented Nov 21, 2018

removed the timeout

@Onager Onager merged commit a0ea2f5 into log2timeline:master Nov 21, 2018
scaffolder v2 automation moved this from In Review to Completed Nov 21, 2018
@kiddinn kiddinn deleted the cli_cl branch November 21, 2018 15:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
scaffolder v2
  
Completed
Development

Successfully merging this pull request may close these issues.

None yet

2 participants